Gaz Carbonique : Détecteur d'air vicié

Pour évaluer la concentration de CO2

Co2 meter vue 1

          Encore un banal détecteur de CO2 ? Naaaan ! Celui-ci est beaucoup mieux : déjà parce que c'est moi qui l'ai fait, et en plus de ne pas consommer (ou si peu) d'énergie, il ne pollue ni visuellement, ni par des bips et sons, sauf si c'est votre choix . Depuis la crise sanitaire, il est devenu courant de mesurer la teneur en gaz carbonique des pièces de réunion et de penser à les aérer ou ventiler avant que les premiers maux de têtes n'apparaissent, même si la qualité de l'air n'a rien à voir avec la présence du virus, une saturation en CO2 peut-être révélateur d'un air vicié. Ce détecteur présente également l'avantage d'allumer son écran seulement si quelqu'un s'en approche . Une led de couleur indique en permanence la 'respirabilité' en passant du bleu au rouge, via le vert, le jaune et  l'orange, suivant la mesure du capteur : donc même de loin, nous serons renseignés ! Un autre gros avantage, qui vous a sauté à l'oeil, c'est que ça se branche directement sur n'importe quel prise secteur, haute ou basse . Ce gaz étant plus lourd que l'air, une mesure basse peut être bien utile; je pense aux caves, et autre endroits de fermentation .

Co2 meter veil

Comment ça marche, ce truc là ?

Un bon schéma est plus parlant qu'un grand baratin. On va commencer par faire le tour du propriétaire, pour savoir ce qui se passe là-dedans, puis après nous nous intéresserons aux détails .

Co2 meter sch

          En bas sur la gauche, c'est l'alimentation. Un module à découpage qui donne un 5 volts relativement propre pour les applications numériques, sous une intensité de 1 ampère, avec en entrée une large plage de tension qui va de 90 à 265 vac, et qui a l'avantage d'avoir un rendement proche de l'unité, donc sans consommation transformée inutilement en chaleur. La tension de 5 volts est unique pour le montage et alimente tous les éléments raccordés . En plus, ce petit circuit a l'avantage de ne pas être cher et d'être fiable.

Pwr220 5vdc

 

 

 

 

 

 

 

          Le détecteur de dioxyde de carbone est de type par absorbtion infrarouge non dispersable (NDIR), compensé en température et non influencé par une hygrométrie normale, car autoséchant , il offre une bonne sélectivité et une dépendance anaérobique. Plusieurs protocoles de sortie sont disponibles: un sur UART (RX/TX), un en grandeur analogique, et celui que j'ai utilisé: la modulation de largeur d'impulsion (PWM). Avec une plage de mesure de 400 à 2000 ppm, le MH-Z19C voit sa sortie passer à l'état logique haut entre 202 ms pour 400 ppm et 1002 ms pour 2000 ppm ... Ce qui donne une période de 1,004 seconde ! Ce qui n'est pas trop problématique à traduire en grandeur proportionnelle avec la formule: C(ppm) = 2000 x (thigh-2ms) / (thigh+tlow-4ms) ou C est la concentration, thigh le temps à l'état haut, tlow le temps à l'état bas . A vos oscilloscopes, les curieux... 

Co2 meter sensor

 

 

 

 

 

 

 

 

 

 

          L' ALU qui va faire les calculs et la gestion de tous ces périphériques est confié comme souvent à un Arduino Nano : il assure la réception des datas PWM du sensor (entrée D7), les converties en valeurs numériques, assure la gestion I2C de l'afficheur sur une adresse et celle du détecteur de proximité laser sur une autre, avec le même bus. Celui-ci utilise les deux pinuches dédiées à cette fonction, à savoir l'horloge de synchronisation SCL (A5) et le transfert des données SDA (A4). Une sortie 'One Wire', la pin D8, s'occupe du pilotage de la led intelligente WS2812 pour qu'elle se colorise en fonction des seuils définis dans le programme . Un condensateur de 0,1µF (C1) bloque les transitoires sur la ligne d'alimentation, et les deux résistances de 4K7 (R1-R2) qui rappellent au niveau haut le bus I2C . L'alimentation étant unique, du 5 volts pour tout le monde, on ne sert pas les régulateurs intégrés au circuit Nano pour autre chose que lui-même.

