Capteur de CO2

Le capteur effectue une mesure toutes les 10 minutes environ

Pourquoi mesurer le CO2

Le CO2 est un indicateur de la qualité de l'air et de l'état de confinement d'un lieu. J'ai choisi de suivre les taux suivants en m'inspirant de la norme EN 13779

  • < 800 PPM : qualité de l'air excellente
  • entre 800 et 1000 PPM : qualité de l'air moyenne
  • entre 1000 et 1500 PPM : qualité de l'air modérée
  • > 1500 PPM : qualité de l'air basse

La cible serait de redescendre à moins de 800PPM dans un lieu clos en présence de plusieurs personnes. Pour ce faire, rien de plus simple : ouvrir la fenêtre 2-5min lorsque le taux dépasse les 800PPM

Mon détecteur à CO2

Je me suis inspiré du projet CO2 de La Fabrique.
Le capteur est un capteur de type NDIR (Non-Dispersive InfraRed), modèle Senseair S8 LP
Le microcontrôleur est un ESP32 assembé sur une carte LILYGO® TTGO T-Display ESP32

Télécharger les fichiers STL pour impression 3D : Partie Haute, Partie Basse, Bouton
Télécharger d'autres fichiers STL (dont la V2 et la variante de la face avant sans le bouton)

Modèle V3

@nousaerons a modifié mon design, en simplifiant une pièce et en dessinant une étiquette à placer en face avant. Cela rend le capteur plus pratique et plus élégant, merci à eux !

Télécharger les fichiers STL pour impression 3D de la V3 : Partie Haute, Partie Basse et le sticker.

Assemblage

1) Préparer 4 fils pour l'alimentation et le port série selon le schéma suivant :

2) Assembler le capteur avec de l'adhésif double face au dos du microcontrôleur et souder les fils.

3) Déposer le bouton puis le capteur dans le boîtier supérieur en passant la prise USB dans le trou.

4) Refermer délicatement le boitier supérieur en pressant dessus. Et voilà !

Etalonnage

Par défaut le capteur est programmé par le fabricant pour se corriger en continu avec une méthode dite ABC (Automatic Background Calibration). Cette méthode se base sur l'hypothèse que le capteur est fréquemment exposé à un niveau résiduel de CO2 par exemple la nuit. Le capteur s'ajuste en continu et fonctionne sur un cycle typique de 180 heures.

Une autre façon d'étalonner le capteur est de le mettre dans un environnement connu (par exemple en extérieur, environ 400PPM) et de faire une "Background Calibration", le capteur s'étalonne alors à 400PPM. Avec mon capteur, il suffit de mettre le capteur en extérieur 30min puis d'appuyer sur le bouton etalonnage sur le boitier.

Logiciel

Le programme s'éxécutant sur le microcontrôleur lit tous les 10 secondes les mesures de CO2 à l'aide d'un protocole ModBus. Il met ensuite à jour la valeur affichée sur l'écran. Finalement, il envoie tous les 10 minutes la dernière mesure sur le cloud ThingSpeak.com en faisant un GET HTTPS à l'API ThingSpeak.

Il faut télécharger la librairie TFT_eSPI pour gérer l'écran. Il faut aussi se créer un compte et avoir une clé d'API sur Thingspeak.com pour mettre en ligne les mesures. Programme à compiler avec Arduino IDE :

Télécharger le code source arduino (variante avec WiFi)

Télécharger le code source arduino (variante sans WiFi)

Historique des changements

  • 01.03.2021 : première version du capteur
  • 06.03.2021 : version avec bouton d'étalonnage
  • 04.04.2021 : documentation supplémentaire
  • 30.04.2022 : publication du modèle V3 de @nousaerons

2021, site et capteur conçu par Grégoire RINOLFI | Twitter : @bobchidie