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

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

Большинство людей, кто начинает использовать ESP8266, начинали с построения метеостанции. Меня эта участь тоже постигла). Изначально в моей метеостанции стоял датчик DHT22. Соответственно, он снимал данные температуры и влажности. Точность его конечно не ахти, ну и на улице он работает нестабильно, так как есть требования к стабильности питания. Дальше он был заменен на BME280, также добавил датчик яркости BH1750 и датчик качества воздуха MQ135. С последним пришлось повозиться, и он все равно показывал погоду на марсе. Прошивка была сделана на arduino. Данные передавались в проект Народный мониторинг. Даже был телеграм бот, который по запросу отдавал данные, бота скинул в чат дома, и периодически его валили ddos атакой, когда одновременно куча народа кидала ему запрос. Чаще это происходило по утрам. Потом телеграм заблокировали, и я бота выпилил.

В дальнейшем я заинтересовался умным домом, и изначально я данные со своей метеостанции брал с сайта Народного мониторинга и выводил в Home assistant. Ну а потом я открыл для себя EspHome. Соответственно, все было переписано в ней. На народный мониторинг данные уже отправлял Home assistant.

Позже оказалось, что у датчика SHT20 нет полноценной поддержки в EspHome. Есть SHT10, SHT21, SHT3x, но ни одна из этих библиотек не заработала корректно с этим датчиком. Стал изыскивать возможность применения датчика. В результате нашел описание применения датчика в составе M5stack air quality sensor. Достаточно было скачать файл sht20.h и подключить библиотеки ArduinoJson и uFire SHT20.

esphome: name: m5stack_air_quality platform: ESP32 board: m5stack-core-esp32 libraries: - "uFire SHT20" - "ArduinoJson" includes: - include/sht20.h

Датчик BME280 тоже был подключен, но расположился у самого окна. Графики практически совпадают. В общем уже больше месяца полет нормальный. Засуха наконец-то закончилась и пришли дожди. И тут обнаружился интересный факт: датчик показывал влажность воздуха 102%. Пришлось углубляться в код библиотеки и в даташиты. Формула пересчета влажности в даташите указана такая: RH=(SH*125/65536 - 6). И если в регистре SH будет число, например, 65536, то мы получим значение 119. В файле uFire_SHT20.cpp был немного модифицирован код: была добавлена проверка значения RH перед возвратом значения.

float uFire_SHT20::humidity() < _reset(); _i2cPort->beginTransmission(SHT20_I2C); _i2cPort->write(SHT20_HUMID); _i2cPort->endTransmission(); delay(HUMIDITY_DELAY); _i2cPort->requestFrom(SHT20_I2C, 2); uint8_t msb = _i2cPort->read(); uint8_t lsb = _i2cPort->read(); uint16_t value = msb 100) < return 100; >else < return RH; >>

Kitsum

Обновление от 12.08.2017 Доброго всем времени суток друзья. Проект метеостанции на контроллере ESP8266 близится к своему завершению. Я хотел опубликовать это обновление раньше, но жизненные обстоятельства связывали руки. Все последующие обновления будут выходить только по просьбе трудящихся на благо домашней автоматизации, то есть Вас. Поэтому предлагайте свои идеи, высказывайте пожелания и делитель своими наработками. ВАЖНО: Друзья, перед тем как приступить к обзору обновления, я хочу

Kitsum

Опубликовал Kitsum, 27 февраля 2018

Обновление v2.0 Beta

Похожие публикации

Kitsum

Kitsum

Kitsum


Вот несложная метеостанция, которую можно себе сделать для возможности передавать данные о погоде через интернет. Устройство создано на базе 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:

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

Что нам необходимо

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

Нам для реализации проекта нужны:

1 - ESP32
1 - DHT22
1 - BMP180
1 - макетная плата
1 - провода-перемычки

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


Прежде всего, подключите DHT22 к ESP32. Соединения для DHT22 с ESP32 следующие:

  • Контакт 1 DHT22, который является контактом VCC, на 3,3 В от ESP32
  • Контакт 2 DHT22, который является штырем данных к D15 ESP32
  • Контакт 4 DHT22, который является контактом GND для GND ESP32

Затем подключите датчик давления BMP180 к ESP32. Соединения следующие:

  • Vin от BMP180 на 3.3V ESP32
  • GND BMP180 на GND ESP32
  • SCL BMP180 на вывод 22 ESP32 (контакт 22 ESP32 является контактом SCL)
  • SDA BMP180 на штырьковый разъем 21 ESP32 (контакт 21 ESP32 является выводом SDA)

Штыри 22 и 21 ESP32 предназначены для связи I2C.

Код проекта метеостанции

Код проекта можно скачать или скопировать ниже:

Пояснение код проекта метеостанции

Во-первых, вам нужно убедиться, что у вас есть все библиотеки, необходимые для этого проекта. Как только вы это сделаете, мы можем определить контакт к которому мы подключим датчик температуры и влажности DHT22:

Теперь мы сохраняем имя и пароль Wi-Fi, чтобы позднее мы могли подключиться к нему. Затем мы определяем порт, на котором мы создадим сервер.

Команда ниже приведет к отображению IP-адреса на последовательном мониторе.

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

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

Как запустить вашу метеостанцию

Во-первых, замените имя и пароль Wi-Fi в коде своими. Затем загрузите код и откройте последовательный монитор. Последовательный монитор покажет вам IP-адрес, как показано на рисунке ниже.

Введите этот IP-адрес в своем браузере.


После ввода IP-адреса веб-страница будет примерно такой.


Таким образом вы сделали передачу данных от датчиков вашей метеостанции на веб-страницу.

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