Устройство и ремонт метеостанции pearl своими руками. Очередной умный дом, в нескольких частях. Метеостанция из подручных материалов. Наблюдение за конденсатом

– Влажность:

Диапазон измерения 20÷90%.

Погрешность ±5%.

Разрешающая способность 1%.

– Температура:

Диапазон измерения 0÷50 о С.

Погрешность ±2 о С.

Разрешающая способность 1 о С.

4. Измерение давления и температуры датчиком BMP-180 .

– Давление:

Диапазон измерения 225÷825 мм рт. ст.

Погрешность ±1 мм рт. ст.

Разрешающая способность 1 мм рт. ст.

– Температура:

Диапазон измерения -40,0÷85,0 о С.

Погрешность ±1 о С.

Разрешающая способность 0,1 о С.

5. Циклическая анимированная смена показаний.

6. Режим "кукушки". Ежечасный короткий звуковой сигнал. Если активирован и только в дневное время.

7. Озвучивание нажатия на кнопки. Короткий звуковой сигнал только в дневное время.

8. Сохранение настроек в энергонезависимой памяти микроконтроллера.

Настройка.

1. Вход в настройки и листание меню производится кнопкой MENU .

2. Переключение параметра для настройки в пределах одной страницы меню кнопкой SET .

3. Установка параметра кнопками PLUS / MINUS . Кнопки работают по одиночному нажатию, а при удержании производится ускоренная установка.

4. Устанавливаемый параметр мигает.

5. Через 10 сек от последнего нажатия на кнопки прибор перейдет в основной режим, настройки запишутся в память.

6. Страницы меню.

CLOC :

– сброс секунд.

– установка минут.

– установка часов.

– установка ежесуточной коррекции точности хода. В старшем разряде символ c . Диапазон установки ±25 сек.

ALAr :

– минуты срабатывания будильника.

– часы срабатывания будильника.

– активация будильника. В старшем разряде символ A . В младших On , если работа будильника разрешена, OF – если запрещена.

– активация режима "кукушки". В старших разрядах символы cu . В младших On , если работа "кукушки" разрешена, OF – если запрещена.

DiSP :

– продолжительность индикации времени. На индикаторе d xx . Диапазон установки

– продолжительность индикации влажности. На индикаторе H xx . Диапазон установки 0 ÷ 99 сек. Если установлен 0, то параметр отображаться не будет.

– продолжительность индикации температуры, измеренной датчиком влажности. На индикаторе tHxx . Диапазон установки 0 ÷ 99 сек. Если установлен 0, то параметр отображаться не будет.

– продолжительность индикации давления. На индикаторе P xx . Диапазон установки 0 ÷ 99 сек. Если установлен 0, то параметр отображаться не будет.

– продолжительность индикации температуры, измеренной датчиком давления. На индикаторе tPxx . Диапазон установки 0 ÷ 99 сек. Если установлен 0, то параметр отображаться не будет.

– скорость анимации. В старшем разряде символ S . Диапазон установки 0 ÷ 99. Чем меньше величина, тем выше скорость.

LiGH :

niGH - установки ночного режима.

– минуты включения ночного режима.

– часы включения ночного режима.

– яркость индикатора в ночном режиме. В старшем разряде символ n . Диапазон установки 0 ÷ 99. Яркость индикатора соответствует ночному режиму.

dAY - установки дневного режима.

– минуты включения дневного режима.

– часы включения дневного режима.

– яркость индикатора в дневном режиме. В старшем разряде символ d . Диапазон установки 0 ÷ 99. Яркость индикатора соответствует дневному режиму.

Работа прибора.

1. В основном режиме происходит циклическая смена информации на индикаторе. Установлена следующая последовательность вывода: время – влажность (в старшем разряде символ H ) – температура измеренная датчиком влажности – давление (в старшем разряде символ P ) – температура измеренная датчиком давления. Если продолжительность отображения какого-либо параметра установлена в 0, то на индикатор он выводиться не будет.

2. Из основного режима можно переключить индикацию кнопками PLUS /MINUS .

3. В случае ошибки считывания данных с датчика DHT11 при индикации температуры и влажности на индикатор выводятся прочерки.

4. Если будильник активирован (см. настройки), при отображении времени в младшем разряде включена точка. В заданное время включается звуковой сигнал - ежесекундные двойные сигналы в течении одной минуты. Звуковой сигнал может быть досрочно отключен нажатием на любую кнопку. При срабатывании будильника на индикатор в течении 30 секунд выводится время.

5. Ежесуточно (в 0 часов 0 минут и 30 сек) производится цифровая коррекция времени. , DS1307 .

