VOC: Eviter la chambre à gaz

Détecter le niveau des polluants qui nous asphyxient sournoisement

Air analyzer vu 1

Qu'est-ce que sont les VOC (Composants Volatils Organiques ) :

          Les VOC sont une vaste catégorie de composés organiques en suspension dans l’air, qui contiennent du carbone et de l’hydrogène, s’évaporent et se dispersent facilement à température ambiante. Les VOC sont émis par une large gamme de matériaux de construction, de peintures, d’ameublement et de produits de consommation courante. Vous savez quand un VOC est autour de vous, simplement par sa forte odeur. Les VOC sont très nocifs car ils s’évaporent à température ambiante et ils sont émis par une variété de sources que nous ignorons. Selon les niveaux d’exposition, ils peuvent causer des maux de tête à court terme et une irritation des yeux, de la gorge et du nez, tandis que des expositions à long terme peuvent causer de graves lésions rénales et le cancer. Pour notre curiosité un coup d'oeil sur un site fort intéressant : https://www.pranaair.com/fr/what-is-voc/

          Je propose donc de réaliser un sniffeur de VOC, pour une dizaine d'euros, qui nous donne la teneur totale de particules par billion  (ppb)  en suspension dans l'air respiré, et comme la sonde, décrite plus bas le permet aussi, également la teneur en gaz carbonique (CO2 ) en particules par million (ppm) ... L'augmentation de la concentration des VOC et du CO2 change, passant du bleu (bon air ) au rouge (aération immédiate), la couleur du texte, en se déclinant par le vert et le jaune au fur et a mesure de la saturation. Pour des raisons d'économie de batterie et de pollution visuelle, l'écran ne reste pas allumé en permanence, mais chaque minute pendant 5" . Un bouton permet également de le 'réveiller' pour consultation sans attendre le passage du cycle. Si une concentration excessive est détectée, l'écran reste figé en rouge sur la matière concernée , jusqu' à un redémarrage manuel du boîtier .

 

Qu'y a t-il dans la boîte ?

La Sonde SGP30:

Air analyzer sgp

           Le capteur dispose d'une interface I2C. Il fournit des signaux de sortie entièrement calibrés, avec une précision typique de 15 %. Le SGP combine plusieurs éléments de détection à oxyde métallique sur une seule puce, pour fournir des informations plus détaillées sur la qualité de l'air. Ce module donne une valeur de COVT (composés organiques volatils totaux) et d'équivalent CO2, avec une stabilité à long terme exceptionnelle et une faible consommation d'énergie. C'est un choix parfait pour la détection de la qualité de l’air intérieur asservi  à Arduino ou de tout autre microcontrôleur.
          Le  SGP30 est un capteur de gaz numérique multi-pixel qui peut facilement s'intégrer aux purificateurs d'air ou à une ventilation mécanique. De technologie CMOSens®, il intègre un système  complet sur une seule puce comprenant une microplaque chauffante à température contrôlée, en élaborant deux signaux prétraités. Il donne également accès à ses valeurs brutes de mesure d'éthanol et d'hydrogène. Le SGP30 offre une grande stabilité avec une faible dérive à long terme. Grâce à son algorithme de compensation, les lectures restent précises au fil du temps. En usage extérieur, il est nécessaire d'adjoindre un capteur d'humidité pour la compensation.
Caractéristiques et spécifications
• Capteur Sensiron SGP30 TVOC et eCO2
• Détection de COVT de 0 à 60 000 ppb (parties par milliard)
• Détection de CO2 de 400 à 60 000 ppm (parties par million)
• Taux d'échantillonnage de 1 Hz
• Interface I2C (adresse 0x58)
• Compatible 3,3 V à 5 V

L'écran TFT 1,8'

Ecrantft spi 1 8

           Le module d'affichage est un écran couleur bon marché de type LCD TFT, de 1.8 pouce, avec une résolution de 128x160 pixels. Il intègre une interface série SPI quatre fils, ainsi qu'un driver ST7735R, ce qui va nous faciliter beaucoup sa mise en oeuvre et son asservissement au microcontrôleur, car les bibliothèques existent pour de nombreux modèles. Les pins de connexion s'organisent ainsi: RESET, CS , A0  (registre de contrôle IO sélectionné) ,SDA  (transmission de données),  SCL (synchronisation IO bus SPI ),  BL (rétro-éclairage à led sous  3.3V) ... Les autres sont, soit non connectées, soit relatives au lecteur de carte SD incorporé ( donc inutilisées ici ). Il supporte une alimentation de de 2,8 à 5 volts ... Sous 5 volts, il est nécessaire de limiter le courant du rétro éclairage par une résistance de 100 Ohms.

