Winsen MH-Z19B/C/E

Also known as: MH-Z19 · MH-Z19B · MH-Z19C · MHZ19 · Air quality

Winsen MH-Z19B/C/E sensor module

The CO2 sensor of the 2018–2023 DIY wave — half the internet's air-quality builds used one. Still works, still supported, but the SCD4x has taken the default slot.

As an Amazon Associate and an affiliate we may earn from qualifying purchases. Prices and availability are set by the retailer.

Declining pick: it still works, but better options exist at this price — see the "vs" note.

At a glance

⚑ flag an error
Measuresco2
AccuracyNDIR CO2 400–5000 ppm ±(50 ppm + 5 %) — genuine units; clones read low
InterfaceUART (9600 baud; PWM output too)
Supply5 V (3.3 V logic)
Battery-viableNo (continuous draw)
ESPHomeNative ESPHome component — mhz19
Typical price$10-14 (street, varies)

Which one do I buy?

vs SCD41: the SCD is smaller, I2C, better behaved and clone-resistant at similar money — buy the MH-Z19 only to match an existing build.

Clone check

HIGH clone risk. Famous black-PCB fakes: read LOW (dangerous for a 'ventilate' alarm), jitter ±50 ppm, broken auto-calibration. Green/blue PCB from the official Winsen store is the safer buy. How to check what you received →

Good for

Gotchas to know

Wiring it up

Give it a hardware UART (UART1/2 on any ESP32) rather than software serial. Any dev board works; the DevKitC class is the default host, and if you're building a sensor-plus-screen device, pick a display board with spare pins like the JC3248W535.

Resources

More air quality sensors

← All sensors