4. Тип индикатора (общий анод или катод) выбирается джампером. Если джампер установлен, то выбран индикатор с общим анодом.

5. На схеме показаны два индикатора, устанавливается только одни.

6. Пищалка должна быть со встроенным генератором. В зависимости от ее тока потребления, возможно понадобится установка усилителя (транзисторного ключа).

В ходе обсуждений и доработок в теме форума появилось несколько разных версий этого проекта.

По возможности обновленные материалы будут выкладываться здесь. Краткие описания в архивах

Благодарность studiotandem за подготовку материалов и тестирование прошивок.

Изготовьте и установите на высоком шесте флюгер и расскажите детям, как определять направление ветра. Возьмите гладкую палку и вбейте в один из её концов длинный гвоздь. Вырежьте из плотного картона флажок и заламинируйте его, чтобы не промокал при дожде.

Край флажка оберните вокруг гвоздя так, чтобы он мог свободно вращаться при дуновении ветра. Сделайте из тонких проволочек стрелки, указывающие на юг, север, запад и восток и закрепите их на палке. Флюгер готов. Установите его на вашей метеоплощадке, сориентировав стрелки по сторонам света.

С детьми постарше (6–9 лет) изготовление флюгеров замечательно вписывается в уроки по географии, когда вы рассказываете, как образуются ветра, как использовали знания о них первые мореплаватели, что означают ветры на «конских широтах», что такое пассаты.

Моряки, зная о пассатах - устойчивых ветрах, дующих в тропических поясах, - называли их «торговыми ветрами», потому что с их помощью торговые корабли-парусники (тогда ещё не были изобретены двигатели) пересекали Атлантический океан. На парусниках везли товар из Европы в Америку.

Субтропические ветры между 30 и 38 параллелями южных и северных широт были настолько лёгкими, что парусники вставали в штиль. Приходилось месяцами ждать подходящего ветра. Часто ожидания затягивались на 3–5 месяцев. У моряков заканчивалась пресная вода и еда, и им приходилось питаться лошадьми, которых перевозили в больших количествах из Европы. Поэтому эти широты прозвали «конными».

Используя флюгер, дети отмечают в своих календариках наблюдения за погодой направление, силу и смену ветра. Таким образом мы не просто знакомим их с основными метеорологическими приборами, но и с методикой и техникой наблюдений и обработки результатов.

Термометр своими руками

Установите на метеоплощадке большой термометр и научите детей читать значения температур воздуха. Эта работа является также подготовкой для понимания концепции отрицательных чисел в математике, которая предлагается детям 9–12 лет в школе Монтессори.

Малыши 3–6 лет с удовольствием изготовят собственные термометры из картона и цветных ниток. Для этого:

  1. Посередине белой полоски картона шириной 4–6 см наносят шкалу термометра (выше и ниже нуля).
  2. Соединяют вместе красную и синюю (белую) нити.
  3. В верхнем и нижнем концах шкалы делают отверстия и пропускают через них концы ниток, связав их с обратной стороны.

Сверяясь с настоящим термометром, ребята двигают нить на своих самодельных градусниках, устанавливая и записывая значения температур в календарики погоды.

Гигрометр своими руками

Следующим прибором детской метеостанции является гигрометр - прибор для измерения влажности воздуха. Для его изготовления гигрометра понадобятся:

  • прямоугольный кусок деревянной дощечки или пенопласта;
  • две канцелярские кнопки;
  • скотч;
  • человеческий волос длиной около 10 см;
  • отрезок тонкой проволоки.

Укрепите на дощечке две кнопки на расстоянии примерно 8–10 см. К нижней прикрепите проволоку так, чтобы она могла приходить в движение, то есть нетуго. К верхней кнопке прикрепите кончик волоса, затем протяните его вокруг проволоки и закрепите на верхней кнопке. Прибор готов.

Расскажите детям, как человеческий волос реагирует на влажность воздуха, становясь короче или длиннее. При высокой влажности он удлинится, опустив таким образом стрелку вниз; при низкой влажности, наоборот, волос станет короче и поднимет проволочную стрелку вверх. Это свойство волоса и использовано для изготовления гигрометра.

Осадкомер своими руками

Дополнит вашу метеоплощадку осадкомер - прибор для измерения жидких и твёрдых осадков (града). Возьмите обычное ведро, установите его на небольшой возвышенности (тумбе, табурете). Накапливаемые осадки сливаются в мерный стакан со шкалой. Результаты дети заносят в свои календарики.