O2 cardiometernano

 

 

 

 

 

 

          Le module d'affichage 128 x 64 pixels, est de type Oled de 0,96" bicolore (en réalité c'est du monochrome mais le verre de protection est tinté ce qui donne le meilleur effet, bien que la couleur de programmation soit blanche ). Il a l'avantage d'offrir une interface I2C avec deux adresses commutables par déplacement de résistance au cas où il y aurait conflit. Facile à mettre en oeuvre avec les bibliothèques existantes.  Et en plus il n'est pas cher !

O2 cardiometerscrn

 

 

 

 

 

 

 

 

 

         

 

        En haut à gauche, sur le schéma, on y trouve le détecteur laser de télémétrie TOF10120: c'est le capteur qui va décider d'allumer l'écran si une personne s'approche à moins d'un mètre . Ca permet d'éviter la pollution lumineuse et de prolonger la durée de vis de l'écran .  Ce capteur dispose de deux interfaces en protocole UART RX/TX (9600, 8 , 1, N)  et celui que j'ai utilisé: en bus I2C. Il mesure le déphasage entre l'émission des diodes SPAD et le retour de phase de modulation ... ce qui offre un résultat grand luxe pour une application comme celle-ci.

Inter laser tof

 

 

 

 

 

 

 

La réalisation matérielle :

          Un circuit imprimé simple face supporte et connecte tous les éléments entre eux... Les pistes sont à 0,8 mm de largeur, en 35µm d'épaisseur. Un plan de masse GND en treillis de 0,4mm couvre la majeure partie du circuit et le perçage à 1 mm pour tout ce qui est traversant. Ce PCB est réalisé suivant le process décrit dans mes pages.  Les composants CMS sont montés "côté cuivre", c'est normal; mais il y a également le connecteur de l'afficheur (coudé à 90°), et la led RGB sur cette face . Le Nano est incerré sur des cosses tulipes basses, avec des barrettes sécables afin d'être démontable, remplaçable et ne pas avoir une saillance qui gênerait la mise en boîte. J'ai également retiré les leds 'PWR' sur l'Arduino ainsi que sur l'alimentation, pour ne pas avoir de pollution visuelle dans le cadre d'un fonctionnement normal. Un peu de soin est demandé lors du soudage du capteur de CO2, en effet ce module ne supporte pas trop la chaleur et les chocs mécaniques, surtout à ce prix là, il faut le préserver .

Co2 meter cabl

 

Le logiciel qui fait tourner la machine :

          L'abondance de commentaires éclairci déjà pas mal ce qui a été fait ! J'ai utilisé des bibliothèques existantes pour monter cet édifice, en les arrangeant à ma sauce, afin de faire causer et jouer tout ce petit monde ensemble . Merci le libre partage; on est exempt de se re-palucher et de ré-écrire tout ça ... 

  • Les déclarations géographiques se situent au début, avec les caractéristiques de composants utilisés, ainsi que les variables de calcul ou d'état .
  • Le setup pour démarrer tout ça, l'écran de présentation et le message d'attente pendant la stabilisation sommaire du capteur ...
  • La boucle: qui nous envoie à un sous programme de lecture et calcul de la saturation. Puis l'affichage des valeurs et de qualité si le détecteur laser a remarqué un obstacle (un humain) dans une distance inférieure à 900 mm. Plus bas on envoi les données vers la led RGB intelligente pour affichage par modification des dosages des trois couleurs de base en fonction de ce que l'on veut obtenir . 
  • Les différents traitements des valeurs :  readCO2PWM() - Lecture de la durée de l'impulsion à l'état logique haut et calcul de la valeur ppm relative.
  • uint32_Wheel : mélange et dosage des couleurs et préparation des différents cas, pour la fonction switch case 0 to 5,  pour les envoyer à la led .
  • string calc_IAQ (int ppm_pwm) : Attribution d'un message  (chaine de caractères) pour décrire la qualité de l'air .
  • void SensorRead : demande au détecteur laser de mesurer la proximité d'un obstacle (si quelqu'un se tient devant ) .
  • int ReadDistance() : lecture du déphasage lors du retour de modulation laser et calcul de la distance ...

Voici donc à quoi se résume ce programme ... Il y a un certain désordre lors de la première boucle, mais comme la stabilisation du capteur met plusieurs minutes à arriver, ce n'est pas trop gênant .

 

