Домашняя погодная станция

Когда сдох старенький Oregon (Сначала перестал посылать сигналы сенсор, а затем разбилось стекло у самой станции), решил создать погодную станцию сам.

Домашняя погодная станция

Требования к домашней погодной станции

Основные функции

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

 

Дополнительные функции

  • Мониторинг и сохранение данных с дополнительных сенсоров (температура, напряжение, освещенность …)
  • Переделка и изготовление настольных часов для отображение точного времени и погоды
  • Диагностика и проверка корректности данных

 

Структура домашней погодной станции

Структура погодной станции

Выбор компонентов

В качестве платформы для всех компонентов выбраны платы Arduino.

Дисплей 3-х цветный матричный 16×32 точки

Радиомодули RF433МГц, NRF23L01

Сенсоры: DHT22, BMP085

 

Версия №1. RF433МГц сервер Arduino Uno + Zyxel Keenetic

Метеосенсор с передатчиком на 433МГц

Компоненты:

 

Сервер с приемо-/передатчиком 433МГц, подключенный к Zyxel Keenetic через USB

Компоненты:

Скетч шлюза на Arduino RF433 <-> USB Zixel Keneetic

Скрипт на SH для чтения и дешифрации данных с метеодатчика и отправки их на народный мониторинг

Скрипт на SH для посылки на Arduino точного времени, синхронизированного по NTP

 

Табло со светодиодным дисплеем, приемником 433МГц  и модулем DS1307

Компоненты:

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

Часы отображающие точное время и погоду с дисплеем 1602

Слеплены за вечер для контроля работы погодной станции и тестирования переходника I2C для дисплея 1602

Компоненты:

Скетч отображения времени/погоды на дисплей 1602

Библиотека LiquidCrystal_I2C для данной платы

 

Станция в таком виде прожила дома около года. За это время накопились проблемы:

  • Дешевые 433МГц приемо-передатчики имеют низкую помехозащищенность, сильно зависят от положения антенн, открытых/закрытых дверей и т.д. что сказывается на общем качестве системы. При добавлении новых устройств 433МГц проблем добавлялось.
  • Уличный датчик на аккумуляторах  на Arduino Pro Mini 3.3 с демонтированным светодиодом питания в летнее время работает 2-3 месяца (с использованием режима сна). Нынешней зимой при температуре ниже -30С батареи просто садились до нуля. Следующую версию метеосенсора запитал от сети, благо недалеко было тянуть.
  • Часы на DS1307 китайского производства убегали безбожно и применение их без подстройки от интернета или GPS весьма сомнительно. Применение с синхронизацией тоже сомнительно, так как на внутренних часах Arduino все неплохо.
  • Сервер Arduino Uno, подключенный к Zyxel Keenetic по USB работал неплохо, но программы, написанные на SH периодически подвисали, думаю, в связи с нехваткой памяти. Поддержка кода одновременно со стороны роутера и микроконтроллера напрягала. Решил отказаться в пользу Ethernet на Arduino.
  • Внешний вид информации, отображаемый на табло приелся и был не очень эргономичен. Например, показатель влажности в зимнее время очень условно и весьма неинформативно.

В общем подошло время модернизации системы с учетом  предыдущего опыта

 

Версия №2. RF2.4ГГц, сервер iBoard

Метеосенсор с передатчиком на 2.4 ГГц

Погодная станция, Метеосенсор

 

Описание датчика погодной станции

Сервер iBoard + NRF24L01 и питанием POE

Погодная станция. Сервер

 

Подробное описание сервера погодной станции

Табло со светодиодным матричным дисплеем и модулем NRF24L01

Погодная станция. Табло

Подробное описание табло для погодной станции

 

«Теперь мы всегда знаем, какая у нас погода!»

Погодная станция. Помощник

 

 

Другие статьи по погодной станции

Обсуждение на форуме arduino.ru

Скрипт чтения из Arduino
4.3 KiB
614 Downloads
Детали
Скрипт посылки NTP на Arduino
397.0 B
409 Downloads
Детали
Скетч шлюз с маршрутизатором по USB
3.4 KiB
688 Downloads
Детали
Скетч табло погодной станции
7.4 KiB
303 Downloads
Детали
Скетч часов-погоды с 1602
5.8 KiB
1024 Downloads
Детали
Вы можете оставить отзыв или трекбек со своего сайта.

