Accueil | Arduino | MQ-2 : détecteur de gaz et de fumées (Arduino)

MQ-2 : détecteur de gaz et de fumées (Arduino)

Le MQ-2 est un capteur qui permet de détecteur du gaz ou de fumée à des concentrations de 300 ppm à 10000 ppm. Après calibration, le MQ-2 peut détecter différents gaz comme le GPL (LPG), l’i-butane, le propane, le méthane, l’alcool, l’hydrogène ainsi que les fumées. Il est conçu pour un usage intérieur à température ambiante.

Le MQ2 doit être alimenté en 5V pour le capteur physico-chimique puisse atteindre sa température de fonctionnement. Il dispose d’une sortie analogique et d’un réglage de la sensibilité par potentiomètre. Vous pourrez aussi le trouver avec une interface Grove, notamment chez le fabricant SeeedStudio pour vos projets Intel Edisson. Vous pouvez vous procurer le MQ2 à partir de 2,70€

Attention, n’utilisez pas ce détecteur pour réaliser des applications pouvant mettre en danger la sécurité des personnes (applications médicales, 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 MQ-2 sur un Arduino

mq-2 mq2Pour ce projet, vous aurez besoin du matériel suivant :

Réalisation du circuit

Vous risquer de rencontrer des problèmes pour installer votre MQ-2 sur un breadboard. En effet, les fabricants soudent assez souvent les connecteurs coudés un peu trop loin du bord (pour laisser apparaitre les repérages) se qui empêche d’utiliser une breadbord. Dans ce cas, pas le choix, il faudra utiliser des Jumpers Dupont M/F.

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

Code de base

Voici le code vous permettant de tester votre MQ-2. Par défaut la sortie analogique du MQ-2 est branchée sur l’entrée A0 de l’Arduino.

Calibrer un MQ-2 pour détecter différents gaz

Le code ci-dessus permet simplement de lire la valeur analogique renvoyée par le détecteur. Si vous souhaitez connaitre plus précisément la valeur du niveau d’emission du gaz, nous allons devoir procéder à une calibration. Le fabricant a publié deux courbes dans la documentation technique pour nous permettre de réaliser la calibration.

mq2 mq-2 sensibilite capteur pour gpl co alcool propane fumées hydrogene

La seconde courbe permet d’ajuster la calibration en fonction de la température et de l’humidité.

mq2 mq-2 correction sensibilite fonction humidite temperature

Pour réaliser la calibration, inutile de réinventer la roue, nous allons utiliser le code mis à disposition par Sandbox Electronics qui permet de calibrer le capteur pour détecter la présence de GPL, de CO (Monoxide de carbone) ou de fumées dans l’atmosphère environnante. Créez un projet Arduino et collez le code ci-dessous. Ce programme réalise la calibration de la résistance R0 seul. Pour cela, assurez vous que le capteur soit placé dans un air propre lorsque vous démarrez le programme.

Les autres détecteurs de la famille MQ-xx

Le MQ-2 appartient à une famille de capteurs dédiés à la détection des gaz. C’est le détecteur le plus polyvalent, les autres sont spécialisés dans une ou deux molécules. Vous pouvez vous les procurer séparément. On le trouve très souvent dans les kits de capteurs. Vous pouvez utiliser le même code que précédemment pour les tester, il faudra ajuster la calibration en fonction du capteur choisi. Pour en savoir plus sur la famille des capteurs MQ, lisez cet article.

  • Emmanuel Malosse

    Hello

    Petit problème dans le code …

    A la ligne 101 et 125, s’est glissé une petite erreur … (i suivi du symbole <> suivi de lt pose problème …)
    Pour 101, il faut mettre for (i=0;i<CALIBARAION_SAMPLE_TIMES;i++) { et pour 125, il faut mettre for (i=0;i<READ_SAMPLE_TIMES;i++) {

    Je ne sais pas pourquoi, mais l'outil de chat me rajoute des =" partout dans mon texte :-/

    Peux-tu corriger ton code 😉 ?

    Manu

    • Bonjour Manu. Merci beaucoup, c’est corrigé.

  • Bruce Brousse

    Bonjour,
    Je ne comprend pas très bien comment sont déterminés les coordonnées en Y des points choisis pour donner une approximation de la courbe original. Pourrais-je avoir une explication de cela ?

    Merci d’avance pour votre réponse

    • Bonjour Bruce. La résistivité électrique du capteur change lorsqu’elle est en présence d’une molécule pour laquelle le capteur est sensible. Ces courbes ont été établie en laboratoire. R0 correspond à la résistance à vide (sans polluant). RS, la résistance pour une concentration en polluant donné… sous certaines conditions de température et d’humidité.

      • Bruce Brousse

        Désolé mais je me rends compte que c’est ma question qui n’était pas claire, je pensais aux coordonnées dans le programme. J’ai compris comme sont trouvées les valeurs de x et de la pente (slope) mais je n’arrive pas à retrouver les coordonnées en Y qui sont affichées ici dans le programme (et ce pour tous les points).
        Encore désolé pour ma mauvaise formulation sur ma question précédente.

        • Oups désolé. J’ai travaillé dessus l’année dernière, faut que je me remette dedans ;-). Il fait une interpolation entre deux points de la courbe tirées de la doc technique du fabricant. C’est un peu plus compliqué qu’une interpolation car l’échelle et semi logarithmique. Je ne suis pas prof de math et c’est un peu loin pour moi maintenant. Par contre Google est notre ami ! https://openclassrooms.com/forum/sujet/equation-de-droite-sur-graphique-log. A très bientôt.

          • Bruce Brousse

            Merci beaucoup pour ton aide c’est ce qu’il me fallait ! Bonne continuation à toi et merci de m’avoir répondu ! 🙂