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

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 https://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

4 Commentaires
  1. 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.

  2. 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

    • Bonjour Dominique. R0 est lu lue uniquement à l’initialisation (dans le setup). Commentez les sorties dans la boucle loop ou décochez le défilement automatique du moniteur série pour récupérer la valeur initiale. A très bientôt.

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.

Sondage

Vous avez la parole. Quels sont les thèmes qui vous intéressent en 2021.

Résultats du sondage début janvier.

Merci pour votre confiance. Prenez soin de vous et passez de bonnes fêtes !

Jusqu’à 8 réponses possibles. Vous pouvez faire d’autres propositions. 

Les thèmes qui vous intéressent en 2021
  • Proposer une autre réponse

Utiliser la flèche rouge pour déplier tous les choix.

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

Table des matières

À lire aussi
Publicité
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.