Introduction: Labfab's CO2 Sensor

About: Compte Instructables du réseau Labfab de Rennes (Bretagne - France)

The CO2 sensor is a collaborative project initiated by the Labfab (Rennes - France) in partnership with the MCE (Rennes - France). The objective is to propose a sensor, easy to mount, which allows CO2 measurement in a room. The result of the CO2 concentration threshold calculation is displayed in ppm (parts per million) and is color coded to determine if there is sufficient aeration.

This sensor help you to determine the periods of ventilation in closed spaces, in particular in the school context. Indeed, a high concentration of CO2 in a classroom has the possible consequence of a drop in concentration and even a state of drowsiness. This issue was raised during the Covid-19 health crisis when a correlation was established between the concentration of CO2 in a room and the transmission of the virus.

This project is under CC-BY-NC-SA license, so it is reusable and changable according to your needs.

The facilitation of the working group was led by Pierre-André Souville and Romain Chefdor. The code by Julie Brindejont with advice from Ronan Goas. The design of the object and it's animations was made by Tony Vanpoucke. The documentation was made by the 2021-22 promotion of the CFTTR, by Pierre André Souville and Tony Vanpoucke.


<->


Le capteur CO2 est un projet collaboratif initié par le réseau des Labfab de Rennes en partenariat avec la MCE (Maison de la consommation et de l'environnement). L'objectif est de proposer un capteur, facile à monter, qui permet une mesure de CO2 dans une pièce. Le résultat du calcul du seuil de concentration de CO2 s'affiche en ppm (partie par million) et suit un code couleur pour déterminer si l'aération est suffisante.

Ce capteur permet donc de déterminer les périodes d'aération dans des espaces fermés, notamment dans le cadre scolaire. En effet, une concentration élevée de CO2 dans une salle de classe a pour conséquence possible la baisse de la concentration et même un état de somnolence. Cette problématique a été soulevée lors de la crise sanitaire de la Covid-19 lorsqu'une corrélation a été établie entre la concentration de CO2 dans une pièce et la transmission du virus.

Ce projet est sous licence CC-BY-NC-SA, il est donc reproductible et modifiable selon vos besoins.

L'animation du groupe de travail à été menée par Pierre-André Souville et Romain Chefdor. Le code par Julie Brindejont avec les conseil avisé de Ronan Goas. Le design de l'objet et ces animations ont été réalisées par Tony Vanpoucke. La documentation à été faite par la promotion 2021-22 du CFTTR, par Pierre André Souville et Tony Vanpoucke.

Supplies

Before you start, gather the items needed to build the sensor (first picture) :

  • 1x Programmable board - M5Stack ATOM Matrix (18€)

M5Stack brand board based on ESP32. This card has the particularity of having a miniature size and an on-board LED matrix.

  • 1x CO2 sensor - SenseAir S8 (30 €)

Fairly standard CO2 sensor recommended by nousaerons.fr. Be careful, there are sometimes counterfeits (the cheapest sensors on the internet can be).

  • 4x jumper wire - Male > Female (0,20 €)

Small prototyping cables with a so-called female side and a male side. You will need 4 in total.

  • 1x Wood - Plywood plate (1€)

Size: 22cm x 6cm. Thickness: 3mm or 3.3mm

  • 1x USB-C cable (5€)

USB-C type cable to plug into the (normally) USB-A type power supply.

  • 1x USB power supply - 5V (5€)

Minimum 800mA. A cell phone charger or power bank.

To make your sensor you will also need a few tools (second picture) :

  • A soldering iron with tin (if possible without lead)
  • A laser cutting machine (minimum size 22cm by 6cm - can cut 3mm)
  • Computer with Arduino software


<->


Avant de démarrer, regroupez les éléments nécéssaire à la fabrication du capteur :

  • 1x Carte programmable - M5Stack ATOM Matrix (18€)

Carte de la marque M5Stack basé sur ESP32. Cette carte à la particularité d'avoir une taille miniature et une matrice led embarquée.

  • 1x Capteur CO2 - SenseAir S8 (30 €)

Capteur de CO2 assez standard recommandé par nousaerons.fr. Attention, il existe parfois des contrefaçon (les capteurs les moins cher d'internet peuvent en être).

  • 4x Câbles dupont - Mâle > Femelle

Petits câbles de prototypage avec un côté dit femelle et un côté du mâle. Vous en aurez besoin de 4 au total.

  • 1x Bois - Plaque de contreplaqué (1€)

Dimension : 22 cm x 6 cm. Épaisseur : 3 mm ou 3,3mm

  • 1x Cable - USB-C (5€)

Câble de type USB-C à brancher sur l'alimentation (normalement) de type USB-A.

  • 1x Alimentation USB - 5V (5€)

Minimum 800mA. Un chargeur de téléphone portable ou une batterie externe.

Pour fabriquer votre capteur vous aurez aussi besoin de quelques outils :

  • Un fer à souder avec de l’étain (si possible sans plomb)
  • Une machine de découpe laser (taille minimum 22cm par 6cm - pouvant couper 3mm)
  • Ordinateur avec logiciel Arduino

Step 1: How to Read the Data

The link between the CO2 concentration and the air quality in a room makes it possible to establish reference thresholds, in our case we use the CO2 recommendation of the French authorities.

  • at 800 ppm and below : Recommended for interior spaces in society.
  • from 800ppm : Space must be ventilated!
  • Above 1000 ppm : It is necessary to ventilate the space and it is not advisable to stay in the room.

Our Co2 sensor is designed to interpret these different CO2 alert levels by simple color code. On the diagram opposite you can see the relationship between the operation of the sensor and the recommendation of indoor pollutants (You can, if necessary, change the values ​​of these levels directly in the Arduino code (step 14).

<->

Le lien entre la concentration de CO2 et la qualité de l'air dans une pièce permet d'établir des seuils de référence, nous utilisons dans notre cas les taux de CO2 recommandé par les autorités françaises.

  • à 800 ppm et en dessous : Recommandé pour les espaces intérieurs en société.
  • à partir de 800 ppm : Il faut aérer l'espace !
  • Au delà de 1000 ppm : Il faut aérer l'espace et il n'est pas conseillé de rester dans la pièce.

Notre capteur Co2 est prévu pour interpréter par simple code couleur ces différents paliers d'alerte CO2 . Sur le schéma ci-contre vous pouvez constater les rapports entre le fonctionnement du capteur et recommandation des polluants intérieurs (Vous pourrez au besoin, changer les valeurs de ces paliers directement dans le code Arduino (étape 14).

Step 2: How the Sensor Works

When you plug in the sensor, it will take some time to turn it on, this is a "warm-up time" necessary for the sensor to display a correct value. Once turned on you should see a color appear (see previous step). Clicking on the sensor will allow you to view the exact number of PPM measured by the CO2 sensor.

<->

Lorsque vous branchez le capteur ce dernier mettra quelques temps à l'allumer, il s'agit d'un « temps de chauffe » nécéssaire à ce dernier pour afficher une valeur correct. Une fois allumé vous devriez voir une couleur apparaître (voir l'étape précédente). Cliquer sur le capteur vous permettra de consulter le nombre de PPM exacte mesuré par le capteur CO2 .

Step 3: Calibration and Common Problem

When your sensor starts up, if a "noise" animation appears, your sensor is not being detected correctly. This can be caused by several issues:

  • The Rx and Tx wires (or 21 and 25) were reversed during the connections (see step 7)
  • The sensor is not working correctly, to check this, test by looking to see if an orange LED lights up intermittently in the CO2 sensor. If so, it may be miscalibrated.


It is important that the sensor is well calibrated, to ensure reliable values. The calibration procedure consists of placing the sensor in the outside air: this has a CO2 concentration of approximately 400 ppm and serves as a reference for the sensor.

  • Place the sensor outdoors: you will definitely need an extension cord, or an external battery to supply the sensor with electricity.
  • Wait a few minutes for the value to stabilize.
  • Do a long press (3s) on the LED panel: under this panel there is a button. a glowing blue light should appear indicating the start of the calibration procedure
  • Wait for the flashing to stop: this may take several minutes.
  • The LEDs turn green, the sensor is now ready to be placed indoors. You can disconnect the power supply, the calibration remains activated even when the sensor is switched off.

<->

Lorsque votre capteur démarre, si une animation de « neige » s'affiche, c'est que votre capteur n'est pas détecté correctement. Cela peut venir de plusieurs problèmes :

  • Les fils Rx et Tx (ou 21 et 25) ont été inversé lors des branchements (voir étape 7)
  • Le capteur ne fonctionne pas correctement, pour le vérifier, commencez par regarder si une led orange s'allume bien par intermittence dans le capteur CO2 . Si c'est le cas, il se peut qu'il soit mal calibré. 


Il est important que le capteur soit bien calibré, pour assurer une fiabilité des valeurs. La procédure de calibration consiste à placer le capteur à l'air extérieur : celui-ci a une concentration de CO2 d'environ 400ppm et servira de référence pour le capteur.

  • Placez le capteur en extérieur : vous aurez certainement besoin d'une rallonge électrique, ou d'une batterie externe pour alimenter le capteur en électricité.
  • Attendez quelques minutes que la valeur se stabilise.
  • Faites un appui long (3s) sur le panneau de leds : sous ce panneau se cache un bouton. une lumière bleue rougeoyante devrait s'afficher, ce qui indique le lancement de la procédure de calibration
  • Attendez la fin du clignotement : cela peut durer plusieurs minutes.
  • Les LED passent au vert, le capteur est maintenant prêt à être placé en intérieur. Vous pouvez débrancher l'alimentation, la calibration reste mémorisée même quand le capteur est éteint.

Step 4: Solder the CO2 Sensor the Right Way

For this tutorial, solder all the pins of the Senseair S8 on the "inner side" so that the pins go up along its case part as in the diagram opposite

<->

Pour ce tutoriel, soudez l'ensemble des broches du Senseair S8 du "côté intérieur" de manière à ce que les broches remontent le long de sa partie boitier comme sur le schéma (ci-contre)

Step 5: Cut the Wooden Case

Download the cutting plans:

  • CO2_Labfab_v1_(3,3mm).pdf for 3.3mm wood
  • CO2_Labfab_v1_(3mm).pdf for 3.3mm wood

Then, with a laser cutter (if you don't have one, go to the makersapce or fablab closest to you), take out all the parts needed to mount the CO2 sensor. 


<->


Téléchargez les plans de découpe :

  • CO2_Labfab_v1_(3,3mm).pdf pour bois 3,3mm
  • CO2_Labfab_v1_(3mm).pdf pour bois 3mm

Puis, avec une découpeuse laser (Si vous n'en avez pas, allez au makersapce ou au fablab le plus proche de chez vous), sortez l'ensemble des pièces nécessaire au montage du capteur CO2.

Step 6: Begin the Sensor Structure

Fit the two internal parts B on the internal part A then fit all the internal parts to the part below.

Note: The top of the internal assembly should be on the USB side. The lower part must be on the CO2 side.

<->

Emboîtez les deux pièces interne B sur la pièce interne A puis emboîtez l'ensemble des pièces internes à la pièce du dessous.

Note : La partie haute de l'ensemble interne doit se trouver du côté USB. La partie basse doit se trouver du côté CO2.

Step 7: Wire the CO2 Sensor

Place the CO2 sensor in the inner assembly so that the pins protrude inward from the assembly. Then connect the Dupont cables to the sensor:

  • Connect the + cable (in red on the illustration) to 5v.
  • Connect the - cable (black in the illustration) to G.
  • Connect the Rx cable (in green on the illustration) to 25.
  • Connect the Tx cable (in blue on the illustration) to 21.
CAUTION: If red and black are reversed your sensor will be "burned out".

To connect the CO2 sensor and the Atom Matrix, go to the Dupont cables in the central wide hole (the one with annotations).

<->

Placez le capteur CO2 dans l'ensemble interne de sorte à ce que les broches ressortent vers l’intérieur du montage. Branchez alors les câbles Dupont sur le capteur :

  • Branchez le câble + (en rouge sur l'illustration) sur 5v.
  • Branchez le câble - (en noir sur l'illustration) sur G.
  • Branchez le câble Rx (en vert sur l'illustration) sur 25.
  • Branchez le câble Tx (en bleu sur l'illustration) sur 21.
ATTENTION : En cas d'inversion du rouge et du noir votre capteur sera "grillé".

Pour relier le capteur CO2 et l'Atom Matrix, passez à les câbles Dupont dans le trou large central (celui avec des annotations).

Step 8: Enclose the Case

Place the Atom Matrix in its slot and place the top piece on the Atom Matrix. Clip the 8 spacers around the sensor.

<->

Placez l'Atom Matrix dans son emplacement et posez la pièce du dessus sur l'Atom Matrix. Clipsez les 8 entretoises autour du capteur.

Step 9: Connect the Usb to Your Computer

Check the connections one last time then connect your sensor via USB port. The Atom Matrix should turn on

<->

Vérifiez une dernière fois les branchements puis branchez votre capteur via USB. L'Atom Matrix doit s'allumer

Step 10: Install Arduino Software

Download and install Arduino IDE. This is programming software that will allow the sensor code to be uploaded onto the M5 ATom Matrix card !

Once installed on your computer, start the Arduino software.

<->

Télécharger et installez l'IDE Arduino. C'est un logiciel de programmation qui va permettre de téléverser le programme sur la carte M5 ATom Matrix !

Une fois installé sur votre ordinateur, démarrez le logiciel Arduino.

Step 11: Add Additional Cards

By default, the Arduino IDE cannot recognize the M5 Atom Matrix board. For this to be possible, you must add a web address in a field (see photo opposite), accessible via the File > Preferences menu.

The URL to add in the additional cards field is:

https://dl.espressif.com/dl/package_esp32_index.json

<->

Par défaut, l'IDE Arduino ne sait pas reconnaître la carte M5 Atom Matrix. Pour que ce soit possible, il faut ajouter une adresse web dans un champ (voir photo ci-contre), accessible par le menu Fichier > Préférences.

L'URL à rajouter dans le champ de cartes supplémentaires est :

https://dl.espressif.com/dl/package_esp32_index.json

Step 12: Add Recognition of M5Stack Cards

Thanks to the previous step, it is now possible to add M5Stack card recognition via the Tools > Card type > Card manager menu.

The card manager opens, you must then type in the search field "esp32" then on the Install button.

If the search for "esp32" does not give anything, you must close and restart Arduino: it is possible that the previous step of adding url has not yet been taken into account.

<->

Grâce à l'étape précédente, il est possible maintenant d'ajouter la reconnaissance des cartes M5Stack par le menu Outils > Type de carte > Gestionnaire de cartes.

Le gestionnaire de cartes s'ouvre, il faut alors taper dans le champ de recherche "esp32" puis sur le bouton Installer.

Si la recherche "esp32" ne donne rien, il faut fermer et redémarrer Arduino : il est possible que l'étape précédente de rajout d'url n'ait pas encore été prise en compte.

Step 13: Add M5Atom Library

For the program to be able to use the specific functionalities of the M5 Atom Matrix card, a special library must be added, via the menu Sketch > Include a library > Manage libraries.

The library manager opens, you must then type in the search field "M5Atom" then on the Install button.

A window opens offering all the libraries associated with M5Atom. It is possible to choose "install all". If you prefer to install only what is necessary, you can choose "Install M5Atom only" but you will then have to repeat the operation to also add the "FastLED" library.

The Arduino software is now properly configured to be able to send the program to the M5Atom board.

<->

Pour que le programme puisse utiliser les fonctionnalités spécifiques de la carte M5 Atom Matrix, il faut rajouter une bibliothèque spécifique, par le menu Croquis > Inclure une bibliothèque > Gérer les bibliothèques.

Le gestionnaire de bibliothèques s'ouvre, il faut alors taper dans le champ de recherche "M5Atom" puis sur le bouton Installer.

Une fenêtre s'ouvre proposant toutes les bibliothèques associées à M5Atom. Il est possible de choisir "install all". Si vous préférez installer seulement le nécessaire, vous pouvez choisir "Install M5Atom only" mais il va ensuite falloir répéter l'opération pour ajouter également la bibliothèque "FastLED".

Le logiciel Arduino est maintenant bien configuré pour pouvoir envoyer le programme dans la carte M5Atom.

Step 14: Download Sensor Codes

Download one of the CO2 sensor code version :

  •    Sensor code with variable color animations:
  • download "CO2labfabv1.1.ino"
  • download "MatrixDisplayNumbers.h"
  • download "SenseairS8.h"

Put these 3 files in the same folder and open "CO2labfabv1.1.ino"

  •    Sensor code with visible digits and fixed colors:
  • download "CO2labfabv1.ino"
  • download "MatrixDisplayNumbersv1.h"
  • download "SenseairS8v1.h"

Put these 3 files in the same folder and open "CO2labfabv1.ino"

Find the Github codes according to this version: [Link] and here [Link]. On Github, the files needed to upload to the M5 Atom Matrix board are the files in the “M5Stack-Atom” folder.


To know how to download a code from Github go to this tutorial.


<->


Téléchargez la ou les versions du code du capteur CO2 :

  • Code du capteur avec animations de couleur variable :
  • téléchargez "CO2labfabv1.1.ino"
  • téléchargez "MatrixDisplayNumbers.h"
  • téléchargez "SenseairS8.h"

Mettez ces 3 fichiers dans le même dossier et ouvrez "CO2labfabv1.1.ino"

  • Code du capteur avec chiffres apparents et couleurs fixes :
  • téléchargez "CO2labfabv1.ino"
  • téléchargez "MatrixDisplayNumbersv1.h"
  • téléchargez "SenseairS8v1.h"

Mettez ces 3 fichiers dans le même dossier et ouvrez "CO2labfabv1.ino"

Retrouvez les codes Github selon cette version : [Lien] et ici [Lien]. Sur Github, les fichiers nécessaires au téléversement sur la carte M5 Atom Matrix sont les fichiers dans le dossier « M5Stack-Atom ».

Pour savoir comment télécharger un code depuis Github rendez-vous sur ce tutoriel.

Step 15: Program Upload

File > Open to fetch “.ino” file containing one of the sensor codes (choose either v1.1 or v1) depending on your preference.

Choose the right COM port via the Tools > Port > COMXX menu (XX = choose the highest port number, which most of the time corresponds to the card connected via USB).

Choose the right board via the Tools > Board type > ESP32 Arduino > M5Stack-ATOM menu

Click on the upload button.

Uploading takes a little time. At the bottom right, a scroll bar fills in green. When it's done, some text will scroll on a black background at the very bottom of the window: wait for the text to end scrolling. The LEDs on the M5 Atom Matrix board should light up when it's finished. The sensor is then functional.

<->

Fichier > Ouvrir pour aller chercher fichier « .ino » contenant l'un des codes du capteur (choisiez soit la v1.1 soit la v1) en fonction de votre préférence.

Choisir le bon port COM par le menu Outils > Port > COMXX (XX = choisir le numéro de port le plus élevé, qui correspond la plupart du temps à la carte branchée en USB).

Choisir la bonne carte par le menu Outils > Type de carte > ESP32 Arduino > M5Stack-ATOM

Cliquer sur le bouton de téléversement.

Le téléversement prend un peu de temps. En bas à droite, une barre de défilement se remplit en vert. Quand c'est terminé, du texte va défiler sur fond noir tout en bas de la fenêtre : attendre la fin de défilement du texte. Les leds de la carte M5 Atom Matrix doivent s'allumer quand c'est fini. Le capteur est alors fonctionnel.

Step 16: Test the Sensor !!

Connect the sensor or you want it and check that it works correctly by displaying a color and a consistent CO2 level.

Check that your sensor is properly calibrated, to find out go outside, wait 5 minutes and plug in the sensor, its value should be around 400 PPM. If this is not the case, or if you encounter errors, you will probably need to recalibrate the sensor, for this go to step 3.

As a reminder, if you want to know how to interpret the CO2 level, refer to the color code presented previously (step 1).


<->


Branchez le capteur ou vous le souhaitez et vérifier que ce dernier fonctionne correctement en affichant une couleur et un taux de CO2 cohérent.

Vérfiez que votre capteur est bien calibré, pour le savoir allez en extérieur, attendez 5minutes et branchez le capteur, sa valeur devrais avoisiner les 400 PPM. Si ce n'est pas le cas, ou si vous rencontrez des erreurs, vous devrez probablement recalibrer le capteur, pour cela rendez-vous sur l'étape 3.

Pour rappel, si vous souhaitez savoir comment interpréter le taux de CO2 référez vous au code couleur présenter précédemment (étape 1).