Capteur CO₂ MH-Z19 NDIR 5000ppm

Availability:

Rupture de stock


600,00 DH

Capteur CO₂ Infrarouge NDIR MH-Z19 / MH-Z19B / MH-Z19C / MH-Z19E

Module de mesure du dioxyde de carbone 400–5000 ppm / 0–5000 ppm avec sortie UART & PWM

Arduino • ESP32 • ESP8266 • Raspberry Pi • STM32 • Domotique • Serre • HVAC • Qualité de l’air

Description générale

Le capteur CO₂ MH-Z19 est un module de mesure du dioxyde de carbone basé sur la technologie
NDIR infrarouge non dispersive. Il permet de mesurer la concentration de CO₂ dans l’air avec une bonne stabilité,
une réponse fiable et une intégration simple dans les projets électroniques, domotiques, IoT et industriels.

Contrairement aux capteurs de gaz chimiques classiques, un capteur NDIR mesure le CO₂ grâce à l’absorption infrarouge.
Cette méthode offre une meilleure sélectivité, une durée de vie plus longue et une meilleure stabilité pour une surveillance continue
de la qualité de l’air intérieur.

Ce module est particulièrement adapté pour les projets avec Arduino, ESP32, ESP8266, Raspberry Pi, STM32,
automate, système de ventilation, tableau de bord environnemental, station météo intérieure, serre intelligente ou système HVAC.

🌿

Mesure CO₂

Plage jusqu’à 5000 ppm selon version

📡

UART TTL

Communication série simple avec microcontrôleur

⚙️

PWM

Sortie signal utilisable pour mesure embarquée

🔬

NDIR

Technologie infrarouge stable et durable

Utilisation recommandée : qualité de l’air intérieur, salle de classe, bureau, maison connectée,
serre agricole, ventilation automatique, purificateur d’air, laboratoire, station météo, système IoT et monitoring industriel.

Caractéristiques techniques principales

Caractéristique Détail
Gaz détecté Dioxyde de carbone CO₂
Technologie NDIR infrarouge non dispersif
Plage de mesure 400–5000 ppm ou 0–5000 ppm selon version et configuration
Sorties UART TTL / PWM selon modèle
Alimentation Généralement 5V DC selon version
Niveau logique TTL 3.3V, souvent compatible avec microcontrôleurs 5V
Compatibilité Arduino, ESP32, ESP8266, Raspberry Pi, STM32, systèmes embarqués

Détail des variations disponibles

Variation 1 : MH-Z19

Le MH-Z19 est la version classique de la famille. Il convient parfaitement aux projets de prototypage,
aux montages Arduino, aux systèmes simples de surveillance CO₂ et aux applications pédagogiques.

Cette version est idéale pour apprendre le fonctionnement d’un capteur NDIR, afficher une mesure sur écran LCD/OLED,
déclencher une alerte sonore ou piloter un ventilateur à partir d’un seuil de CO₂.

  • Idéal pour Arduino et projets éducatifs
  • Mesure CO₂ en ppm
  • Communication UART simple
  • Format compact pour boîtier électronique

Variation 2 : MH-Z19B

Le MH-Z19B est l’une des versions les plus populaires. Elle est très utilisée dans les projets de qualité de l’air,
les systèmes domotiques, les stations CO₂ connectées et les intégrations avec ESP32 ou ESP8266.

Le MH-Z19B est apprécié pour sa stabilité, sa sortie UART, sa sortie PWM et sa bonne compatibilité avec les bibliothèques Arduino
et les plateformes comme Home Assistant, MQTT ou Node-RED.

  • Version très répandue pour IoT et domotique
  • Compatible ESP32, ESP8266 et Arduino
  • Adapté aux systèmes de ventilation automatique
  • Excellent choix pour monitoring intérieur

Variation 3 : MH-Z19C

Le MH-Z19C est une version plus récente de la série. Elle est destinée aux projets où l’on recherche un module compact,
moderne et facile à intégrer dans un appareil connecté ou un boîtier de surveillance de l’air.

Cette variation est adaptée aux solutions IoT, aux systèmes de mesure avec écran, aux boîtiers muraux CO₂,
aux projets ESPHome et aux appareils autonomes de contrôle environnemental.

  • Version moderne de la famille MH-Z19
  • Bonne intégration dans les boîtiers compacts
  • Sortie UART pratique pour microcontrôleurs
  • Utilisation possible en tableau de bord connecté

Variation 4 : MH-Z19E

Le MH-Z19E est une version avancée de la série, adaptée aux applications de surveillance continue,
aux bâtiments intelligents, aux systèmes HVAC, aux purificateurs d’air et aux installations nécessitant un suivi CO₂ durable.

