- Composants requis
- Module d'affichage OLED 0,96 '
- Préparation du capteur MQ-135
- Schéma de circuit pour l'interface MQ135 avec Arduino
- Calcul du R
- Code pour mesurer le CO2 à l'aide du capteur Arduino MQ135
- Test de l'interface du capteur MQ-135
Le niveau de CO2 atmosphérique de la Terre augmente de jour en jour. Le dioxyde de carbone atmosphérique moyen mondial en 2019 était de 409,8 parties par million et en octobre 2020, il est de 411,29. Le dioxyde de carbone est un gaz à effet de serre clé et est responsable d'environ trois quarts des émissions. Ainsi , la surveillance du niveau de CO2 a également commencé à gagner en importance.
Dans notre projet précédent, nous avons utilisé le capteur de CO2 infrarouge à gravité pour mesurer la concentration de CO2 dans l'air. Dans ce projet, nous allons utiliser un capteur MQ-135 avec Arduino pour mesurer la concentration de CO2. Les valeurs de concentration de CO2 mesurées seront affichées sur le module OLED et enfin, nous comparerons également les lectures du capteur Arduino MQ-135 avec les lectures du capteur infrarouge de CO2. Outre le CO2, nous avons également mesuré la concentration de GPL, de fumée et d'ammoniac à l'aide d'Arduino.
Composants requis
- Arduino Nano
- Capteur MQ-135
- Fils de cavalier
- Module d'affichage OLED SPI 0,96 '
- Planche à pain
- Résistance 22KΩ
Module d'affichage OLED 0,96 '
OLED (Organic Light-Emitting Diodes) est une technologie auto-émettrice de lumière, construite en plaçant une série de couches minces organiques entre deux conducteurs. Une lumière vive est produite lorsqu'un courant électrique est appliqué à ces films. Les OLED utilisent la même technologie que les téléviseurs, mais ont moins de pixels que dans la plupart de nos téléviseurs.
Pour ce projet, nous utilisons un écran OLED Monochrome 7 broches SSD1306 0,96 ”. Il peut fonctionner sur trois protocoles de communication différents: le mode SPI 3 Wire, le mode SPI quatre fils et le mode I2C. Vous pouvez également en savoir plus sur les bases de l'affichage OLED et ses types en lisant l'article lié. Les broches et ses fonctions sont expliquées dans le tableau ci-dessous:
Nom de la broche |
Autres noms |
La description |
Gnd |
Sol |
Broche de masse du module |
Vdd |
Vcc, 5 V |
Broche d'alimentation (3-5V tolérable) |
SCK |
D0, SCL, CLK |
Agit comme la broche de l'horloge. Utilisé pour I2C et SPI |
SDA |
D1, MOSI |
Broche de données du module. Utilisé pour IIC et SPI |
RES |
RST, RÉINITIALISER |
Réinitialise le module (utile pendant SPI) |
DC |
A0 |
Broche de commande de données. Utilisé pour le protocole SPI |
CS |
Sélection de puce |
Utile lorsque plus d'un module est utilisé sous le protocole SPI |
Spécifications OLED:
- Pilote OLED IC: SSD1306
- Résolution: 128 x 64
- Angle visuel:> 160 °
- Tension d'entrée: 3,3 V ~ 6 V
- Couleur du pixel: bleu
- Température de fonctionnement: -30 ° C ~ 70 ° C
Préparation du capteur MQ-135
Le capteur de gaz MQ-135 est un capteur de qualité de l'air permettant de détecter une large gamme de gaz, notamment le NH3, les NOx, l'alcool, le benzène, la fumée et le CO2. Le capteur MQ-135 peut être acheté en tant que module ou simplement en tant que capteur seul. Dans ce projet, nous utilisons un module de capteur MQ-135 pour mesurer la concentration de CO2 en PPM. Le schéma de circuit de la carte MQ-135 est donné ci-dessous:
La résistance de charge RL joue un rôle très important dans le fonctionnement du capteur. Cette résistance change sa valeur de résistance en fonction de la concentration de gaz. Selon la fiche technique du MQ-135, la valeur de la résistance de charge peut aller de 10KΩ à 47KΩ. La fiche technique vous recommande de calibrer le détecteur pour une concentration de 100 ppm de NH3 ou 50 ppm d'alcool dans l'air et d'utiliser une valeur de résistance de charge (RL) d'environ 20 KΩ. Mais si vous suivez vos traces de PCB pour trouver la valeur de votre RL dans la carte, vous pouvez voir une résistance de charge de 1KΩ (102).
Donc, pour mesurer les valeurs de concentration de CO2 appropriées, vous devez remplacer la résistance 1KΩ par une résistance 22KΩ.
Schéma de circuit pour l'interface MQ135 avec Arduino
Les schémas complets pour connecter le capteur de gaz MQ-135 à Arduino sont donnés ci-dessous:
Le circuit est très simple car nous ne connectons que le capteur MQ-135 et le module d'affichage OLED avec Arduino Nano. Le capteur de gaz MQ-135 et le module d'affichage OLED sont tous deux alimentés par + 5V et GND. La broche de sortie analogique du capteur MQ-135 est connectée à la broche A0 de l'Arduino Nano. Étant donné que le module d'affichage OLED utilise la communication SPI, nous avons établi une communication SPI entre le module OLED et Arduino Nano. Les connexions sont indiquées dans le tableau ci-dessous:
S. Non |
Broche du module OLED |
Broche Arduino |
1 |
GND |
Sol |
2 |
VCC |
5V |
3 |
D0 |
dix |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
sept |
CS |
12 |
Après avoir connecté le matériel selon le schéma de circuit, la configuration du capteur Arduino MQ135 devrait ressembler à quelque chose comme ci-dessous:
Calcul du R
Maintenant que nous connaissons la valeur de RL, procédons à la façon de calculer les valeurs de R o dans de l'air pur. Ici, nous allons utiliser MQ135.h pour mesurer la concentration de CO2 dans l'air. Alors téléchargez d'abord la bibliothèque MQ-135, puis préchauffez le capteur pendant 24 heures avant de lire les valeurs R o. Après le processus de préchauffage, utilisez le code ci-dessous pour lire les valeurs R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } boucle vide () {MQ135 gasSensor = MQ135 (A0); // Attachez le capteur à la broche A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); retard (1000); }
Maintenant, une fois que vous avez obtenu les valeurs R o, accédez à Documents> Arduino> bibliothèques> dossier MQ135-master et ouvrez le fichier MQ135.h et modifiez les valeurs RLOAD & RZERO.
/// La résistance de charge sur la carte #define RLOAD 22.0 /// Résistance d'étalonnage au niveau de CO2 atmosphérique #define RZERO 5804.99
Faites maintenant défiler vers le bas et remplacez la valeur ATMOCO2 par le CO2 atmosphérique actuel qui est 411,29
/// Niveau de CO2 atmosphérique à des fins d'étalonnage #define ATMOCO2 397.13
Code pour mesurer le CO2 à l'aide du capteur Arduino MQ135
Le code complet d'interfaçage du capteur MQ-135 avec Arduino est donné à la fin du document. Nous expliquons ici certaines parties importantes du code Arduino MQ135.
Le code utilise le Adafruit_GFX , et Adafruit_SSD1306 , et MQ135.h bibliothèques. Ces bibliothèques peuvent être téléchargées à partir du gestionnaire de bibliothèque dans l'IDE Arduino et l'installer à partir de là. Pour cela, ouvrez l'IDE Arduino et accédez à Sketch <Inclure la bibliothèque <Gérer les bibliothèques . Recherchez maintenant Adafruit GFX et installez la bibliothèque Adafruit GFX d'Adafruit.
De même, installez les bibliothèques Adafruit SSD1306 d'Adafruit. La bibliothèque MQ135 peut être téléchargée à partir d'ici.
Après avoir installé les bibliothèques sur Arduino IDE, démarrez le code en incluant les fichiers de bibliothèques nécessaires.
#include "MQ135.h" #include
Ensuite, définissez la largeur et la hauteur OLED. Dans ce projet, nous utilisons un écran OLED SPI 128 × 64. Vous pouvez modifier le SCREEN_WIDTH et screen_height des variables en fonction de votre écran.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Définissez ensuite les broches de communication SPI sur lesquelles l'écran OLED est connecté.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Ensuite, créez une instance d'affichage Adafruit avec la largeur et la hauteur définies précédemment avec le protocole de communication SPI.
Affichage Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Après cela, définissez la broche Arduino où le capteur MQ-135 est connecté.
int sensorIn = A0;
Maintenant, dans la fonction setup () , initialisez le Serial Monitor à une vitesse de transmission de 9600 à des fins de débogage. Également, initialisez l'écran OLED avec la fonction begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
À l'intérieur de la fonction loop () , lisez d'abord les valeurs du signal sur la broche analogique d'Arduino en appelant la fonction analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Ensuite, dans la ligne suivante, appelez gasSensor.getPPM () pour calculer les valeurs PPM. Les valeurs PPM sont calculées en utilisant la résistance de charge, R 0, et la lecture de la broche analogique.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Après cela, définissez la taille et la couleur du texte à l'aide de setTextSize () et setTextColor () .
display.setTextSize (1); display.setTextColor (BLANC);
Ensuite, dans la ligne suivante, définissez la position où le texte commence à l'aide de la méthode setCursor (x, y) . Et imprimez les valeurs de CO2 sur l'écran OLED à l'aide de la fonction display.println () .
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Et dans le dernier, appelez la méthode display () pour afficher le texte sur l'écran OLED.
display.display (); display.clearDisplay ();
Test de l'interface du capteur MQ-135
Une fois que le matériel et le code sont prêts, il est temps de tester le capteur. Pour cela, connectez l'Arduino à l'ordinateur portable, sélectionnez la carte et le port, puis appuyez sur le bouton de téléchargement. Ensuite, ouvrez votre moniteur série et attendez un certain temps (processus de préchauffage), puis vous verrez les données finales. Les valeurs seront affichées sur l'écran OLED comme indiqué ci-dessous:
C'est ainsi qu'un capteur MQ-135 peut être utilisé pour mesurer avec précision le CO2 dans l'air. Le code Arduino complet du capteur de qualité de l'air MQ135 et la vidéo de travail sont donnés ci-dessous. Si vous avez des doutes, laissez-les dans la section commentaires.