Table des matières

Détecteur de CO2 v3

Présentation

Caractéristiques du détecteur de CO2:

Je tiens à remercier Henri BACHETTI: c'est grâce à la lecture de son blog RitonDuino que j'ai fini par me lancer dans l'électronique et l'Arduino.

Utilité de surveiller le taux de CO2

Les concepts énoncés ici ne sont pas approfondis, pour plus d’information on pourra consulter les sites Projet CO2 (http://projetco2.fr/), Nous aérons (https://nousaerons.fr/). La science a maintenant montré que le transmission de la COVID-19 se fait majoritairement par le biais des aérosols. Les aérosols sont des «micro-goutelettes» potentiellement chargées en virus qui se diffusent et restent en suspension dans l’air (penser par exemple à de la fumée de cigarette dans un pièce). Une méthode simple et efficace de limiter la transmission est d’aérer le plus possible les espaces intérieurs pour renouveler l’air. La mesure du taux de CO2 dans l’air est un marqueur fiable de l’état de confinement d’un local et permet d’être alerté lorsqu’il devient nécessaire voire impérieux d’aérer.

Électronique

Liste du matériel

Capteur de CO2

Le Senseair S8 LP a été testé et recommandé par Projet CO2 (capteur de type NDIR avec processus de calibration manuelle). On peut s'en procurer pour une trentaine d'euros chez Aliexpress par exemple ici. Vérifiez bien la référence 004-0-0053 !

Capteur de température et d'humidité

Cette fonction est assurée par un circuit Sensirion SHT31D: composant classique i2c ayant fait ses preuves et pas trop gourmand en énergie (voir par exemple Les capteurs de température, humidité, pression & luminosité).</col>

Microcontrôleur et écran ePaper

J'ai choisi la carte D32 PRO v2 de chez LOLIN. Cette carte est équipée d'un ESP32-WROVER classique et possède de plus quelques avantages comme la présence de connecteurs dédiés pour les périphériques i2c et l'écran (ce qui réduit le nombre de soudures à effectuer). On la trouve chez Aliexpress sur la boutique officielle.

Pour l'écran j'ai choisi le ePaper 2.13 de chez LOLIN qui offre une taille et une résolution confortables et dispose du connecteur compatible avec le microcontrôleur. On peut également l'utiliser sans le connecteur avec des connexions classiques par soudure ou Dupont.

Malheureusement en voulant me réapprovisionner je me suis rendu compte que ce modèle n'était plus commercialisé (voir ici. Cependant un modèle plus récent existe: le Tri-Color ePaper 2.13 (SSD1680) qui, à priori, est identique au niveau des dimensions et de la résolution. Cependant le contrôleur est différent et nécessitera une petite adaptation du code source (j'ai commandé un exemplaire et suis en attente de réception).

Le câble pour la connexion TFT: soit chez LOLIN ici soit en prenant un câble de type JST SH1.0 SH à 10 fils droit (non croisé).

Le câble pour la connexion i2c: soit chez LOLIN ici soit en prenant un câble de type JST SH1.0 SH à 4 fils croisés.

Le support et circuit de charge pour l'accumulateur

Concernant l'alimentation nous avons la majorité du circuit alimenté en 3,3V excepté le capteur S8 qui nécessite du 5V. D'autre part, afin d'être autonome un accumulateur et donc un circuit de charge sont requis.
Après recherche et plusieurs essais afin de créer un circuit dédié à cette tâche les résultats n'étaient pas convaincants par rapport à l'utilisation d'un shield complet gérant le circuit de charge et la sortie des deux tensions.
La v2 du détecteur utilisait un shield basé sur deux accumulateurs 18650 ce qui était surdimensionné: l'autonomie avoisinait les 24 heures. De plus le circuit comportait 5 LED allumées constamment ce qui n'était pas des plus économes (pas de possibilité de les éteindre hormis en les dessoudant). Finalement ce modèle basé sur un accumulateur 16340 est suffisant concernant l'autonomie. Les LED restent allumées uniquement si branché au secteur et il possède un interrupteur.

L'accumulateur

N'importe quel accumulateur de type 16340 à votre convenance fonctionnera. La boutique en ligne NKON est particulièrement bien fournie à des tarifs raisonnables. Je commande chez eux depuis plus de 10 ans. Plus près de chez nous le magasin GO TRONIC est également une valeur sûre.

La LED RGB