Cette version est particulièrement intéressante pour les projets professionnels ou semi-professionnels où la mesure doit rester stable
sur une longue période avec une communication simple vers un contrôleur.

  • Adapté au monitoring continu
  • Très bon choix pour ventilation intelligente
  • Convient aux bâtiments, bureaux, salles et serres
  • Compatible systèmes embarqués et IoT

Tableau comparatif des versions

Version Profil Meilleure utilisation
MH-Z19 Version classique Arduino, apprentissage, prototype CO₂
MH-Z19B Version populaire Domotique, ESP32, Home Assistant, MQTT
MH-Z19C Version moderne Boîtier connecté, IoT compact, écran OLED
MH-Z19E Version avancée Monitoring continu, HVAC, bâtiments intelligents

Niveaux indicatifs de CO₂

Niveau CO₂ Interprétation Action recommandée
400 à 700 ppm Air généralement bien renouvelé Situation normale
700 à 1000 ppm Air correct mais à surveiller Aération possible
1000 à 1500 ppm Renouvellement d’air insuffisant Aérer ou activer ventilation
Plus de 1500 ppm Air chargé en CO₂ Ventilation fortement conseillée

Exemple de câblage Arduino UNO

MH-Z19 Arduino UNO
Vin 5V
GND GND
TX D10 RX logiciel
RX D11 TX logiciel

Code Arduino UART pour lire le CO₂

Ce code permet de lire la valeur CO₂ en ppm via la liaison série UART du module.

#include <SoftwareSerial.h>

SoftwareSerial mhz19(10, 11); 
// Arduino D10 = RX reçoit TX du capteur
// Arduino D11 = TX envoie vers RX du capteur

byte cmdReadCO2[9] = {0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
byte response[9];

void setup() {
  Serial.begin(9600);
  mhz19.begin(9600);

  Serial.println("Lecture capteur CO2 MH-Z19...");
  delay(3000); // temps de stabilisation
}

void loop() {
  int co2 = readCO2();

  if (co2 > 0) {
    Serial.print("CO2 : ");
    Serial.print(co2);
    Serial.println(" ppm");

    if (co2 > 1200) {
      Serial.println("Alerte : ventilation recommandee !");
    }
  } else {
    Serial.println("Erreur de lecture du capteur.");
  }

  delay(3000);
}

int readCO2() {
  mhz19.write(cmdReadCO2, 9);
  delay(100);

  if (mhz19.available() >= 9) {
    for (int i = 0; i < 9; i++) {
      response[i] = mhz19.read();
    }

    if (response[0] == 0xFF && response[1] == 0x86) {
      int ppm = response[2] * 256 + response[3];
      return ppm;
    }
  }

  return -1;
}

Code ESP32 avec UART matériel

Avec un ESP32, il est préférable d’utiliser un port série matériel. Cet exemple utilise les broches GPIO16 et GPIO17.

#define RXD2 16
#define TXD2 17

byte cmdReadCO2[9] = {0xFF, 0x01, 0x86, 0, 0, 0, 0, 0, 0x79};
byte response[9];

void setup() {
  Serial.begin(115200);
  Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);

  Serial.println("ESP32 + MH-Z19 pret");
  delay(3000);
}

void loop() {
  int co2 = readCO2();

  if (co2 > 0) {
    Serial.print("Taux CO2 : ");
    Serial.print(co2);
    Serial.println(" ppm");

    if (co2 < 800) {
      Serial.println("Qualite air : bonne");
    } else if (co2 < 1200) {
      Serial.println("Qualite air : moyenne");
    } else {
      Serial.println("Qualite air : ventilation conseillee");
    }
  }

  delay(3000);
}

int readCO2() {
  Serial2.write(cmdReadCO2, 9);
  delay(100);

  if (Serial2.available() >= 9) {
    for (int i = 0; i < 9; i++) {
      response[i] = Serial2.read();
    }

    if (response[0] == 0xFF && response[1] == 0x86) {
      return response[2] * 256 + response[3];
    }
  }

  return -1;
}

Code ESP32 avec relais de ventilation

Exemple pratique : si le CO₂ dépasse 1200 ppm, l’ESP32 active un relais pour démarrer un ventilateur.

#define RXD2 16
#define TXD2 17
#define RELAIS 23

byte cmdReadCO2[9] = {0xFF, 0x01, 0x86, 0, 0, 0, 0, 0, 0x79};
byte response[9];

void setup() {
  Serial.begin(115200);
  Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);

  pinMode(RELAIS, OUTPUT);
  digitalWrite(RELAIS, LOW);

  delay(3000);
}