Метеостанция, построенная своими руками - это не только часть предметно-развивающей Монтессори-среды, но и увлекательная и познавательная возможность наблюдать за погодой и вести журнал наблюдений.

Обсуждая с детьми погоду, можно расширить тематику и рассказывать им о современных профессиях, зависящих от погодных условий. С детьми постарше (8–9 лет), в рамках Монтессори-программы по экономической географии, мы говорим о том, как климатические условия в целом влияют на экономику разных стран.

(хроно-термо-гигро-барометр)

Как поется в известной песне «Главней всего погода в доме…». Конечно автор под погодой имел ввиду душевное состояние супругов живущих под одной крышей. Но если подходить к этой фразе буквально, то она о том, что под крышей кроме душевного должен быть и климатический комфорт. Предлагаемое устройство обеспечивает измерение и отображение на светодиодном индикаторе температуры и относительной влажности воздуха в помещении, значения атмосферного давления и текущего времени.

Станция снабжена датчиком движения, который включает ее при появлении человека в зоне действия датчика. Этот режим позволяет экономить потребляемую энергию и использовать в качестве источника питания гальванические батареи. Кроме того, этот режим удобно использовать в спальне - выключенный дисплей станции не будет раздражать своим свечением. В этом случае для включения станции будет достаточно выполнить движение рукой или ногой.

Внешний вид станции показан на рисунках (Рисунок 1 и Рисунок 2).

Рисунок 1.
Внешний вид станции

Рисунок 2.
Внешний вид станции (обратная сторона)

Видео с демонстрацией работы станции представлено ниже:


Электрическая схема.

Схема электрическая принципиальная представлена на рисунке 3.

Рисунок 3.
Схема электрическая принципиальная.

Станция собрана на микроконтроллере ATmega8. Цепочка R1С1 обеспечивает начальный сброс (Reset) микроконтроллера при включении. Предусмотрено внутрисхемное программирование МК через разъем XP3 «SPI программатор».
Фьюзы МК ATmega8: HIGH=0xD9, LOW=0xE4.

В качестве дисплея используется четырех-разрядный 7-сегментный индикатор типа CL5642BN c общим анодом и двухточечным («:») разделителем часов и минут. Катоды сегментов индикатора подключены к МК через ограничительные резисторы. МК обеспечивает динамическую индикацию поочередно включая транзисторные ключи VT3…VT6.

Хронометр собран на микросхеме DS1307 по штатной схеме включения. Точность хода часов обеспечивается кварцевым резонатором Y1 с частотой 32768Гц. При отсутствии основного питания (5 Вольт) непрерывность хода часов обеспечивается резервным источником питания на гальваническом элементе CR2032 (3 Вольта). Взаимодействие МК с микросхемой DS1307 осуществляется по шине TWI (I2C). Линии шины TWI «подтянуты» к питанию VCC2 резисторами R20, R21. Установка часов и минут обеспечивается кнопками SA1 («Часы+»), SA2 («Минуты+»), SA3 («Установка»). При этом необходимо в момент начала цикла отображения данных на дисплее нажать и удерживать кнопку «Установка». Нажатием или нажатием с удержанием кнопок «Часы+» или «Минуты+» устанавливается время хронометра. При отпускании кнопки «Установка» в микросхему DS1307 в соответствующие ячейки запишутся значения часов и минут, отображенные на дисплее, а в ячейку секунд запишется значение 0. Таким образом можно точно синхронизировать время с внешними эталонными источниками точного времени (например, от вещательных радиостанций или телевидения).

К шине TWI также подключена плата барометра BMP180. Программа устройства считывает калибровочные коэффициенты, устанавливаемые производителем, и учитывает их при расчете атмосферного давления.

Измерение температуры осуществляется датчиком DHT11. МК управляет датчиком по последовательному однопроводному двунаправленному интерфейсу. Линия интерфейса «подтянута» к питанию VCC2 резистором R19.

Для экономного расходования энергии батарей микроконтроллер большую часть своего времени пребывает в состоянии глубокого сна («power-down»). При этом МК перед засыпанием обесточивает все измерительные датчики, подключенные к VCC2 (хронометр, датчик атмосферного давления, датчик влажности и температуры). Обесточивание датчиков обеспечивается ключами на транзисторах VT1 и VT2.

Для пробуждения МК в схему станции включен датчик движения HC-SR501. Его задача - вывести МК из состояния сна. При срабатывании датчик посылает сигнал МК, который пробуждается сам и подает питание VCC2 на периферийные датчики (хронометр, датчик атмосферного давления, датчик влажности и температуры). Ключ на транзисторе VT7 обеспечивает инверсию сигнала датчика движения для согласования с МК. Переключатель «Движение» позволяет отключить датчик движения, для еще большей экономии энергии батарей. В этом случае альтернативную команду на пробуждение МК можно подать нажатием кнопки «Установка».