Le Chargeur de batterie :

Chargeurli ion3v7          Un chargeur avec fiche micro USB (ref.:TP4056) va permettre la recharge ou le fonctionnement sur une source extérieure. Les deux leds, respectivement rouge et verte, nous renseignent si l'accu est en charge ou complètement chargé. La couleur des leds est visible par le trou de la fiche USB. Le temps de charge va dépendre de la capacité de la batterie et de son avancement dans la décharge ... 

Caractèristiques du module:
Tension d'entrée: 5V
Tension de coupure de charge: 4.2V ± 1%
Courant de charge maximum: 1000mA
Tension de protection contre la décharge excessive de la batterie: 2.5V
Courant de protection contre les surintensités de batterie: 3A

Le Microcontrôleur:

Atmega328p          L'ATMEGA328P-PU est un microcontrôleur de chez ATMEL (maintenant Microchip) de 28 broches, 32K de mémoire et qui peut être cadencé jusqu'à 20MHz. Il est souvent utilisé sur l'Arduino UNO et c'est pour cette raison que je l'ai choisi; en effet l'IDE Arduino permet un développement aisé et la sortie compilée au format hex . Il n'est pas cher et un programmateur, genre Dataman, permet de buriner ses mémoires avec le fichier compilé. Donc pourquoi utiliser un module UNO complet, alors que l'on a pas besoin de tout cet accastillage, le volume s'en trouve ainsi bien réduit .
 

La réalisation physique :

L'Ensemble des fichiers :

          Dans le zip ci-joint, sont rangés tous les fichiers qui m'ont servi pour réaliser l'Ananlyseur d'air, sous 3 répertoires : Electronique, Programme et Pièces plastiques .

Air analyzerAir analyzer (616.85 Ko)

Le Schéma :

Air analyzer sch

         En commençant par l'alimentation, en bas à droite, un module de charge régulé (TP4056) nous fournis les 3,7 volts qui peuvent venir d'une prise USB ou de la batterie connectée aux bornes J1-1 et J1-2 ... Ce petit circuit régulateur présente l'avantage de gérer la protection de l'accus en charge/décharge . Un interrupteur ferme le circuit pour mettre en service le montage. 

         Le microcontrôleur qui s'occupe de tout est un ATMega328 P, qui est cadencé par un quartz extérieur à 16 MHz (Q1) et tiré par deux condensateurs d'environ 18pF (C1-C2). Une résistance de 15K (R3) assure le maintient du "reset" (PC5) au niveau logique haut pour ne pas bloquer le process . Sur les entrées/sorties, deux sont utilisées en tout ou rien : la (PC3), bien qu'elle puisse être analogique, on la digitalise avec un 'Pull-Up' déclaré dans le programme pour analyser l'état du bouton. Ce poussoir permet de réveiller l'afficheur 5", pour voir les résultats de la dernière mesure, car comme dit plus haut, pour limiter la pollution visuelle et économiser la batterie, je réduis sensiblement le rétro-éclairage dont sa sortie est sur le port PD5; c'est une broche utilisable en PWM (Modulation de Largeur d'Impulsion ) qui va passer la valeur 7 / 255 au repos et 255/255 pour un éclairage total. Une résistance de 56 Ohms (R1), limite le courant dans les leds de back light  et la charge sur le port de commande . 

         Deux bus 'série' sont émulés sur ce micro: un, en mode I2C, pour le dialogue avec le capteur SGP30 pour l'envoi de request cyclique (adresse 0x58) et un retour de datas (SDA) pour l'interprétation de la mesure, cadencé et synchronisé par la SCL (sérial clock) . L'autre émulation est en mode SPI pour causer à l'afficheur: pas de bi-directionalité, on lui dit qu'il est solicité grâce à une validation (CS) , si c'est une instruction ou un caractère avec la pin A0 et l'envoi des datas MOSI-SDA, synchronisées par SCK. Pas d'affolement pour faire tout ça, des bibliothèques toutes faites s'en chargent à merveille. Merci l'Open Source, on ne refait pas le monde tout les jours. 

Le Circuit Imprimé:

Air analyzer pcb 1

          Le circuit imprimé est réalisé avec les moyens habituels décrit sur mon site  Du simple face, avec un seul strap, sur lequel les composants sensibles sont montés sur support tulipe ou connecteur afin de pouvoir les extraire pour la programmation (microcontrôleur) ou permettre un accès à ceux qui sont soudés dessous l'écran TFT . Du simple, facile et pas cher, pour permettre la fabrication avec les logiciels limités sans que l'amateur n'ait a payer des licences abusives pour des réalisations ocasionnelles (Grrr... Autodesk à tué Eagle cadsoft ).

Le Logiciel:

          Développé avec l'IDE Arduino pour sa simplicité d'exploitation, le programme est ensuite compilé pour sortir un fichier hex, accepté par tous programmateurs d'Eprom digne de ce nom ... Pour ma part, j'utilise un Dataman 40 Pro qui n'a aucune difficulté à graver les ATMéga328. Il faut juste bien paramétrer les flags du type de l'horloge, des fusibles de configuration, de la validation SPI...

          Le programme est comme d'habitude, dans le fichier zip ci-dessous. Il commence par les déclarations des bibliothèques dont la library du SGP30 élaborée par SpaekFun

#include "SparkFun_SGP30_Arduino_Library.h" // Bibliothèque du détecteur

          La cartographie: le raccordement du bus SPI aux pattes du circuit      

#define TFT_PIN_CS   6  // Pin Chip select CS   
#define TFT_PIN_DC   9  // Pin  A0
#define TFT_PIN_RST  8  // Reset-Pin

          Le Setup et l'écriture de l'écran d'accueil    

  //Ecriture dde la page d'accueil 
  tft.fillScreen(ST7735_BLACK); // effacement afficheur
tft.setTextSize(1);// Réglage de la taille des caracteres
  tft.setTextColor(ST7735_GREEN);// Reglage couleur de text
    tft.setCursor(20,4);// Position du texte
      tft.print("https://amazing-");// Ecriture du texte première ligne
    tft.setCursor(20,15);// Position du nouveau texte seconde ligne
  tft.print("vacuum-tubes.com");// Ecriture du texte seconde ligne 
  delay(2000);
}

          La boucle, avec les intervalles de mesure, les mesures et leurs affichages sous différentes couleurs suivant la teneur, l'allumage de l'écran cycliquement ou si appui sur le bouton et saut au sous-programme de blocage, si une des valeurs dépasse le seuil autorisé .
