Mesure de CO2 avec une carte Pycom

En situation Covid-19, l’aération régulière d’une pièce est préconisée comme geste barrière pour réduire les aérosols. La mesure de la concentration en CO2 est un indicateur sur la qualité de la ventilation.

Bien qu’il n’existe pas officiellement de seuil, Florence Elias Professeur de Physique, Chercheuse et enseignante à l’Université Paris Diderot fait les recommandation suivantes :

Sans masque la concentration ne doit pas dépasser 600ppm, et avec masque, il est recommandé que la concentration ne dépasse pas 800 ppm.
Sur le système étudié ici, nous utiliserons la led RGB de la carte pycom comme indicateur pour qualité de la ventilation

Utilisation d’un capteur bon marché : SCGP30

Il s’agit d’un capteur de qualité d’air avec une précision typique de 15% des valeurs mesurées.
Le capteur de gaz peut détecter une large gamme de composés organiques volatiles (COV) et H2 et est destiné à la surveillance de la qualité de l’air intérieur. Une fois connecté à votre microcontrôleur, il renverra une lecture de Composé Organique Volatile Total (TVOC) et une lecture équivalente de dioxyde de carbone (eCO2) sur I2C.
La mesure de la concentration d’eCO2 (équivalent en dioxyde de carbone calculé) se fait dans une plage de 0 à 60 000 parties par million (ppm) et la concentration de TVOC (composé organique volatil total) dans une plage de 0 à 60 000 parties par milliard (ppb).
Noter que l’eCO2 est calculé sur la base de la concentration en H2, il ne s’agit pas d’un capteur de CO2 « idéal » pour une utilisation en laboratoire.

  • Le raccordement
    Le capteur nécessite que 2 fils d’alimentation (Vcc =3,3V) et 2 fils pour le bus I2C
    PNG - 276.2 ko
  • La programmation
    Avec le logiciel ATOM, on crée un projet avec un dossier lib pour stocker les librairies
    La librairie du sgp30 est téléchargeable ici

    Dans le fichier boot.py, on désactive la fonction heartbeat, puis on initialise le bus I2C

    PNG - 136.9 ko


    Dans le fichier main.py,

    • on crée un « objet » sgp30 à partir de la libraire importée
    • on initialise le capteur
    • après quelque secondes, on dispose de 2 attributs (co2eq et tvoc) de l’objet précédemment créé qui fournissent respectivement les concentrations en c02 et composants volatiles
    • en fonction de la valeur retournée pour le co2, on allume la led RGB d’une couleur différente
      PNG - 1006.2 ko
  • Test
    Dans la vidéo ci-dessous, on observe le résultat d’un test effectué dans une grande pièce, fenêtres fermées avec un seul occupant.
    • Dans un premier temps on mesure une concentration légèrement supérieure à 400, ce qui est cohérent puisque 400 est la concentration en co2 de l’air extérieur.
    • Simplement en soufflant sur le capteur, on voit ( à 25s) que la concentration monte à environ 3000 ppm puis redescend rapidement à une valeur proche de 400.
    • Ensuite ( à 54s ) en approchant près du capteur, un papier sur lequel on a versé une goutte de gel hydro-alcoolique, on voit qu’on arrive à des concentrations très élevées de co2 et de tvoc. Il faudrait vérifier avec un capteur de meilleur qualité s’il est cohérent que la concentration en co2 augmente à ce point.

Utilisation d’un afficheur Oled

Pour rendre le système autonome, on affiche les résultats sur un écran Oled 128x64 qui fonctionne aussi en I2C.

  • Le raccordement
    PNG - 258.8 ko
  • La programmation
    On commence par ajouter la librairie disponible ici dans le dossier lib
    Le fichier boot.py est inchangé
    Dans le fichier main.py, on ajoute la gestion de l’afficheur
    • on crée un « objet » oled à partir de la libraire importée. 0x3c est l’adresse I2C fournie par le connstructeur
    • puis dans la boucle while, on initialise la mémoire écran à 0
    • on positionne la première ligne (co2) du message dans la mémoire écran
    • on positionne la seconde ligne (tvoc) du message dans la mémoire écran
    • on rafraîchit l’affichage sur l’écran
      PNG - 862.3 ko
  • Test

----

Partager

Imprimer cette page (impression du contenu de la page)