Питание станции осуществляется от двух альтернативных типов источников: от трех батарей типа АА или от сетевого источника питания 5 Вольт по шине USB. Для переключения между источниками питания необходимо установить переключатель «Питание» в одно из положений: «USB» или «Батарея». При питании от батарей ток потребления станции в режиме сна составляет не более 200мкА, что при емкости батареи 2000мАч соответствует 10000 часам (более одного года) непрерывной работы.

При выборе сетевого источника питания следует учитывать, что пиковый ток потребления станции (во время измерения и при включенном дисплее) не превышает 100мА. Поэтому можно использовать практически любое зарядное устройство.

При питании от шины USB иногда целесообразно обеспечить постоянное измерение значений датчиками и отображение данных на дисплее. Для этого необходимо установить переключатель «Дисплей» в положение «Вкл». В этом случае МК не будет переводится в состояние сна.

Печатные платы.

Печатные платы разработаны в программе Dip Trace. Они выполнены на одностороннем фольгированном стеклотекстолите. Расположение деталей на основной печатной плате показано на рисунке (Рисунок 4). На рисунке перемычки со стороны монтажа выделены цветными ломаными линиями. Печатная плата со стороны дорожек показана на рисунке (Рисунок 5).

Рисунок 4.
Печатная плата (вид со стороны радиодеталей).

Рисунок 5.
Печатная плата (вид снизу, зеркальное отображение).

Кнопки и переключатели пульта управления станцией установлены на отдельной печатной плате (Рисунок 6 и Рисунок 7).

Рисунок 6.
Печатная плата Пульта управления (вид сверху).

Рисунок 7.
Печатная плата Пульта управления (вид со стороны дорожек).

Гнездо для подключения USB кабеля установлено на отдельной плате, купленной на AliExpress (Рисунок 8).

Рисунок 8.
Плата с гнездом USB.

Монтаж.

Станция смонтирована в корпусе универсальной коробки для кабельных каналов «Промрукав» - IP42; 400V; полистирол ГОСТ Р 50827.1-2009 ТУ 3464-001-97341529-2012 Артикул 40-0460.

На передней стороне корпуса прорезаны окна для дисплея и датчика движения. На тыльной стороне корпуса размещен датчик влажности и температуры DHT11, кнопки и переключатели пульта управления.

Батарея питания - три элемента AA 1.5 Вольт каждый размещены в специализированном держателе - «кроватке» .

Размещение радиодеталей на печатной плате показан на рисунке (Рисунок 9).

Рисунок 9.
Внешний вид размещения деталей на плате.

Архив к статье «CTBH.rar» содержит:

1. Папку CTBH - файлы проекта на Си в среде Atmel Studio 7.
2. CTBH.dch - схема электрическая принципиальная в формате Dip Trace.
3. CTBH.dip - печатная плата устройства в формате Dip Trace.
4. CTBH_Buttons.dip - печатная плата Пульта управления в формате Dip Trace.
5. CTBH.hex - загрузочный файл для МК.

Удачи Вам в творчестве и всего наилучшего!

Скачать архив.



«Так, давайте сразу договоримся: вы не собираетесь снимать кино для Голливуда. Даже в Стране чудес утверждается не более пяти процентов от всех сценариев, и только один процент идет затем в производство… Таким образом, вместо всего этого вы собираетесь создать свой собственный Голливуд.»
Эд Гаскель «Снимаем цифровое кино, или Голливуд на дому»

Предисловие

Что, ещё одна погодная станция на Arduino?! Да, ещё одна и, что-то мне подсказывает, не последняя в интернете вещей.


Точно также, как каждый программист обязан написать программу «Hello World!», так и каждый ардуинщик обязан иметь за плечами опыт построения простой или не очень метеостанции.
Уже созданных проектов метеостанций в интернете описано немалое количество, читатель может выбрать любой из них для реализации. Не скрою, я внимательно изучил около десятка подобных проектов и ещё кучу смежных. Поэтому нельзя сказать, что я создал всё с нуля, конечно же я «стоял на плечах гигантов».


Сразу скажу, что в мои планы не входило использование сторонних сервисов для хранения и отображения данных. Хотелось лично пощупать и понять как всё это работает изнутри от начала до конца, от А до Я.


