Mesurer la qualité de l’air et des polluants avec un capteur MQ135 dans vos projets Arduino, Raspberry Pi, ESP8266

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

Le MQ135 est un capteur qui permet de mesurer la qualité de l’air. Le MQ135 est sensible à aux principaux polluants présents dans l’atmosphère de la maison. Ce capteur est sensible au CO2, à l’alcool, au Benzène, à l’oxyde d’azote (NOx) et à l’ammoniac (NH3).

 

Le MQ135 est un capteur plus économique que son grand frère le MQ811 si vous avez besoin de mesurer la présence de CO2 dans une pièce.

Présentation du capteur MQ-135

Ce capteur utilise le dioxyde d’étain (SnO2) dont la conductivité électrique varie en fonction de la présence de polluant(s). La documentation technique est disponible à cette adresse. Comme tous les capteurs de la série MQ (dont vous pouvez trouver la liste complète à la fin de cet article), il faudra procéder à une calibration dans une atmosphère de référence pour mesurer la présence d’un polluant en particulier.


mq135 detection polluant atmospheriques

Pour encore plus de précision, il est également conseillé de procéder à une correction de la mesure en fonction de la température et de l’humidité. Cette opération peut être utilisée en utilisant un DHT11/DHT22 détaillé dans cet article.

mq135 correction fonction humidite temperature

Attention, n’utilisez pas ce détecteur pour réaliser des applications pouvant mettre en danger la sécurité des personnes (applications médicales, système d’alarme DIY, applications industrielles…)

Attention. Le capteur chauffe après quelques minutes d’utilisation. C’est normal, c’est le principe même de fonctionnement de tous les capteurs physicochimiques. Tenez en compte dans la conception de votre projet.

Matériel nécessaire pour tester le MQ135 avec un Arduino

Pour ce projet, vous aurez besoin du matériel suivant :

Utilisez des Jumpers Dupont M/F ou une breadbord si le connecteur n’est pas soudé trop en retrait sur le PCB.

Reliez les Pins Vcc et GND du capteur au 5V et au GND de l’Arduino

Reliez le Pin D0 du capteur à l’entrée analogique A0 de l’Arduino

Exemple de code et calibration

Le polluant le plus présent et le plus facile à calibrer dans l’atmosphère reste le CO2. En effet, la teneur en CO2 est une grandeur très suivie. La première chose à faire est donc de récupérer la teneur moyenne en CO2 dans l’atmosphère. Pour cela vous pouvez utiliser le niveau mesuré par la NOAA (National Oceanic and Atmospheric Administration) disponible ici. Les concentrations moyennes mensuelles sont calculées à partir de mesures continues. La NOAA utilise les mesures de 130 stations de mesure du CO2 réparties sur la planète.

Dans une maison bien aérée ou en extérieure, elle est maintenant de 401.62 ppm (mesure de décembre 2015). Pour réaliser la calibration, j’ai utilisé la librairie mise à disposition par Georg Krocker sur hackaday.io. La librairie est disponible sur le github de Georg Krocker à cette adresse.

Dans le code ci-dessous, vous devez tout d’abord modifier la variable ATMOCO2 qui se trouve à la ligne 39 du fichier MQ135.h

Avant la première utilisation, laissez le capteur sous tension durant 48h.

Ensuite, exécutez le code suivant durant 30 minutes, puis relancez le. Au lancement, la valeur de la résistance R0 est affichée sur la console. Mettez maintenant à jour la variable RZERO qui se trouve à la ligne 27 du fichier MQ135.h

La calibration est terminée, vous pouvez mesurer la teneur en CO2 chez vous.

/*
  Programme de test du MQ135 permettant de mesurer la présence de polluants dans l'atmosphère (CO, CO2 Alcool, fumées...)
  Pour plus d'infos ici http://www.projetsdiy.fr/mq135-mesure-qualite-air-polluant-arduino
  Utilise la librairie mq135.cpp mise à disposition par Georg Krocker https://github.com/GeorgK/MQ135
  Projets DIY - Mars 2016 - www.projetsdiy.fr
*/

#include "MQ135.h"
const int mq135Pin = 0;     // Pin sur lequel est branché de MQ135

MQ135 gasSensor = MQ135(mq135Pin);  // Initialise l'objet MQ135 sur le Pin spécifié

void setup()
{
    Serial.begin(9600);     // Initialise le port série à 9600 bps 
    float rzero = gasSensor.getRZero();
    Serial.print("R0: ");
    Serial.println(rzero);  // Valeur à reporter ligne 27 du fichier mq135.h après 48h de préchauffage
    
}

void loop()
{
    float ppm = gasSensor.getPPM();
    Serial.print("A0: ");
    Serial.print(analogRead(mq135Pin));
    Serial.print(" ppm CO2: ");
    Serial.println(ppm);
    delay(1000);        // Actualise la mesure chaque seconde
}
Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

5 Commentaires
  1. @christophe :Bonjour,

    Merci beaucoup pour cet article qui m’a bien aidé. Le capteur MQ135 et le code fonctionnent bien. Après Calibration, j’obtiens sur le moniteur série : 

    A0: 1001 ppm CO2: 398.53

    Je comprends qu’il y a donc 398.53 ppm de CO2, par contre, je ne comprends pas à quoi correspond la valeur A0 1001.

    Pourriez-vous m’aider ?

    Merci beaucoup par avance.

  2. Erreur dans le texte, le CO2 n’est pas un polluant.

    • Bonjour Le Cornouiller. Effectivement le C02 est avant tout un gaz à effet de serre mais en même temps il est largement produit par l’activité humaine et vient modifier le milieu (notre atmosphère). A l’échelle locale (une pièce), c’est la même chose. Si on se réfère à cette définition (non officielle) d’un polluant https://www.actu-environnement.com/ae/dictionnaire_environnement/definition/polluant.php4 et tout particulièrement la fin “On peut désigner sous le terme de polluant toute substance artificielle produite par l’homme et dispersée dans l’environnement, mais aussi toute modification d’origine anthropogène affectant le taux ou (et) les critères de répartition dans la biosphère d’une substance naturelle propre à tel ou tel milieu.” on peut dire que le CO2 est un gaz à effet de serre polluant 🙂 Bon au final, c’est pas très important, ce qu’on souhaite c’est connaître (à la louche) sa teneur. Je vous conseille d’ailleurs d’opter pour un capteur auto-calibré, par exemple MHZ-19 beaucoup plus fiable que la série MQ https://projetsdiy.fr/?s=mh-z19&post_type=post . Bon week end.

  3. Bonjour

    J’ai lue avec grand intérêt l’article sur le MQ135 en vue d’une
    conception data-logger co2,

    j’ai un souci c’est
    le l’affichage est de A0 au lieu R0 sur le moniteur série

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment.