MH-Z-CO2-Sensors icon indicating copy to clipboard operation
MH-Z-CO2-Sensors copied to clipboard

Arduino imeplementation for CO2 sensors of the MH-Z series (Intelligent Infrared CO2 Module)

MH-Z14A, MH-Z19B CO2 ... Module

Arduino implementation for MH-Z CO2 sensors such as MH-Z14A, MH-Z19B and MH-Z19C (as I didn't find all info in one place).

The sensor is available for ~20 bucks at the usual places.

Implementation

See example.

PPMuart: 602, PPMpwm: 595, Temperature: 23

Implementation details

C ppm = 5000 * (T_high - 2 ms) / (T_high + T_low - 4ms)

The implementation is mostly based on https://forum.arduino.cc/index.php?topic=525459.msg3587557#msg3587557

Usage

By default the PWM range value is set to 5000 and there is no need to change anything in the class constructor (if the Cppm value is in the expected range 400-1000), otherwise you may want to test it with 2000 range value :

#include <MHZ.h>
#define CO2_IN 9
#define MH_Z19_RX 10
#define MH_Z19_TX 11

MHZ co2(MH_Z19_RX, MH_Z19_TX, CO2_IN, MHZ19B); // here the range value is set to 5000 by default (RANGE_5K)
MHZ co2(MH_Z19_RX, MH_Z19_TX, CO2_IN, MHZ19B, RANGE_2K); // here the range value is set to 2000

Resources:

Datasheet (MH-Z19B): http://www.winsen-sensor.com/d/files/infrared-gas-sensor/mh-z19b-co2-ver1_0.pdf

Datasheet (MH-Z19C): https://pdf1.alldatasheet.com/datasheet-pdf/view/1303687/WINSEN/MH-Z19C.html

More info about the sensor: https://revspace.nl/MHZ19

Further reading:

  • http://ihormelnyk.com/Page/mh-z19_co2_meter

(russuian, but google translate does a good job)

  • https://geektimes.ru/post/285572/
  • https://geektimes.ru/post/278178/