void loop() {
  int co2 = readCO2();

  Serial.print("CO2 = ");
  Serial.print(co2);
  Serial.println(" ppm");

  if (co2 > 1200) {
    digitalWrite(RELAIS, HIGH);
    Serial.println("Ventilation activee");
  } else if (co2 > 0 && co2 < 900) {
    digitalWrite(RELAIS, LOW);
    Serial.println("Ventilation arretee");
  }

  delay(5000);
}

int readCO2() {
  Serial2.write(cmdReadCO2, 9);
  delay(100);

  if (Serial2.available() >= 9) {
    for (int i = 0; i < 9; i++) {
      response[i] = Serial2.read();
    }

    if (response[0] == 0xFF && response[1] == 0x86) {
      return response[2] * 256 + response[3];
    }
  }

  return -1;
}

Exemple Python Raspberry Pi

Sur Raspberry Pi, le capteur peut être lu via le port série UART avec Python. Cet exemple affiche la valeur CO₂ dans le terminal.

import serial
import time

ser = serial.Serial("/dev/serial0", 9600, timeout=1)

cmd = bytearray([0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79])

def read_co2():
    ser.write(cmd)
    time.sleep(0.1)
    response = ser.read(9)

    if len(response) == 9 and response[0] == 0xFF and response[1] == 0x86:
        co2 = response[2] * 256 + response[3]
        return co2

    return None

while True:
    co2 = read_co2()

    if co2:
        print(f"CO2 : {co2} ppm")
    else:
        print("Erreur de lecture")

    time.sleep(3)

Applications détaillées

1. Maison connectée

Le capteur peut être intégré dans une box domotique pour surveiller le CO₂ dans les chambres, salons, bureaux ou pièces fermées.
Il peut envoyer les données vers MQTT, Home Assistant ou un tableau de bord web.

2. Salle de classe et bureau

Dans les espaces occupés par plusieurs personnes, le taux de CO₂ augmente rapidement. Un affichage en temps réel permet de savoir
quand ouvrir les fenêtres ou activer la ventilation.

3. Serre intelligente

Dans l’agriculture connectée, le CO₂ est un paramètre important pour suivre l’environnement de culture.
Le module peut être associé à des capteurs de température, humidité, luminosité et humidité du sol.

4. Système HVAC

Le MH-Z19 peut servir de capteur de référence dans un système de ventilation automatique.
Un microcontrôleur peut déclencher un relais, une turbine, une VMC ou un extracteur selon le seuil programmé.

5. Station de qualité de l’air

Associé à un écran OLED, un ESP32 et une connexion WiFi, ce module permet de créer une station complète avec affichage CO₂,
température, humidité, historique et alertes.

Conseils d’installation

  • Laisser le capteur chauffer quelques minutes avant d’interpréter les premières mesures.
  • Éviter de placer le module directement devant un ventilateur ou une source de chaleur.
  • Installer le capteur dans une zone représentative de l’air ambiant.
  • Prévoir une alimentation stable, surtout avec ESP32 ou Raspberry Pi.
  • Respecter le câblage TX/RX : le TX du capteur va vers le RX du microcontrôleur.

FAQ

Ce capteur mesure-t-il vraiment le CO₂ ?

Oui, la série MH-Z19 utilise une technologie NDIR, conçue pour détecter le dioxyde de carbone dans l’air.

Peut-on l’utiliser avec Arduino ?

Oui, il peut être utilisé avec Arduino via UART. Un exemple de code est fourni dans cette fiche.

Peut-on l’utiliser avec ESP32 ?

Oui, l’ESP32 est même très pratique grâce à ses ports série matériels et sa connectivité WiFi/Bluetooth.

Quelle variation choisir ?

Pour un projet simple Arduino, le MH-Z19 ou MH-Z19B suffit. Pour une station connectée, le MH-Z19B ou MH-Z19C est conseillé.
Pour une surveillance continue plus avancée, le MH-Z19E est un très bon choix.

Peut-on piloter une ventilation avec ce capteur ?

Oui, avec un microcontrôleur et un module relais, vous pouvez activer automatiquement un ventilateur selon un seuil CO₂.

Un capteur CO₂ complet pour vos projets électroniques et IoT

Le module MH-Z19 / MH-Z19B / MH-Z19C / MH-Z19E est une solution pratique, compacte et fiable pour mesurer le CO₂,
automatiser la ventilation et créer des systèmes intelligents de surveillance de la qualité de l’air.

UGS : ND Catégorie :
Modéle

MH-Z19, MH-Z19B, MH-Z19C, MH-Z19E

Based on 0 reviews

0.0 overall
0
0
0
0
0

Be the first to review “Capteur CO₂ MH-Z19 NDIR 5000ppm”

There are no reviews yet.

Dsindustrie.com

Select at least 2 products
to compare