MH-Z19C en ESP32C3 zero mini in Home Assistant

MH-Z19C en ESP32C3 zero mini in Home Assistant
MH-Z19C en ESP32C3 zero mini in Home Assistant

De Winsen MH-Z19C is een compacte, uiterst nauwkeurige koolstofdioxidesensor (CO₂) die werkt volgens het niet-dispersieve infraroodprincipe (NDIR). Het is de geoptimaliseerde opvolger van de populaire MH-Z19B, met verbeterde stabiliteit, een lager stroomverbruik en een kortere opwarmtijd van slechts 1 minuut.

Belangrijkste technische specificaties:

  • Bedrijfsspanning: 5,0 V DC (±0,1 V)
  • Stroomverbruik: < 40 mA gemiddeld, 125 mA piek
  • Interfaceniveau: 3,3 V TTL (compatibel met 5 V)
  • Meetbereik: 400 tot 5.000 ppm (aanpasbaar tot 10.000 ppm)
  • Nauwkeurigheid: ±(50 ppm + 5% van de meetwaarde)
  • Uitgangssignalen: UART (serieel) en PWM
  • Levensduur: > 5 tot 10 jaar

Belangrijkste pinbenamingen:

De sensor heeft doorgaans een 2,54 mm pinheader of een Molex-connector met de volgende primaire aansluitingen:

  • Vin: 5 V voedingsingang
  • GND: Massa
  • TXD: UART-gegevensoverdracht (3,3 V niveau)
  • RXD: UART-gegevensontvangst (3,3 V niveau)
  • PWM: Pulsbreedtemodulatie-uitgang
  • HD: Hardware-nulpuntkalibratiepin

Kalibratiemethoden

De MH-Z19C streeft naar een basislijn CO₂-niveau van 400 ppm in de buitenlucht met behulp van twee hoofdmethoden:

  1. Automatische basislijncorrectie (ABC): De sensor kalibreert automatisch de laagste meetwaarde elke 24 uur opnieuw naar 400 ppm. Deze functie moet worden uitgeschakeld als de sensor wordt gebruikt in omgevingen waar het CO₂-niveau nooit daalt tot het buitenniveau (bijv. kassen).
  2. Handmatige kalibratie: U kunt handmatig een nulpuntkalibratie uitvoeren door de HD-pin gedurende minimaal 7 seconden naar een laag niveau (0V/GND) te trekken. De sensor moet minimaal 20 minuten stabiel functioneren in een omgeving met frisse buitenlucht (ongeveer 400 ppm) voordat u dit uitvoert.

Datasheet: MH-Z19C-DZ-terminal type CO2 Manual(Ver1.21)-202103

ESP32-C3 Zero Mini pinout
ESP32-C3 Zero Mini pinout

Pinout MH-Z19c molex

PIN Type terminalaansluiting
Pin 4 Vin voeding
Pin 3 GND
Pin 2 Gereserveerd
Pin 7 PWM
Pin 1 HD (nulpuntskalibratie, laag niveau duurt langer dan 7 seconden is effectief)
Pin 5 UART (RXD) TTL-niveaugegevensinvoer
Pin 6 UART (TXD) TTL-niveaugegevensuitvoer
MH-Z19C terminalaansluitingen Molex naar ESP32-C3
MH-Z19C terminalaansluitingen Molex naar ESP32-C3
MH-Z19C terminalaansluitingen Molex naar ESP32-C3
MH-Z19C terminalaansluitingen Molex naar ESP32-C3

Uitgang

PWM-uitgang
Neem bijvoorbeeld 400~2000 ppm
CO2-uitgangsbereik 400~2000 ppm
Cyclus 1004 ms ± 5%
Cyclusstart hoog niveau-uitgang 2 ms (theoretisch) waarde)
Midden in de cyclus 1000ms±5%

Aanmaken in Home Assistant met ASP Home

  1. Klik in ESPHome Device Builder op: + Apparaat aanmaken
  2. Klik op: geavanceerd
  3. Klik op: Importeren vanuit bestand
  4. Selecteer de onderstaande code op je computer
  5. Download de .yaml code: https://colandino.nl/wp-content/uploads/sketchbook/CO2-ESP32-Zero-Mini.yaml
  6. De rest wijst zich vanzelf…..

De .yaml code voor de MH-Z19C en een ESP32-C3 in Home Assistant

esphome:
name: co2-esp32-zero-mini
friendly_name: CO2-ESP32-Zero-Mini
esp32:
variant: ESP32C3
framework:
type: arduino
web_server:
port: 80
auth:
username: !secret web_server_username
password: !secret web_server_password
#
mqtt:
broker: !secret mqtt_broker
username: !secret mqtt_username
password: !secret mqtt_password
#
# ap:
# ssid: ${upper_devicename} Fallback Hotspot
# password: !secret fallback_password
#
captive_portal:
id: CO2
compression: gzip
#
# Enable logging
logger:
#
# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption_key
#
ota:
- platform: esphome
password: !secret ota_password
#
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: CO2-ESP32-Zero- Fallback Hotspot
password: !secret ap_password
#
# Serielle Schnittstelle definieren
uart:
rx_pin: GPIO20
tx_pin: GPIO21
baud_rate: 9600
#
# Sensor konfigurieren
sensor:
- platform: mhz19
co2:
id: co2val
name: MH-Z19 Temperature
icon: "mdi:molecule-co2"
update_interval: 60s
automatic_baseline_calibration: false
id: sens1
temperature:
name: Temperature
icon: "mdi:temperature-celsius"
#
switch:
- platform: restart
name: ${upper_devicename} Restart
icon: "mdi:restart"
device_class: switch


Ondersteun mijn website’s, kanaal en inhoud en mijn voortdurende inspanningen via Patreon:
https://patreon.com/Colani

Suc6
Terry van Erp