Et avec un beau boîtier cristal ...

          Pour habiller ce détecteur de CO2, j'ai utilisé un boîtier Hammond 1591BTLC en polycarbonate IP54, sur lequel j'ai fixé un support de prise mâle, réalisé à l'imprimante 3D, pour qu'il se branche directement dans les prises de la pièce où règne l'activité. Un plan à l'équerre, ajouré aux bonnes dimensions, reçoit et enserre la plug récupérée sur un vieux cordon, et la maintien fermement;  j'y ai ajouté deux points de colle néoprène. Trois trous de 12mm de diamètre, dans la partie basse du corp, au niveau du capteur, permettent la circulation de l'air à contrôler. Un autre est aménagé dans le couvercle, au niveau du télémètre laser, pour détecter les personnes qui s'approchent . Si le capteur est en léger retrait, il faut être assez généreux sur l'oblong afin de ne pas fausser la mesure et avoir des allumages de l'écran en boucle... j'y ai eu droit !

          J'aime bien cette enclosure transparente qui permet de voir les boyaux et la mécanique du montage . J'ai également ajouté sur la led, un petit capot blanc translucide, fabriqué à l'imprimante 3D également, pour adoucir et éviter que la lumière de la led ne tire les yeux. Il est collé sur le circuit et diffuse une lumière plus soft, avec moins de pixellisation . Les fichiers de réalisation des plastiques sont également dans le zip ci-dessous .

Co2 meter plug 1

Et si vous voulez reproduire ça: les fichiers de réalisation

Co2 meterCo2 meter (1.26 Mo)

 

L'autre version avec buzzer : si vous aimez quand ça fait du bruit ...

          Dans les fichiers du zip, il existe une deuxième version avec un buzzer piezzo . Si l'air est vicié et que la led est rouge, le programme fait sonner un avertisseur 5" toutes les 10" pour alerter qu'il est grand temps d'aérer la pièce . J'ai créé une sortie digitale (D2) sur l'Arduino, qui va sur un transistor BC547  (T1), via sa résistance de base R3 (1K), exciter un buzzer. On peut choisir une autre version avec un haut-parleur et utiliser l'instruction "tone()" dans le programme. Sur ma version, il suffit de retirer les // , en début de ligne, dans le "case 0": et la fonction est activée !

 

Et pour terminer:

          Un petit montage bien utile suite à la prise de conscience de saturation en gaz carbonique sournoise et à la nécessité d'aérer les locaux, où parfois 30 élèves respirent pendant des heures, l'air d'un bocal hermétique de 100 m3 ... La performance du cerveau doit s'en trouver relativement altérée... Le Covid par dessus tout, nous a montré que la contagion était relative à la concentration de personnes en vase clos ! Et pour reprendre Claude Vanony, évitons de respirer de l'air qui a déjà été pété quatre fois .

Commentaires

  • Eric Robuchon
    • 1. Eric Robuchon Le 14/11/2022
    Bonjour, je viens de voir votre très belle et très intéressante réalisation d'un vicieux traqueur d'air vicié, donc déjà bravo, je suis très intéressé car je suis quasiment toute la journée dans une même salle à voir passer des élèves, et un tel appareil pourrait être utile. Je vais télécharger les fichiers, mais, au cas où, êtes-vous éventuellement vendeur de détecteurs montés prêt à l'emploi ? Et si oui, à quel prix ? J'ai une deuxième question : J'organise environ tous les deux ans un projet ballon avec les élèves (collège) et je cherche un montage avec capteur de qualité d'air, compte tenu que nous sommes très limité en masse dans notre nacelle, pourriez-vous me conseiller un montage de ce type afin que les élèves puissent visualiser la différence entre un capteur resté au sol et un capteur emmener à près de 40 000m ? Notre contrainte de masse est très forte car nous avons déjà de nombreux matériels dans la nacelle. La durée de vol est d'environ 3 heures, une pile de 9V devrait suffire. Vos conseils concernant un capteur de qualité d'air me seraient précieux, car je ne sais pas vers lequel me tourner, Oxygène, CO, CO2, autres gaz ? Merci pour votre réponse. Bien cordialement. Eric

Ajouter un commentaire