Так что тем, кто хочет быстро склепать нечто из ничего, эта серия статей скорее всего не подойдёт. Проще пойти и купить готовый конструктор с инструкцией по сборке. Профессионалам микроэлектроники тут совсем делать нечего, может быть поржать и вспомнить себя в начале пути.
А вот тем, кто действительно хочет разобраться, я думаю понравится. Возможно материал пригодится в качестве учебного пособия.



Этот проект был реализован в далеком уже 2016 году, но надеюсь еще актуален.

Набор технологий

Мы изучим и будем работать с простыми и сложными вещами:

  • датчиками температуры и влажности типа DHT22, DHT11
  • датчиком барометрического давления типа BMP180
  • WiFi модулем ESP8266
  • радиомодулем типа nRF24 2,4 Ггц
  • семейством Arduino Pro Mini, Arduino Mega
  • солнечной батареей и аккумуляторами
  • языком программирования C/C++
  • языком программирования PHP
  • системой управления базами данных MySQL
  • языком программирования Java и фреймворком Android (создание приложения для Adnroid для отображения погодных данных на смартфоне).

Некоторые темы из перечисленных и яйца выеденного не стоят, а некоторые можно изучать годами. Поэтому сложные вещи мы затронем только в части, непосредственно касающейся данного проекта, так чтобы вы поняли как это всё работает.


Но начнем мы с самого начала правильно. А именно с описания и проектирования будущего устройства «на бумаге» , чтобы в конце концов каждый кирпичик лёг на своё место.

Прототипирование

Как нам правильно говорит Википедия, прототипирование - это быстрая черновая реализация работающей системы. Которая, да, будет работать не совсем неэффективно и с некоторыми ошибками, но даст представление о том, следует ли развивать поделку до промышленного образца. Процесс создания прототипа не должен быть затяжным. За этапом прототипирования следует анализ системы и её доработка.


Но это в промышленности, где работники заняты полный рабочий день.


Каждый, кто клепает по вечерам свои поделки pet-project для «internet of things», должен отдавать себе отчёт в том, что он создаёт именно прототип, полуфабрикат. До уровня нормального промышленного изделия ему очень далеко. Поэтому не следует поручать нашим любительским поделкам какие-либо ответственные участки жизнеобеспечения и надеяться, что они нас не подведут.


Промышленное изделие строится на промышленной элементной базе и далее проходит еще много стадий, включающих отладку, испытания и сопровождение, прежде чем станет хитом продаж.


Итак, вместо всей этой тягомотины, мы создадим свою собственную игрушку, но не простую. С элементами технического творчества, зачатками программирования и познания (в процессе создания) многих других смежных вещей.


Конечно, электронщикам тяжко придется на этапе программирования, а программистам придется попотеть над схемотехникой, но автор постарается изложить всё максимально доступно и ясно описать, почему были использованы те или иные решения.

Требования

Обычно этот этап пропускают. Решая сделать что-нибудь эдакое прямо сейчас, а потом выясняются мелкие детали, которые ставят весь проект в тупик или вовсе делают его неподъемным. Все наши хотелки необходимо записывать, я использую для этого гугл диск, он доступен с ПК и с мобильного устройства.


Итак, наша метеостанция должна:

  • измерять температуру и влажность на улице
  • измерять температуру и влажность в доме
  • измерять атмосферное давление
  • отображать указанные значения на дисплее
  • передавать данные на сервер в интернет, где данные будут храниться в базе данных и отображаться на веб-странице, либо использоваться в мобильном приложении.

Датчики используются самые простые и дешевые. Например, забегая наперед скажу, что температуру DHT22 измеряет достаточно точно, а вот с влажностью немного неточен. Но, опять таки повторюсь, это не имеет значения, поскольку перед нами - прототип, и разброс в 5% влажности ни на что важное в нашей жизни не повлияет.


Архитектура системы, аппаратное и программное обеспечение должны обеспечивать дальнейшую расширяемость системы для добавления новых датчиков и новых возможностей.

Железо. Выбор компонентов

Вот это и есть самая ответственная часть, а вовсе не пайка или программирование. После определения требований к системе надо решить с помощью чего конкретно они будут воплощены в жизнь.


Вот тут-то и есть один ньюанс. Чтобы выбрать компоненты нужно хорошо знать их возможности, нужно знать сами технологии. То есть другими словами, здесь требуется быть далеко не начинающим электронщиком и программистом. Так что же теперь пару лет потратить на изучение всего спектра возможных устройств?


Замкнутый круг? Но замкнутые круги для того и существуют, чтобы их разрывать.


Выход есть. Можно просто взять и повторить чей-то проект. Я же изучил уже существующие проекты метеостанций и надеюсь сделал шаг вперед.