L'emploi d'une LED RGB permet de simplifier le circuit (par rapport à l'emploi de 3 ou 4 LED colorées) et de pouvoir faire évoluer les codes couleurs suivant les besoins. Attention à bien sélectionner une LED à anode commune (long lead +) de 5mm de diamètre. J'ai sélectionné ce modèle (Diffused Lens Anode +).

Le Buzzer

Le buzzer permet d'émettre des bips lorsque le seuil de CO2 est trop élevé. Il faut veiller à prendre un buzzer passif de type piézo-électrique. Ce modèle convient. La version v2 du détecteur utilise ce modèle qui peut également convenir (il faudra juste souder des fils dessus et le caler dans le boîtier).

L'encodeur rotatif

L'encodeur rotatif permet de gérer les interactions de l'utilisateur: la rotation du bouton permet de faire défiler un menu ou des valeurs et l'appui permet la sélection. Ce modèle est assez compact, facile d'utilisation et fonctionne en 3,3V. Attention à bien sélectionner le modèle doté d'un pas de vis afin de pouvoir le fixer à l'intérieur du boîtier grâce à l'écrou ! Il est disponible ici à l'unité ou par lot de 10.

Connecteurs et en-tête Dupont

Toutes les connexions se font à l'aide de connecteurs Dupont, cela nécessite de posséder les connecteurs adéquats ainsi que la pince à sertir:

Il est également possible de ne pas utiliser de connexions Dupont et de souder directement tous les composants ensembles. Cela risque néanmoins d'être délicat concernant le détecteur S8 pour le caler dans le boîtier.

Autre

Schéma

Le plus compliqué dans ce type de montage réside dans le choix des broches à répartir entre les différents éléments:

Boîtier

Le boîtier a été créé au besoin avec le logiciel OpenSCAD afin d'être le plus compact possible et aéré afin que le capteur CO2 puisse effectuer ses mesures correctement. Le boîtier est composé d'une base, d'une cale pour l'écran, d'un couvercle et d'un bouton en deux parties (à coller) pour l'encodeur rotatif.

Le fichier zip fourni contient les fichiers STL prêt l'emploi pour l'impression ainsi que le fichier source OpenSCAD et les fichiers de bibliothèques additionnelles.

J'ai effectué l'impression en PLA avec hauteur de couche classique de 0.2mm, remplissage à 50%, avec support pour les inévitables parties en porte à faux mais sans support d'adhérence. Comptez plus d'une douzaine d'heures pour l'impression de toutes les pièces. L'impression en PETG est bien sûr possible.

Montage

Reste à coller les deux éléments du bouton de l'encodeur rotatif: utiliser de la colle cyanoacrylate (attention aux doigts et aux yeux !). Une fois la colle sèche, insérer le bouton sur l'axe de l'encodeur rotatif. Le montage est maintenant terminé et vous pouvez passer à l'étape de la programmation. Pour cela, vous pouvez surélever la carte PCB pour atteindre le port µUSB de l'ESP32 mais avant lisez bien la remarque au début du chapitre Programmation.

Le couvercle s'installe de la même façon que le circuit de charge dans le boîtier: à 45° en calant les 2 plots dans les nids d'abeille à l'arrière (attention au câble i2c) puis en rabaissant l'avant. Il faut légèrement arrondir le couvercle pour pouvoir passer les 2 plots latéraux à l'avant. Pour le démontage il suffit de presser les deux côtés du couvercle pour l'arrondir et déclipser les 2 plots latéraux à l'avant.

Programmation

La programmation s'effectue depuis l'environnement Arduino avec la bibliothèques Espressif pour l'ESP32. Vous aurez également besoin de bibliothèques supplémentaires comme indiqué dans l'en-tête du fichier:

Téléchargement

L'archive ZIP suivante co2-v3-2022-01-19.zip contient tout le nécessaire pour fabriquer son propre détecteur et même l'améliorer:

Mises à jour

v3.3 (23 août 2023)

Fichier source (à renommer en .ino): co2_v3.3.ino.txt

Utilisation du détecteur

L'utilisation reste relativement simple. Pour l'installation du boîtier et les concepts de base on pourra se référer aux sites Projet CO2 (http://projetco2.fr/) et Nous aérons (https://nousaerons.fr/).

Mise en route du détecteur

Pour allumer le boîtier utiliser l'interrupteur coulissant à l'arrière. Au démarrage le boîtier s'initialise:

Affichage

Au bout de quelques secondes l’écran affiche les informations mesurées:

Le capteur CO2 a une certaine inertie et la mesure des variations n’est pas immédiate. Afin d’augmenter l’autonomie le taux de CO2 n’est mesuré que toutes les 8 secondes. À chaque période l'affichage est mis à jour, la LED clignote suivant le taux mesuré et le buzzer émets une «mélodie» si besoin.

Les seuils de taux de CO2 sont réglés comme suit par défaut:

Taux de CO2 Couleur LED Buzzer Description
< 550 verte non Qualité de l’air excellente
Limite acceptable sans masque (par exemple cantine ou restaurant)
550 à 799 bleue non Qualité de l’air correcte (avec masque)
800 à 999 orange oui Qualité de l’air mauvaise : il faut aérer immédiatement
> 1000 rouge oui Qualité très mauvaise : il faut aérer immédiatement en grand et sortir !

Réglages

À tout moment il est possible de désactiver ou réactiver le buzzer en appuyant sur la bouton de l'encodeur rotatif.

Pour accéder au menu de configuration il faut tourner l'encodeur rotatif pendant le clignotement de la LED ou l'affichage de l'écran. Le menu permet:

La rotation dans un sens ou dans l'autre permet de choisir l'option à modifier. Un appui sur le bouton sélectionne l'option. La rotation permet ensuite de choisir une valeur et un appui sur le bouton valide et retourne sur le choix des options.

Les réglages sont enregistrés dans l'EEPROM de l'ESP32 et sont donc préservés lors des cycles d'arrêt et d'allumage.

Calibration

La calibration n’est à faire qu’en cas de constat d’une dérive ou d’une anormalité des mesures. Le processus est simple: le capteur utilise la mesure de l'air extérieur pour se calibrer à la valeur de 400 ppm. Pour cela il est nécessaire de positionner le détecteur à l'extérieur et à l'abri de la pluie environ 20 minutes avant et après la calibration afin de stabiliser le processus.

Le mode Calibration est automatisé: une fois sélectionné, placer le boîtier à l'extérieur et attendre la fin du processus. Une barre de défilement indique l'avancée: environ 20 minutes d'attente, calibration et encore 20 minutes d'attente. Une fois le processus terminé le capteur indiquera CALIB: OK pendant encore une vingtaine de minutes avant de disparaître. Il n'est pas nécessaire d'attendre avant de rentrer le détecteur.

Le mode Calibrat. imm. exécute la calibration immédiatement sans temporisation. C'est à vous de placer le détecteur à l'extérieur le temps requis.