// Blocage de l'afficheur allumé sur les valeurs dangereuses
if (( mySensor.CO2 > 1000) or (mySensor.TVOC > 1000)) {
  analogWrite(led, 255); // Retro-eclarage
   lightOn();
  }

          Le sous-programme de verrouillage et de mémorisation tant que le reset (Power On Reset) n'est pas effectué

void lightOn() {  // Demande d'aeration jusqu'a POR
  analogWrite(led, 255); // Retro-eclarage allumé
  delay (5000);
   lightOn();  // et on boucle jusqu'à coupure du courant  
  }

 

La Mise en Boîte :

Air analyzer box          Le boîtier, composé de 3 pièces, un fond, un cache écran, et la partie contenante, est réalisé à l'imprimante 3D . Les parallélépipèdes deviennent lassant, j'ai donc donné une forme autre pour envelopper le circuit, la batterie, le bouton poussoir, sachant que le marche/arrêt est sur la face arrière. Une grille est crée au niveau de la sonde pour laisser l'air circuler; un trou de bonne dimension, vers la prise USB pour la recharge, assure également la convection d'air vers le détecteur.  L'écran s'ajuste dans deux épaulements pour le blocage de l'ensemble du circuit en translation et la réalisation de deux bossages pour recevoir des vis parker assez longues pour assembler les deux parties, avec une mousse de faible densité pour plaquer le montage dans son emplacement . Un cache misère vient entourer l'écran pour limiter la zone visible à l'affichage .

Air analyzer up

 

          Courage, c'est bientôt fini ! Donc encore un petit outil qui va nous dire si une aération de la pièce s'impose, tant par la saturation en gaz carbonique, ou si l'air est encore respirable après le vernissage du parquet, ou encore l'abus de spray déodorant dans la salle d'eau ... Je me suis servi des recommandations de l'ANSES pour déterminer les seuils d'acceptabilité de la qualité de l'air . J'ai eu quelques surprises en utilisant un spray dépoussiérant en local fermé ... Pour conclure, l'air de la campagne, même s'il sent un peu le fumier, est moins toxique que les mèches déodorantes, plongeantes dans ce beau liquide vert fluo, qui agresse le nez par une suspension de microgouttes dans l'air inspiré !

 

 

 

 

Ajouter un commentaire