Итак. Архитектура погодной станции базируется на Arduino. Потому что Arduino имеет небольшой порог вхождения и я уже имел с этим дело. Дальше выбирать уже проще.


Сразу стало ясно, что в составе метеостанции будет удаленый, заоконный датчик и центральный модуль.


Центральный, основной блок будет расположен внутри помещения. Это важно определить на начальном этапе, от этого «пляшут» такие важные характеристики как температурный режим работы и питание.


Удаленный датчик (или датчики) будет без «мозгов», его задача - периодически проводить измерения и передавать данные на центральный домашний блок. Центральный блок принимает данные от всех датчиков, показывает их на экране и отправляет их же в интернет в базу данных. Ну, а там уже много проще, как только данные оказываются в базе с ними можно делать всё что захочешь, даже графики рисовать.


Для сношений с внешним миром интернет был однозначно выбран WiFi модуль ESP8266 практически без альтернативы (прим. возможно сейчас такие альтернативы появились). К Arduino выпускаются Ethernet платы расширения, но совсем не хотелось привязываться к кабелю.



Интересный вопрос состоял в том, чем обеспечивать связь между заоконным датчиком (или датчиками, про требование расширяемости системы помним?) и центром. Радиомаячки на 433 Мгц однозначно не подходят (они не подходят ни для чего вообще).


Воспользоваться опять ESP8266 ?


Минусы такого решения:

    необходим устойчивый WiFi за пределами дома

    дальность связи не будет большой

    пострадает надежность, при пропадании интернета мы не увидим свои удаленные датчики

    большее энергопотребление.

    Энергопотребление ESP8266:

    при передаче 120-170 mA

    при приеме 50-56 mA

    в режиме Deep Sleep 10 µA (мкА)

    в выключенном состоянии 5 µA (мкА).

В конце концов для связи удаленных датчиков с основным домашним блоком был выбран чип nRF24L01+ с 2,4 Ггц передатчиком и приемником в одном флаконе, с дополнительной внешней антенной, чтоб уж наверняка «пробить» стены.



Энергопотребление nRF24L01+ 2,4 GHz:

  • при приеме 11 mA
  • при передаче на скорости 2Mbps - 13 mA
  • в режиме standby-I - 26 μA (мкА)
  • в выключенном состоянии 900 nA (нА).

Что у ESP8266, что у nRF24L01+ диапазон рабочих температур подходящий: от -40℃ до +80℃.


Купить nRF24L01+ можно примерно за $1, или сразу с внешней антенной за $3. Купить ESP8266-01 можно примерно за $4. Читайте внимательно описание товара! Иначе купите одну антенну.


Ядро системы вырисовалось. Переходим к самим датчикам.


На улице, как известно, температура может достигать отрицательных значений, поэтому датчик DHT11 не подходит, а вот DHT22 в самый раз.



Характеристики DHT22 / AM2302:

  • питание от 3,3 В до 5 В, рекомендуется 5 В
  • потребление 2.5mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 0-100% с погрешностью 2-5%
  • диапазон измерения температуры от -40 до +125°C с погрешностью ±0.5°C
  • запрос на измерение не чаще 0,5 Гц - одного раза в 2 секунды.

Внутри дома, я надеюсь, отрицательных температур не будет, поэтому можно использовать DHT11, тем более, что он у меня уже был.


Характеристики DHT11:

  • питание от 3,3 В до 5 В
  • потребление 2,5 mA максимум, в момент измерения и передачи данных
  • диапазон измерения влажности 20-80% с погрешностью 5%
  • диапазон измерения температуры от 0 до +50°C с погрешностью ±2°C
  • запрос на измерение не чаще 1 Гц - одного раза в секунду.

Купить DHT22 можно примерно за $3. DHT11 стоит дешевле - $1, но он и менее точен.


Теперь возвращаемся опять к Arduino. Какую плату выбрать?


Я тестировал отдельные части системы на Arduino UNO. Т.е. подключал к уно ESP модуль и изучал его, отключал, затем подключал nRF24 и т.д. Для финальной реализации заоконного датчика выбрал Arduino Pro Mini как наиболее близкую к Uno из миниатюрных.



По энергопотреблению Arduino Pro Mini также выглядит неплохо:

  • нет преобразователя USB-TTL, который сам по себе «кушает» много,
  • светодиод подключен через 10к резистор.

Для продвинутого сбережения энергии планировалось:

  • удалить светодиод - индикатор питания на Arduino Pro Mini (я пожалел, не стал портить плату)
  • либо использовать «голую» сборку на микропроцессоре Atmel ATmega328 (не использовал)
  • использовать библиотеку Low Power Library или JeeLib .

