Arduino esp8266 home weather station
Clock with auto backlight, NTP time-sync, measuring CO2, humidity, temperature, atmospheric pressure and Blynk or Cayenne synchronization.
Components
- CO2 Sensor MH-Z19
- ESP8266 (NodeMCU ESP12+ based)
- ST7920 128x64 LCD display
- Humidity/Pressure/Temperature BME280
- Photoresistor 5528 LDR
- NPN transistor P2N2222A or similar
- Buttons, resistors, wires, enclosure
Optional
- TL431 for better display contrast adjust. (attention! need to cut JP3 on display, see photos)
Photos:
Version with 3D-printed case and buttons
Version with purchased case and buttons
ffnull
Version with 3D-printed case and buttons from3D models
In stl folder
Blynk and Cayenne:
Data is bounded to this values:
- v1 - temperature;
- v2 - humidity;
- v4 - atmospheric pressure;
- v5 - CO2 sensor MH-Z19;
- v7 - light sensor;
Libraries
- Arduino-esp8266
- Blynk
- Cayenne
- u8g2
- Adafruit_BME280_Library
- WiFiManager
- ArduinoJson
- AsyncPing
- SimpleTimer
- TimeLibrary
Wiring:
ST7920
RS - D8
R/W - D7
E - D6
backlight - D3
mh-z19
RX - D4
TX - D5
BME-280
SDA - D1
SCL - D2
VCC - 3V3
Scheme:
With TL431:
Without TL431:
Jumper JP3:
Attention! JP3 need to be cutted to use TL431. TL431 is using for better display contrast adjust.
Cutted:
Uncutted:
Known issues:
- Temperature measurements seems to be higher due to heat from ESP8266
- ST7920 plate need to be cutted to fit enclosure
- Can't connect to my old ASUS WL-500gP V2
Russian:
Часы с синхронизацией времени по WI-FI, функцией измерения CO2, температуры, влажности, давления. Также есть автоматическое изменение подсветки в зависимости от освещения. Часы синхронизируются по NTP протоколу через WI-FI. Данные датчиков передаются на сервер Blynk или Cayenne.
Компоненты
- Датчик CO2 MH-Z19
- NodeMCU v2
- ST7920 128x64 LCD-дисплей
- датчик давления/влажности/температуры BME280
- фоторезистор 5528 LDR
- NPN тразистор P2N2222A или похожий
- кнопки, резисторы, провода, корпус
Опционально
- TL431 стабилизатор напряжения, используется для более удобной настройки контраста дисплея, можно им пренебречь. (внимание! если хотите использовать стабилизатор, нужно распаять джампер JP3 на дисплее, см. фото)
Библиотеки
- Arduino-esp8266
- Blynk
- Cayenne
- u8g2
- Adafruit_BME280_Library
- WiFiManager
- ArduinoJson
- AsyncPing
- SimpleTimer
- TimeLibrary
Подключение:
дисплей 12864
RS - D8
R/W - D7
E - D6
катод подсветки - D3
датчик mh-z19
RX - D4
TX - D5
датчик BME-280
SDA - D1
SCL - D2
VCC - 3V3
Известные проблемы:
- ESP8266 греется и вносит погрешность в показания температуры, пока изолировал датчик BME-280 вспененным полиэтиленом
- Пришлось немного подрезать плату дисплея ST7920 сверху, не входила по высоте
- Не удалось подключить к роутеру ASUS WL-500gP V2 (видимо нужно разбираться с типом WI-FI сети на роутере)