В репозитории представлен код для создания и развертывания метеостанции (далее МС), основанной на модуле esp8266.
Возможности:
- получение данных о температуре/влажности/давлении с различных датчиков (список представлен ниже);
- отправка полученных данных на указанный сервер для обработки/сохранения/отображения;
- отображение данных с датчиков в веб-приложении
МС, помимо получения данных с собственных модулей, позволяет получать и отображать данные с температурных датчиков производства Xiaomi/Aqara. Для этого требуется наличие шлюза Xiaomi и локального сервера, запущенного в той же сети, в которой работает шлюз.
Код МС разбит по нескольким папкам:
- esp8266 - собственно код прошивки модуля
- nodejs - код для работы с шлюзом Xiaomi/Aqara для получения данных с температурных сенсоров
- sql - скрипты создания таблиц БД для веб-приложения
- www - код веб-приложения
Список поддерживаемых датчиков:
- DHT22, DHT11 - https://github.com/adafruit/DHT-sensor-library
- BMP180 - https://github.com/sparkfun/BMP180_Breakout
- BME280 - https://github.com/sparkfun/SparkFun_BME280_Arduino_Library
- SHT21 -
- BH1750 - https://github.com/claws/BH1750
Список поддерживаемых дисплеев:
- LCD 1602, LCD 2004 - https://github.com/agnunez/ESP8266-I2C-LCD1602
- OLED SSD1306 - https://github.com/squix78/esp8266-oled-ssd1306
Веб-приложение для развертывания и работы требует связку php/mysql, позволяет работать как в однопользовательском режиме (например в локальной домашней сети, где не нужна авторизация), так и на удаленном сервере с поддержкой множества пользователей с обязательным вводом имени-пароля для просмотра информации.
Для прошивки модулей esp8266 используется Arduino IDE, так же требуется установка следующих библиотек:
- ArduinoJson - https://github.com/bblanchon/ArduinoJson
Локальный сервер для получения данных с датчиков Xiaomi/Aqara поднят на RPi, с установленным пакетом nodejs.
На шлюзе Xiaomi включен режим разработчика.