Из библиотек выбрал Low Power Library , она проста и содержит только то, что нужно.


Для центрального блока, поскольку к нему планировалось подключить многочисленную периферию, была выбрана плата Arduino Mega. К тому же она полностью совместима с UNO и имеет больше памяти. Забегая наперед скажу, что этот выбор полностью оправдался.


Купить Arduino Mega можно примерно за $8.

Питание и энергопотребление

Теперь про питание и энергопотребление.


Arduino Pro Mini бывают двух видов:

  • на напряжение питания 5В и частоту 16МГц
  • на напряжение питания 3,3В и частоту 8МГц.

Поскольку радио-модуль nRF24L01+ требует для питания 3,3 В, а быстродействие здесь не важно, то покупайте Arduino Pro Mini на 8MHz и 3,3В.


При этом диапазон питающего напряжения Arduino Pro Mini составляет:

  • 3,35-12 В для модели 3,3 В
  • 5-12 В для модели 5 В.

У меня уже была Arduino Pro Mini на 5В, только поэтому я её и использовал. Купить Arduino Pro Mini можно примерно за $4.


Питание центрального блока будет от сети 220 В через небольшой блок питания, дающий на выходе 12В, 450mA, 5W. Типа такого за $5. Там еще есть отдельный вывод на 5В.



А ежели этого не хватит, то можно и помощнее поставить. Другими словами экономить электропитание для центрального блока нет особого смысла. А вот для удаленного беспроводного датчика энергосбережение является важнейшей частью. Но и функциональность не хотелось бы терять.


Поэтому Arduino Pro Mini и радиомодуль nRF24 будут запитываться от связки 4-х Ni-Mh аккумуляторов.


И помните, максимальная емкость современного аккумулятора примерно 2500-2700mAh, всё что больше это либо маркетинговые уловки (Ansmann 2850) либо обман (UltraFire 3500).


Li-Ion аккумуляторы я не использую по нескольким причинам:

  • очень дорогие
  • при снижении температуры окружающего воздуха ниже 0°C происходит снижение мощности литий-ионного аккумулятора до 40-50%
  • те которые дешёвые производятся без защиты и небезопасны (при КЗ или разряде могут взрываться и гореть, см. кучу роликов на ютюбе)
  • стареют, даже если не используются (впрочем это можно сказать обо всех химических элементах), через 2 года Li-Ion батарея теряет около 20% ёмкости.

Для прототипа вполне можно обойтись качественными Ni-MH AA или AAA аккумуляторами. Тем более, что нам не нужны большие токи. Единственный минус Ni-MH аккумуляторов - это их долгая зарядка.

Общая схема метеостанции

Подведем итоги. Вот общая схема как всё работает.



Продолжение следует.

Сегодня будет подробный рассказ о внутреннем устройстве метеостанции, которую включил в работу. От идеи до её технической реализации прошло более года, за это время пришлось решить массу ожидаемых и неожиданных проблем. Теперь обо всём по порядку...


Начнем с грабель.

Грабли №1 . Наверное кто-нить помнит что в начале прошлого года я радиомодули на базе чипа nRF24L01+ c усилителем RFX2401C и в дальнейшем собирал

Увы, данная конструкция работать не захотела. Не смотря на все попытки, мне так и не удалось обеспечить надёжную двухстороннюю связь радиомодулей на значительных расстояниях. Конструкция отняла довольно много сил и времени, но, в силу объективных причин, пришлось отказаться от этого варианта.

И тогда решил достать из закромов опытно-экспериментальный маршрутизатор TP Link MR3220 c системой OpenWRT на борту.

Принципиальная схема метеостанции несколько отличается от той, которую разрабатывал . Первое отличие - применение вместо Arduino Pro Mini платы Arduino Nano. Это позволило выполнять удалённую перепрошивку микроконтроллера, что очень удобно когда физический доступ на объект затруднён

Грабли №2 Я применил китайский клон Arduino Nano v.3.0, о котором подробнее рассказывал . Но возникла неожиданная проблема - при открытии маршрутизатором USB-порта, ардуинка стала перезагружаться. Все возможные варианты конфигурирования USB порта командой stty результата не принесли. С FT232RL такой проблемы не наблюдалось. Пришлось подключить RC-цепочку R1C1 на свободный порт GPIO7 маршрутизатора, это схемное решение позволило блокировать перезагрузку в нормальном режиме работы микроконтроллера. При необходимости перепрошивки нужно вручную включать GPIO7.


