Déterminer la qualité de l'air intérieur ne nécessite pas toujours des appareils de mesure très précis et coûteux. Un simple indicateur plus un suivi des valeurs limites peuvent s'avérer très utiles si vous souhaitez simplement savoir quand aérer une pièce très fréquentée. Un tel appareil devient encore plus utile lorsque son simple afficheur intégré est complété par une transmission d'alertes vers un compte Telegram sur votre smartphone. Une technologie de capteur hautement intégrée, un microcontrôleur moderne et un peu de programmation BASIC permettent, et sans grande complexité technique, d'utiliser ce moniteur eCO2 et ses différents modes d'affichage pour indiquer une mauvaise qualité de l'air de quatre manières :

  • LED NeoPixel locales comme indicateur visuel de la qualité de l'air
  • Interface web pour les appareils locaux avec un navigateur web
  • Requête manuelle via l'application de messagerie Telegram
  • Message d'alerte Telegram envoyé à un utilisateur Telegram spécifique

Vous souhaitez publier un article dans Elektor Mag ou sur notre site Internet ? Nous encourageons les auteurs expérimentés et les débutants à consulter notre Page de Soumissions!  
Materiel

Le circuit simple de la figure 1 est basé sur un capteur eCO2 CCS811 et un module SoC ESP32. La qualité de l'air est indiquée par une ou plusieurs LED NeoPixel. Un seul interrupteur à bouton-poussoir est connecté à une broche d'entrée. Le capteur et le SoC communiquent via un bus I2C à deux fils. L'écran NeoPixel n'utilise qu'une seule ligne de données au niveau du GPIO27, qu'il s'agisse d'un seul point LED ou d'une matrice.

eCO2 Fig1.png
Figure 1. Bot Telegram eCO2 avec une matrice Atom M5Stack et un CCS811,
y compris les circuits internes (source d'image : fiche technique AMS).

Bien que n'importe quel module ESP32 disposant de broches I2C convienne à cette tâche, je recommande l'utilisation d'un ATOM Matrix ou d'un ATOM Lite, de M5Stack. En effet, ces modules pratiques combinent un ESP32-PICO-D4 avec une antenne, et soit une matrice NeoPixel, soit une LED NeoPixel, ainsi qu'un bouton poussoir et d'autres composants, le tout dans un petit boîtier de protection compact et élégant. Ainsi, le capteur et le module ESP32 sont presque tout le matériel nécessaire pour construire l'appareil sur une carte perforée ordinaire. Pour ce faire, branchez le CCS811 et l'ATOM dans les connecteurs femelle et mâle appropriés, respectivement, et faites les diférents branchements nécessaires avec du fil de circuit, comme le montre la figure 2. La face inférieure de la carte perforée traversante est isolée avec du ruban adhésif.

eco2 210566-016-94-ORIGINAL-Bild 2 Fig2.png
Figure 2. Soudure facile des deux modules sur la carte perforée.

Le circuit est alimenté via le module ESP32 par une alimentation USB (5 V avec un maximum de 500 mA), soit via l'USB C, le connecteur HY2.0 Grove, ou les prises inférieures.

The CCS811 eCO2 Sensor

Le capteur CCS811 ne peut pas mesurer directement la teneur en CO2 ! Il calcule la teneur équivalente en CO2 (eCO2) en mesurant les VOC (composés organiques volatils totaux), la principale source de ces composés organiques volatils étant l'air expiré par les humains.

Ce capteur semi-conducteur à oxyde métallique (MOS) est peu couteux. Il recherche une référence relative de "bon air" en déterminant les meilleures conditions d'air sur une longue durée, puis en supposant que le capteur se trouve dans un air frais et non pollué contenant 400 ppm de CO2 à un moment donné. Mais : Le capteur ne stocke pas cette valeur.

En outre, la sensibilité du capteur peut varier dans le temps et dans des conditions environnementales différentes, telles que la température et l'humidité. Ainsi, pour fournir des relevés eCO2 fiables, le capteur nécessite :

  • un temps de déverminage unique de plus de 48 heures et
  • une période minimale de rodage d'environ 20 minutes après chaque démarrage à froid.

La fiche technique contient des informations plus détaillées sur le capteur de gaz.

Logiciel

Le programme a été développé avec Annex32, un interpréteur BASIC pour ESP32. Après avoir installé l'interpréteur dans la mémoire flash du module ESP32 via un programme d'installation et une interface USB sérielle, l'interpréteur et son environnement de développement fonctionnent directement sur l'ESP32. On a seulement besoin d'un navigateur Chrome ou Firefox pour charger, éditer, tester et exécuter (automatiquement) le script BASIC. La version minimale requise d'Annex32 est V1.435, car elle prend en charge le CCS811 et le messager Telegram. L'aide en ligne d'Annex32 contient une introduction très utile à cet interpréteur BASIC. Les principales tâches du code BASIC sont les suivantes :

  • Initialisation du CCS811 et relevé de la valeur eCO2 une fois par seconde.
  • Classification de l'état de l'eCO2 de l'air ambiant par couleur VERT, JAUNE ou ROUGE.
  • Affichage de cet état par la matrice NeoPixel intégrée ou par la couleur de la LED NeoPixel.
  • Une interface web affiche la valeur eCO2 et la catégorie dans un navigateur sur le réseau local (W)LAN.
  • Il est possible de consulter manuellement l'état et la valeur eCO2 via Telegram, car notre programme comprend un bot Telegram et récupère les commandes entrantes de l'utilisateur à partir du serveur Telegram.
  • Un message d'alerte Telegram est automatiquement envoyé au dernier chat_id Telegram lorsque la qualité de l'air est dans la zone rouge (figure 3).
  • Il est possible d'enregistrer le niveau de référence de la qualité de l'air en appuyant sur le bouton frontal du module Atom ou en envoyant une commande Telegram.
 
Warning message
Figure 3. Message d'avertissement : l'air est vicié !

La routine du bot Telegram consulte régulièrement les serveurs Telegram à la recherche de commandes entrantes. Il répond ensuite à ces commandes, comme le montre la figure 4 :

  • /e renvoie la valeur de l'eCO2 et la catégorie [VERT | JAUNE | ROUGE].
  • /s enregistre la valeur de référence dans /baseline.txt.
  • /r rétablit la valeur de base à partir de /baseline.txt.
  • /i retourne les paramètres IP locaux du module.
  • [Tout autre caractère] effectue la même chose que /e.
 
Control via the Telegram bot
Figure 4. Contrôle via le bot Telegram.

Your Own Telegram Token

Afin d'utiliser les fonctionnalités de Telegram dans le programme BASIC, vous devez d'abord créer votre propre bot Telegram en suivant les instructions BotFather dans votre application Telegram. Vous obtiendrez ainsi votre jeton Telegram personnel et un nom de bot. Attention : vous devez inclure ces deux informations dans le programme BASIC pour définir les variables appropriées.

L'utilisation d'Annex32 BASIC, dont vous pouvez toujours trouver la version actuelle dans le forum Annex RDS, a au moins l'avantage d'être facile à lire - même pour les développeurs débutants - et d'être adaptable à vos propres besoins. Cependant, code est abondamment commenté pour une meilleure compréhension des fonctions. Ce script doit être recopié dans l'éditeur web d'Annex32 et sauvegardé dans le module ESP32 en tant que fichier d'exécution automatique (/default.bas).

 

Program excerpt - web page output
Extrait du programme : sortie d'une page web

210566-01 - Traduction : Asma AdhimiCet article devrait paraître dans Elektor Mai/Juin 2023


Des questions, des commentaires?

Contactez redaction@elektor.fr.