CO2, humidity and temperature sensor on ESP8266
CO2, humidity and temperature sensor on ESP8266 with mh-z19 co2 sensor and dht-22 temperature and humidity sensor.
You can either use custom backed server to receive data in JSON or build in MQTT client to publish data to MQTT server.
You can use project https://github.com/jehy/co2-online-display as backend to this program. See full description on https://geektimes.ru/post/270958/ (you can use Google translate from Russian).
All required libraries can be installed with Arduino IDE:
arduino --pref "boardsmanager.additional.urls=http://arduino.esp8266.com/stable/package_esp8266com_index.json" --save-prefs
arduino --install-library "ArduinoJson:6.14.1"
arduino --install-library "Adafruit Unified Sensor:1.1.2"
arduino --install-library "DHT sensor library:1.3.8"
arduino --install-library "LiquidCrystal I2C:1.1.2"
arduino --install-library "PubSubClient:2.8.0"
arduino --install-boards esp8266:esp8266
cp settings.sample.h settings.h # EDIT AFTER COPY!
arduino --verify --board esp8266:esp8266:d1:CpuFrequency=80,FlashSize=4M3M arduino-esp8266-mh-z19-serial.ino
settings.sample.h
to settings.h
and specify your settings;For Wemos D1, before compiling sketch:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
to additional boards in preferences;You can use config which looks like this:
sensor:
- platform: mqtt
unique_id: esp-terrace-co2
name: "ESP terrace CO2"
state_topic: "esp/terrace/co2"
qos: 0
unit_of_measurement: "ppm"
- platform: mqtt
unique_id: esp-terrace-humidity
name: "ESP terrace Humidity"
state_topic: "esp/terrace/humidity"
qos: 0
unit_of_measurement: "%"
- platform: mqtt
unique_id: esp-terrace-temperature
name: "ESP terrace Temperature"
state_topic: "esp/terrace/temperature"
qos: 0
unit_of_measurement: "ºC"