Конфигурирование порта

echo "7" > /sys/class/gpio/export

Конфигурируем GPIO7 как выход

echo out > /sys/class/gpio/gpio7/direction

Включить GPIO7

echo 1 > /sys/class/gpio/gpio7/value

Выключить GPIO7:

echo 0 > /sys/class/gpio/gpio7/value

Проверить состояние порта:

cat /sys/class/gpio/gpio7/value

Так как точность термодатчиков семейства DS1820 при отрицательных температурах оставалась под вопросом, для точного измерения температуры решил дополнительно использовать медный термометр сопротивления ТСМ-50М совместно с измерительным преобразователем Ш79. Разумеется, предварительно откалибровал систему с использованием поверенных образцовых приборов и добился погрешности измерения не более 0.2 градуса в диапазоне температур -50...+50 градусов Цельсия.

Ш79 это уже достаточно древний, весьма надёжный советский преобразователь, построенный по классической МДМ-схеме с унифицированным токовым выходом 0...5 мА или напряжением 0...10 В. В данном случае использовал токовый сигнал.

Несмотря на простую принципиальную схему, столкнулся с огромным объемом механической работы. Одно дело когда схема собрана за полчаса на макетной плате и совсем другое - когда устройству нужно придать законченный вид.

Печатная плата метеоконтроллера

Контроллер поместил в гермобокс

Маршрутизатор и метеоконтроллер закрепил на боковой стенке Ш79.

Вид сбоку

И вся эта система помещается в металлический ящик

Внутренности ящика

Так как ещё не знал в каком помещении будет установлен данный шкаф, решил сделать ему обогрев. Температура внутри ящика поддерживается обыкновенным биметаллическим термостатом, на фото выше виден его круглый корпус.

Резисторы обогрева закрыл металлическим кожухом. Круглые отверстия используются для подведения кабелей внутрь шкафа.

Конструкция в собранном виде

Выносные датчики температуры и влажности расположены на отдельной печатной плате

Для защиты от атмосферных воздействий плата покрыта лаком ХСЛ

Сверху кожух закрывает крышка

Внутрь кожуха поместил плату с датчиками и растянул её при помощи толстой рыболовной лески. Это сделано для того чтобы снизить теплопередачу между кожухом и платой датчиков. Данную конструкцию почему-то решил назвать измерительной ячейкой.

UPD: Не смотря на все предпринимаемые меры, как показала практика, солнечные лучи все-таки влияют на показания термометра - нагревается кожух и от него греется сам датчик. Поэтому в настоящее время используется уличный термокожух заводского исполнения, он показал значительно лучшие результаты. Подробнее о данном термокожухе можно почитать .

О конструкции анемометра более подробно рассказывал .

UPD: В настоящее время используется новая конструкция анемометра, подробнее можно почитать . Программа для работы с данным анемометром приведена в конце статьи.

Все выносные датчики соединяются с контроллером посредством 5 парного магистрального телефонного кабеля ТППэп длиной 100 метров. На конце кабеля распаял слегка модернизированную соединительную коробку КРТН-10.

Грабли №3 Для защиты контроллера от атмосферной статики и возможных грозовых перенапряжений хотел поставить защитные диоды 1.5КЕ7.5 на порты D2, D3, D4. Увы, собственная ёмкость данных диодов не позволила пропускать цифровые данные. Поэтому пришлось ограничиться установкой диода D1 по питанию +5V и заземлением экранной оболочки магистрального кабеля.

К данной коробочке подключаются сами датчики

Измерительная ячейка установлена на относительно открытом участке местности на высоте 3-х метров от поверхности земли, это на метр выше положенного по правилам, но сделал это намеренно, т.к. в нашей местности есть вероятность появления высоких сугробов.

Анемометр укреплён на высоте 5 метров, по хорошему нужно ставить выше, но с этим есть конструктивные сложности. Пусть пока поработает так.

Программная часть особо не изменилась: на маршрутизаторе работает php-скрипт отсылки данных на сервер narodmon

который каждые 5 минут запускается планировщиком cron

Программа ардуинки ждёт приема команды от скрипта и формирует пакет данных. Предусмотрел возможность ручной коррекции атмосферного давления для его приведения к уровню моря, метеостанции или аэродрома.

P.S. А вообще использование Wi-Fi для передачи метеоданных не оптимально, было бы лучше использовать УКВ-диапазон, собственно, так и сделано на автоматических метеостанциях. Это повысит дальность связи и снизит требования к месту установки, точнее к наличию прямой радиовидимости.

Принципиальную схему и печатные платы можно скачать