https://github.com/jehy/arduino-esp8266-mh-z19-serial
CO2, humidity and temperature sensor on ESP8266
https://github.com/jehy/arduino-esp8266-mh-z19-serial
arduino co2 esp8266 humidity mh-z19 mhz-19 temperature temperature-sensor wemos wemos-d1
Last synced: 2 months ago
JSON representation
CO2, humidity and temperature sensor on ESP8266
- Host: GitHub
- URL: https://github.com/jehy/arduino-esp8266-mh-z19-serial
- Owner: jehy
- License: bsd-2-clause
- Created: 2016-02-08T15:08:47.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-02-06T22:29:55.000Z (over 3 years ago)
- Last Synced: 2024-04-14T11:05:27.135Z (about 1 year ago)
- Topics: arduino, co2, esp8266, humidity, mh-z19, mhz-19, temperature, temperature-sensor, wemos, wemos-d1
- Language: C++
- Homepage:
- Size: 87.9 KB
- Stars: 57
- Watchers: 5
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Arduino esp8266 mh-z19 serial
[](https://github.com/jehy/arduino-esp8266-mh-z19-serial/actions/workflows/compile-sketch.yaml)
[](https://www.paypal.me/jehyrus)
[](https://opensource.org/licenses/BSD-2-Clause)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](https://github.com/jehy/co2-online-display) as backend to this program.
See full description on [https://geektimes.ru/post/270958/](https://geektimes.ru/post/270958/) (you can use Google translate from Russian).# Compilation
All required libraries can be installed with Arduino IDE:
## Via console:
```bash
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:esp8266cp settings.sample.h settings.h # EDIT AFTER COPY!
arduino --verify --board esp8266:esp8266:d1:CpuFrequency=80,FlashSize=4M3M arduino-esp8266-mh-z19-serial.ino
```
## Manually:
1. Copy file `settings.sample.h` to `settings.h` and specify your settings;
2. Install [Adafruit Unified Sensor](https://github.com/adafruit/Adafruit_Sensor) version 1.1.2;
3. Install [DHT sensor library](https://github.com/adafruit/DHT-sensor-library) version 1.3.8;
4. Install [ArduinoJson library](https://arduinojson.org/) v 6.14.1;
5. Install [LiquidCrystal_I2C library](https://github.com/marcoschwartz/LiquidCrystal_I2C) v 1.1.2;
6. Compile and upload your sketch;
7. Enjoy!For Wemos D1, before compiling sketch:
1. Add `http://arduino.esp8266.com/stable/package_esp8266com_index.json` to additional boards in preferences;
2. Select wemos D1 (or your other board) in boards manager and install it.## MQTT with Home Assistant
You can use config which looks like this:
```yaml
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"
```