Метеостанция esp8266 своими руками

Добавил пользователь Владимир З.
Обновлено: 18.09.2024

Возможности метеостанции

Необходимые компоненты

Схема метеостанции

Программное обеспечение

Настройка метеостанции

Описание настроек

Wi-Fi Options

SSID — домашняя сеть Wi-Fi к которой метеостанция должна подключаться для коммуникации с внешним миром. Password - пароль домашней сети Wi-Fi.

Own Wi-Fi AP

SSID — собственный Wi-Fi который метеостанция создает самостоятельно для обеспечения доступа к ее настроек. Password - пароль к собственной Wi-Fi. Примечание: * Wi-Fi для настройки включается после подачи питания и выключается через 5 минут. Считается, что 5 минут достаточно для того, чтобы сделать все необходимые настройки.

Data storage

Send to Web

URL - ссылка для отправки данных на свой сайт. (См. Отправка данных на сайт) ID - идентификатор устройства отправляет данные (устанавливается произвольно). Если в будущем предполагается отправлять данные с нескольких устройств, с идентификатором можно будет узнать от какого именно устройства были получены данные. Key - ключ для идентификации (предотвращает подмену данных). Этим ключом шифруется часть данных, после получения проверяется на сайте с использованием такого же ключа. Queue filename - файл очереди. Используется для хранения данных в очереди в случае возникновения временных проблем при передаче данных на сайт. Данные из очереди будут отправлены после восстановления связи. Это предотвращает потерю данных. Enable / Disable - включает или выключает передачу данных на сайт.

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

Старт

Сразу после старта выполняется скрипт init.lua Скрипт выполняет паузу продолжительностью 10 секунд (зачем это сделано читайте здесь) после чего запускает скрипт meteo_main.lua. Этот скрипт выполняет стартовые настройки. А именно инициализацию настроек, WiFi, шины I 2 C, датчика BME280, дисплея SSD1306, настраивает и запускает таймер опроса датчика, настраивает планировщик для сохранения и передачи данных в Интернет, запускает web-интерфейс, запускает синхронизацию времени через Интернет.

Опросы датчика, работа дисплея

По таймеру раз в 10 секунд запускается скрипт для опроса датчика BME280_read.lua и скрипт для отображения данных на дисплее display_show.lua

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

Согласно настроек планировщика (по умолчанию один раз в 15 минут) запускается скрипт schedule.lua. Скрипт опрашивает датчик и сохраняет данные в файл - хранилище (по умолчанию - log.txt), отправляет данные в Интернет (если включено в настройках) и запускает формирование JSON файлов, содержащих данные для графиков. Примечание: сохранение данных и отправки в Интернет происходит только после синхронизации времени по протоколу NTP.

Отправка данных на сайт. Настройки для отправки данных на сайт

Отображение данных на сайте

Пример отображения погодных данных находятся в файлах insex.html, weather.js, date.format.js. Погодные данные могут отображаться как в виде текстового информера, так и в виде графиков.

Контейнер для датчика