5 комментариев на «Домашняя погодная станция»

  1. alivan:

    Замечательная идея и исполнение.
    Сразу себе такую захотелось сделать.

  2. Александр:

    Начал собирать вариант 2. Хочу поделиться первыми впечатлениями. Сразу в лоб не заработало ничего. Для начинающих (типа я) ардуинщиков многого не хватало. К скетчам я бы добавил архив со всеми необходимыми библиотеками.
    Сборку начал с датчика. При попытке прошить модифицированный загрузчик система долго ругалась. Там неверно указаны фьюзы в Extended Fuse Byte (д.б. 0xFF). Потом у меня сдох СР2102 и я остался без диагностики. К слову все попытки чем то заменить цэпэшку (использовать встроенный ком, подключать разного рода переходники) успеха не имели -на экран лезли всякие кракозябры. Спас меня старенький переходнк от сотового на РL2302 (работает только в WINXP). Только с ним и работало. Следующей жертвой стал дисплей датчика. Тоже почему-то приказал долго жить. Пришлось поменять его на LCD1602 с i2c. На мой взгляд получилось даже лучше. Выводит сразу 4 параметра и пишет все шаги запуска (мини диагностика не в ком порт, а на экран). Оно так нагляднее.
    В связи с кончиной цепэшки напрашивается пожелание для начинающих — все-таки использовать не мини про, а нано — у него USB встроен, а цена не сильно выше.
    В сервере сходу неправильно работал NTP клиент — при первом проходе было все ок, при последующих обновлениях выдавал почему то предыдущий результат. Т.е. время было на 5 минут сзади. Вылечилось вставкой кода из какого-то примера использования NTP клиента. Парсер с rp5 я закомментил, пока не разбирался с ним.
    (он вроде платным стал).
    Часы (которые на WS2812) я собрал на простом 4х разрядном семисегментнике под управлением TM1637 (был куплен по незнанию на замену дорогому адафруктовому с i2c и валялся без дела, так как нифига не i2c)
    В планах собрать табло (лежит уже экранчик 16х32 ждет своего часа), доработать датчик (использовать пару dht22 улица/дом). К часам примастырить будильник. Разобраться с парсером.
    Если кому интересно могу выложить архивы с библиотеками и своими скетчами. А также поделиться фотками (и возможно видео) работы моей системы (пока правда на макете)
    Алексею отдельное огромное спасибо!!!! за подробное описание всех шагов сборки.

    • Alexey Alexey:

      Очень правильный и вдумчивый подход, не повторять, а улучшать!
      Вот так начинающие ардуинщики и превращаются в гуру 😉
      Конечно выкладываете и публикуйте или присылайте фотки схемы, я добавление опубликую. Будут потом добрым словом вспоминать

  3. Александр:

    Делюсь, как и обещал, промежуточными итогами своего творчества. Тут https://yadi.sk/d/30mupsJui3W7j первый вариант мода. Включает в себя:
    датчик — один dht22 (подключен к пину 2); bmp085; дисплей lcd 16×2 i2c; NRF24L01; контроллер mini pro 5v 16m со стандартным загрузчиком. Данные передаются на сервер по запросу сервера 2 раза в минуту. Датчики опрашиваются раз в минуту.
    сервер без парсера погоды и без отправки статистики (только ntp).
    часы — дисплей на тм1637 (такой http://ru.aliexpress.com/item/1pcs-4-Bits-TM1637-Red-Digital-Tube-LED-Display-Module-Clock-for-Arduino-LED/2054860365.html). Показывают последовательно время, температуру, влажность и давление. Данные берутся с датчика через сервер. Время автоматом синхронизируется с сервером раз в 30 секунд.
    Второй вариант (https://yadi.sk/d/7Tct6vfdi3VyL) — доработка первого. Переработана структура пакетов обмена. Добавлен второй dht22 (улица). Часы стали только часами — отображают время, день недели, число, месяц, год.
    Следующий этап — будильник в часы и табло.

    • Виталий:

      Здравствуйте,
      Прощу Вашей помощи, сам только начинаю знакомится с Arduino и в программировании мягко говоря «чайник», но заинтересовал Ваш проект.
      Могли бы Вы выложить скетч вот для этого «Метеосенсор с передатчиком на 433МГц»?
      Спасибо.

Ваш отзыв