- Composants requis
- Capteur de CO2 infrarouge par gravité
- Module d'affichage OLED 0,96 '
- Schéma
- Code Arduino pour mesurer la concentration de CO2
- Test de l'interface du capteur de CO2 infrarouge par gravité
La concentration croissante de dioxyde de carbone dans l'air est devenue un problème sérieux maintenant. Selon le rapport de la NOAA, la concentration de CO2 dans l'ozone a atteint 0,0385 pour cent (385 ppm) et c'est la quantité la plus élevée en 2,1 millions d'années. Cela signifie que dans un million de particules d'air, il y a 385 particules de dioxyde de carbone. Cette augmentation du niveau de CO2 a gravement affecté l'environnement et nous a conduit à faire face à des situations telles que le changement climatique et le réchauffement climatique. Il existe de nombreux appareils de mesure de la qualité de l'air installés sur les routes pour connaître le niveau de CO2, mais nous pouvons également construire un appareil de mesure de CO2 DIY et l'installer dans notre région.
Dans ce tutoriel, nous allons interfacer le capteur de CO2 infrarouge par gravité avec Arduino pour mesurer la concentration de CO2 en PPM. Le capteur de CO2 infrarouge à gravité est un capteur de CO2 analogique de haute précision. Il mesure la teneur en CO2 dans la plage de 0 à 5000 ppm. Vous pouvez également consulter nos projets précédents où nous avons utilisé le capteur de gaz MQ135, le capteur Sharp GP2Y1014AU0F et le capteur Nova PM SDS011 pour construire un moniteur de qualité de l'air.
Composants requis
- Arduino Nano
- Capteur de CO2 infrarouge par gravité V1.1
- Fils de cavalier
- Module d'affichage OLED SPI 0,96 '
- Planche à pain
Capteur de CO2 infrarouge par gravité
Le capteur de CO2 infrarouge à gravité V1.1 est le dernier capteur de CO2 infrarouge analogique de haute précision publié par DFRobot. Ce capteur est basé sur la technologie infrarouge non dispersive (NDIR) et présente une bonne sélectivité et une dépendance sans oxygène. Il intègre la compensation de température et prend en charge la sortie DAC. La plage de mesure effective de ce capteur est de 0 à 5000ppm avec une précision de ± 50ppm + 3%. Ce capteur infrarouge de CO2 peut être utilisé dans le CVC, la surveillance de la qualité de l'air intérieur, la surveillance des processus industriels et de la protection de la sécurité, la surveillance des processus de production de l'agriculture et de l'élevage.
Brochage du capteur de CO2 infrarouge :
Comme mentionné précédemment, le capteur infrarouge de CO2 est livré avec un connecteur à 3 broches. La figure et le tableau ci-dessous montrent les affectations des broches pour le capteur infrarouge de CO2:
N ° de broche |
Nom de la broche |
La description |
---|---|---|
1 |
Signal |
Sortie analogique (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 à 5,5 V) |
3 |
GND |
GND |
Spécifications et caractéristiques du capteur de CO2 infrarouge :
- Détection de gaz: dioxyde de carbone (CO2)
- Tension de fonctionnement: 4,5 ~ 5,5 V DC
- Temps de préchauffage: 3min
- Temps de réponse: 120s
- Température de fonctionnement: 0 ~ 50 ℃
- Humidité de fonctionnement: 0 ~ 95% HR (sans condensation)
- Imperméable et anti-corrosion
- Cycle de vie élevé
- Interférence anti-vapeur d'eau
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. Les broches et ses fonctions sont expliquées dans le tableau ci-dessous:
Nous avons déjà couvert OLED et ses types en détail dans l'article précédent.
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
En savoir plus sur OLED et son interface avec différents microcontrôleurs en suivant le lien.
Schéma
Le schéma de circuit pour l'interfaçage du capteur de CO2 infrarouge analogique de gravité pour Arduino est donné ci-dessous:
Le circuit est très simple car nous ne connectons que le capteur de CO2 infrarouge par gravité et le module d'affichage OLED avec Arduino Nano. Le capteur infrarouge de CO2 et le module d'affichage OLED sont tous deux alimentés par + 5V et GND. La broche Signal (sortie analogique) du capteur de CO2 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, il devrait ressembler à quelque chose comme ci-dessous:
Code Arduino pour mesurer la concentration de CO2
Le code complet de ce projet de capteur de CO2 infrarouge analogique par gravité pour Arduino est donné à la fin du document. Nous expliquons ici certaines parties importantes du code.
Le code utilise le Adafruit_GFX , et Adafruit_SSD1306 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 allez dans 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. Le capteur infrarouge de CO2 ne nécessite aucune bibliothèque car nous lisons les valeurs de tension directement à partir de la broche analogique d'Arduino.
Après avoir installé les bibliothèques sur Arduino IDE, démarrez le code en incluant les fichiers de bibliothèque nécessaires. Le capteur de poussière ne nécessite aucune bibliothèque car la lecture est prise directement à partir de la broche analogique d'Arduino.
#comprendre
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 de CO2 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); analogReference (DEFAULT);
À 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 () . Ensuite, convertissez ces valeurs de signaux analogiques en valeurs de tension.
boucle void () {int sensorValue = analogRead (sensorIn); tension flottante = sensorValue * (5000 / 1024.0);
Après cela, comparez les valeurs de tension. Si la tension est de 0 V, cela signifie qu'un problème est survenu avec le capteur. Si la tension est supérieure à 0 V mais inférieure à 400 V, cela signifie que le capteur est toujours dans le processus de préchauffage.
if (voltage == 0) {Serial.println ("Fault"); } else if (tension <400) {Serial.println ("préchauffage"); }
Si la tension est égale ou supérieure à 400 V, convertissez-la en valeurs de concentration de CO2.
else {int voltage_diference = tension-400; float concentration = voltage_diference * 50,0 / 16,0;
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.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (concentration);
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 de CO2 infrarouge par gravité
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:
Remarque: avant d'utiliser le capteur, laissez le capteur chauffer pendant environ 24 heures pour obtenir des valeurs PPM correctes. Lorsque j'ai mis le capteur sous tension pour la première fois, la concentration de CO2 de sortie était de 1500 PPM à 1700 PPM et après un processus de chauffage de 24 heures, la concentration de CO2 de sortie a diminué de 450 PPM à 500 PPM qui sont les valeurs PPM correctes. Il est donc nécessaire de calibrer le capteur avant de l'utiliser pour mesurer la concentration de CO2.
C'est ainsi qu'un capteur de CO2 infrarouge peut être utilisé pour mesurer la concentration précise de CO2 dans l'air. Le code complet et la vidéo de travail sont donnés ci-dessous. Si vous avez des doutes, laissez-les dans la section des commentaires ou utilisez nos forums pour obtenir de l'aide technique.