Wi-FI Meteostation появляется, пытаюсь подключится, Wi-FI Meteostation исчезает. Прошивал программой nodemcu flasher master. Заливал файлы через ESPlorer. Периодически выскакивает ошибка при подключении .Can`t autodetect firmware, because proper answer not received (may be unknown firmware).PANIC: unprotected error in call to Lua API (BME280_read.lua:5: attempt to perform arithmetic on a nil value).

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

Проверьте залиты ли файлы t.MONO, h.MONO, p.MONO
Попробуйте их перезалить. Отключить вывод картинок можно убрав строки
disp:drawXBM( 8, 0, 12, 22, xbm_data_t )
disp:drawXBM( 7, 24, 15, 22, xbm_data_h )
disp:drawXBM( 0, 48, 29, 22, xbm_data_p )
в файле display_show.lua

В статье есть ссылка НА ВСЁ! И на firmware, и на файлы для esp-12 и файлы для esp-01 и файлы для сайта.

Долго бился с esp-12f, пока выяснил, что все файлы нужно ESplorer-ом заливать за один раз через кнопку Upload. До этого пробовал заливать скрипты через Save to ESP. А вот на esp01 так и не запускается. Та же ошибка, что и у Дмитрия. (meteo_main.lua:14: no i2c for D0) Кто-нибудь запускал этот проект на esp01?

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

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


Самый простой способ собрать погодную станцию с экраном и с возможностью передачи показаний на народный мониторинг (в Интернет) на Wifi модуле ESP 8266.
Сразу скажу что я не рекламирую НАРОДНЫЙ мониторинг и не рекомендую этот сервис!
Для этого потребуется(чтобы не усложнять):
1. Готовая плата с контроллером ESP8266 на борту с стабилизатором напряжения и UART( TLL кому как)

Сразу к ней распиновка чтоб знать где какие GPIO!

распиновка правильная ESP board доска разработки на esp8266

/LCD_Blue1. i2c 16x2

2. Цифровой датчик температуры DS18b20
3. Датчик атмосферного давления со встроенным термометром внутри.
4. Экран lcd 16x2 с контроллером i2c.( можно и 16х4 кому надо больше строк)

5. Если хотите побаловаться с влажностью то можно прикрутить и DTH11/22 или что-то болеее, но с этими DTH я побаловался и понял что врут они ахринеть и выбросил вовсе.

Теперь более подробно и доступно!

Собираем по схеме, мой пример

Метеостанция на esp8266 своими руками для народного мониторинга


* Резистор подтягивающий цифровой датчик ds18b20 — 4.7К
5 вольт беру извращёнским образом со входа регулятора напряжения ams1117-33, можете брать откуда посчитаете нужным, у меня так.

ИНФо-КАМЕНЬ в огород wifi-iot
Теперь самое интересное,
Поехали

Сайт для сборки прошивки для модуля ESP-8266 narodmon wifi-iot


ЗЕЛЁНЫЙ — Полностью бесплатная, СИНИЙ — Содержит платные возможности, КРАСНЫЙ — Работает только в платной версии!
Кстати лицензия на платную (PRO) версию стоит около 100 рублей, поэтому в перспективе когда будет уже мало этого то можно и купить).

Что нам надо собрать в прошивку?

3.Ну и прошивка
Через программу NODEMCU FIRMWARE PROGRAMMER
Про неё рассказывал в статье о прошивке ESP-01 модуля.
В данном случае мы имеем плату с ESP8266 на борту уже с UART и для прошивки надо только подключить через USB-microUSB кабель к компьютеру, если спросит установку драйверов то обязательно установить и прошиться как в статье о прошивке ESP-01 модуля.

После всех манипуляций Ваш модуль подключается к Вашей беспроводной сети(если вы настройки указали корректные при сборке прошивки).
Определите ip адрес модуля который выдал роутер, либо бул указан вручную, как вы это делать будете(или посмотрите в роутере или сканером сети на пк или я например на андроиде сканирую сеть с помощью программы FING). А также если что-то пошло не так, замкнуть перемычкой RX и TX, подать питание на модуль esp8266 через несколько секунд поднимется открытая беспроводная точка wifi-iot, подключитесь к ней и входите по ip адресу 192.168.4.1. Это режим отладки wifi-iot.

В браузере открывайте IP адрес устройства.

Сразу датчики небудут показывать температуру и показания как у меня, надо их включить и настроить!
Делайте как показано на скриншотах и будет вам счастье)



1 wire НАЖАТЬ Clear&SCAN

настройка esp8266 передача показаний на narodmon

Это чтоб нашёлся датчик 18b20

ВСё! Теперь У Вас будет показывать экран и передавать показания на народный мониторинг,

Спустя несколько лет ушёл от народного мониторинга и wifi-iot.
Один глючный сервис со своими чудными правилами, ограничениями и нововведениями больше не тратит мои нервы, не блочит датчики, не пугает письмами. Теперь все данные с любого количества устройств передаются на сервер Zabbix. Оттуда их можно спокойно брать и интегрировать куда угодно.
Что косаемо wifiiot, также больше не использую этот конструктор, пару любых датчиков и экран приляпать к ESPэшке, завернуть ножку на твердотельное реле, удалённо его включать, сделать термостат, собирать показания и передавать пакет на сервер эта задача для школьника, платить деньги каждый раз за новый модуль — неее. Запускать что-то серъёзное на этом конструкторе я бы не стал, побаловаться тем у кого нет вариантов это может да.


Вот несложная метеостанция, которую можно себе сделать для возможности передавать данные о погоде через интернет. Устройство создано на базе wi-fi модуля ESP8266-07, дисплея OLED 0.96″, датчики HTU21d и BMP280, зарядное TP4056, солнечная панель 2 Вт, li-ion батарея 2000 мА/ч, стабилизатор MCP1700 и немного пассивных радиоэлементов. ESP программирование в Arduino.

Принципиальная схема метеостанции

WI-FI метеостанция на модуле ESP

Электрическая схема WI-FI метеостанции на модуле ESP

Датчик погодных условий работает в цикле периодического пробуждения из режима “сна”, каждые 30 минут. После выхода, он подключается к сети wi-fi, считывает датчики и напряжение аккумулятора, после чего отправляет данные на серверы Thingspeak и Blynk, затем обновляет данные на дисплее и снова впадает в сон.

WI-FI метеостанция на модуле ESP

Данные о погоде на экране

Во время работы средний ток потребления метеостанцией около 80 мА, в режиме сна ток падает до 3 мА, причём большую часть потребляет OLED дисплей.

Конструкция самодельной метеостанции

Плата с деталями закрыта в промышленном герметичном корпусе из пластика.

WI-FI метеостанция на модуле ESP

Готовый корпус

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

WI-FI метеостанция на модуле ESP

Солнечная панель 2 ватта

Управляющая программа

Если вы находитесь в зоне действия двух или более доступных сети wi-fi, то вот решение подключения через модуль ESP:



У меня ESP-01 – у которого только два управляемых выхода – GPIO 0 и GPIO 2:




2. Нужно:
1. Модуль ESP8266 (ESP-01);
2. Датчик температуры DS18B20;
3. USB-UART-TTL адаптер – например CР2102 (+драйвер);
4. Резистор 4,7 кОм;
5. Провода мама – мама/папа;
6. Изолента/термоусадка;









Если речь идет о настройке/отладки нескольких модулей имеет смысл сделать специальный комплект проводов для подключения.

Поэтому для питания модуля нужно организовать отдельное питание.
Если предполагается использовать более высокое напряжение — нужно использовать понижающий стабилизатор.
В моем случае я использовал две батареи АА 1,5В соединенные последовательно – но испытания показали хватает не на долго (возможно батареи были севшие).
ВНИМАНИЕ! При подключении внешнего источника питания при прошивке нужно соединить его с минусом USB-UART-TTL адаптера.

5. Загрузка скетча.
Если все сделали – можно начинать загрузку скетча:
vk.com/doc148062645_43703…630&dl=4f5f570366aac0e93a
Но для начала нужно в строчках с именем сети и пароля указать имя и пароль вашей сети:
const char *ssid = "…";
const char *password = "…";
Процесс загрузки визуально отличается от привычной загрузки – он будет сопровождаться рядом точек в окне статуса загрузки (см. фото).


6. Подключение датчика температуры.
Схема подключения датчика температуры типовая (см. рисунок).


Потребуется правда поработать паяльником – припаять сопротивление 4,7 кОм и датчик температуры, а так же перемычку включения питания (см. ранее).

Читайте также: