Ajouter des instruments de mesure de la qualité de l'air compensés à l'Internet des objets

Avec la contribution de Rédacteurs nord-américains de DigiKey

En ajoutant des instruments de mesure de la qualité de l'air aux systèmes d'immeubles intelligents, les ingénieurs peuvent mettre en œuvre un système d'alerte rapide en cas d'accumulation de gaz et de produits chimiques dangereux, mais les instruments de mesure de la qualité de l'air commerciaux ne disposent pas des capacités intégrées requises pour convenir à des réseaux d'immeubles intelligents. Toutefois, en se tournant vers les kits de développement faciles à utiliser, les ingénieurs peuvent ajouter la puissance de traitement et la capacité sans fil nécessaires pour combler cette lacune.

Le type d'instrument de mesure de la qualité de l'air le plus souvent utilisé pour déterminer la concentration (en PPM) de CO2 ou de composés organiques volatils (COV) dans l'environnement est basé sur un élément électrochimique à semi-conducteur qui génère une tension de sortie proportionnelle à la concentration de gaz ou de produit chimique mesurée. Cependant, la précision de la mesure est impactée par la température et par l'humidité. Il est rare que des capteurs de température et d'humidité soient intégrés à ce type d'instrument de mesure de la qualité de l'air, bien qu'ils permettraient de fournir des données pour alimenter un algorithme continu de compensation afin d'améliorer la précision des mesures réalisées par ce type d'instrument de mesure de la qualité de l'air.

En outre, la gamme actuelle d'instruments de mesure de la qualité de l'air n'inclut pas la technologie sans fil dont disposent les autres types de capteurs et qui est nécessaire pour créer une connectivité avec les réseaux d'immeubles intelligents.

En raison de ces lacunes, il est plus difficile pour les ingénieurs de concevoir des instruments de mesure de la qualité de l'air pour les réseaux sans fil pour les applications domestiques, commerciales et industrielles.

Toutefois, les défis de conception sont maintenant plus facilement surmontables grâce au récent lancement de kits de développement pour les produits de surveillance de la qualité de l'air qui comprennent des capteurs de température et d'humidité, ainsi qu'une connectivité sans fil. Cet article décrit la manière d'utiliser ces kits de développement pour raccourcir le cycle de conception d'un produit de mesure de la qualité de l'air.

Caractéristiques des capteurs MOS

Il existe plusieurs types de capteurs qui permettent de mesurer la qualité de l'air. Citons par exemple les capteurs électrochimiques (EC), les capteurs infrarouges non dispersifs (NDIR), les détecteurs à photo-ionisation (PID) et les capteurs thermiques.

Mais c'est le type métal-oxyde-semi-conducteur (MOS) qui répond le mieux aux exigences de surveillance pour les applications d'immeubles intelligents. Ce dispositif est compact, relativement bon marché, capable de fonctionner sur batterie (avec une capacité suffisante pour alimenter périodiquement le système de chauffage du capteur MOS) et offre une plage de détection correspondant aux concentrations typiques de CO2 et COV dans les espaces de travail en intérieur (Figure 1).

Graphique des changements de concentration de CO2 et de COV dans une chambre

Figure 1 : Changements de concentration de CO2 et de COV dans une chambre au fil de la journée. (Source de l'image : IDT)

Lors de son fonctionnement, l'élément de détection est chauffé à plusieurs centaines de degrés Celsius (°C). La température précise détermine la sélectivité de l'élément quant à un gaz ou un produit chimique en particulier. La sensibilité dépend de l'épaisseur du matériau.

Les capteurs sont fabriqués avec des éléments de détection à semi-conducteur de type n ou de type p. L'élément de détection absorbe (type p) ou désorbe (type n) le produit chimique cible, et une réaction électrochimique avec le composé cible ajoute ou supprime des électrons au niveau de la bande de conduction du semi-conducteur. La migration des électrons modifie de manière linéaire la résistivité ou la conductivité de l'élément de détection par rapport à une valeur de base connue (Figure 2).

Graphique de la résistivité d'un capteur MOS

Figure 2 : La résistivité d'un capteur MOS change de manière linéaire en réponse au changement de concentration du produit chimique cible. Dans cet exemple, il s'agit d'éthanol. (Source de l'image : IDT)

ams propose un capteur MOS à usage commercial pour les applications de maisons intelligentes. Le CCS811B est un capteur MOS numérique qui intègre un microcontrôleur, un convertisseur analogique-numérique (CAN) et une interface I2C (Figure 3). Ce dispositif traite les mesures brutes du capteur afin de générer des valeurs « COV totaux équivalents » (eCOVT) et « CO2 équivalent » (eCO2). Le capteur est disponible dans un boîtier de 2,7 mm x 4,0 mm x 1,1 mm à 10 sorties.

Schéma du capteur MOS numérique CCS811B d'ams

Figure 3 : Le capteur MOS numérique CCS811B d'ams comprend un microcontrôleur qui permet le traitement embarqué des données brutes du capteur. (Source de l'image : ams)

Chaque capteur MOS possède une résistance de base caractéristique pour une composition de l'air, une température et une humidité données. Elle est utilisée pour calculer la concentration de gaz ou de produit chimique : la différence de résistance par rapport à la valeur de base est proportionnelle à la concentration de gaz ou de produit chimique.

Sur le terrain, la température et l'humidité ambiantes ont un impact sur la résistance de base de l'élément de détection, ce qui affecte sa sensibilité et donc sa précision. Par exemple, une augmentation de la température ambiante entraîne une augmentation de la résistance de base de l'élément de détection (à un taux d'humidité donné), tandis qu'une augmentation du taux d'humidité entraîne une baisse de la résistance de base (à une température donnée).

Les fabricants de capteurs recommandent de coupler un instrument de mesure de la qualité de l'air à des capteurs de température et d'humidité afin qu'un microprocesseur de surveillance puisse exécuter un algorithme pour compenser en permanence les variations de la résistance de base.

Le BME280 de Bosch Sensortec est un dispositif populaire pour ce genre d'application. Le BME280 combine des mesures numériques de l'humidité, de la pression et de la température dans un boîtier LGA de 2,5 mm x 2,5 mm x 0,93 mm. Le capteur est doté d'une interface I2C pour communiquer avec un microprocesseur externe et nécessite une alimentation de 1,71 V à 3,6 V. Lorsque le capteur est en mode veille, la consommation de courant chute à 0,1 μA.

Les capteurs MOS à usage commercial ne disposent pas de la connectivité intégrée nécessaire pour rejoindre un réseau sans fil. Cependant, il existe de nombreuses puces sans fil basse consommation conçues pour communiquer directement avec les capteurs. Parmi ces dispositifs, beaucoup comprennent également des microprocesseurs embarqués qui sont assez puissants pour exécuter les algorithmes nécessaires pour traiter les données brutes du capteur et compenser les variations d'humidité et de température. (Pour en savoir plus sur les technologies sans fil adaptées à cette application, consultez l'article de DigiKey intitulé « Comparaison des technologies sans fil basse consommation ».)

Développer un instrument de mesure de la qualité de l'air basique

Pour concevoir un moniteur de la qualité de l'air connecté sans fil, l'ingénieur doit combiner un capteur MOS, un capteur d'humidité et de température, un émetteur-récepteur sans fil et (dans certains cas) un microprocesseur. Une telle complexité peut rendre l'exercice fastidieux et intimidant.

Toutefois, il existe sur le marché une sélection de kits de développement qui simplifient considérablement le processus initial de conception et de test. Par exemple, la carte Breakout Qwiic Environmental Combo SEN-14348 de SparkFun Electronics pour le développement d'un instrument de mesure de la qualité de l'air combine un moniteur de la qualité de l'air CCS811B à un capteur BME280 pour la compensation de la température et de l'humidité, et comprend deux interfaces I2C physiques, sous forme de connecteurs Qwiic polarisés à 4 broches (Figure 4).

Image de la carte Breakout SEN-14348 de SparkFun

Figure 4 : La carte Breakout SEN-14348 de SparkFun combine un capteur CCS811B à un dispositif BME280 pour la compensation de la température et de l'humidité. (Source d'image : SparkFun)

Même si le SEN-14348 peut servir de base pour la conception d'un instrument de mesure de la qualité de l'air avec compensation de la température et de l'humidité, il ne s'agit pas d'une solution complète. Même si le CCS811B est équipé d'un microprocesseur, le dispositif se limite à la surveillance de mesures périodiques et à la compensation de base. Le microprocesseur n'est pas capable de gérer les applications plus complexes, comme la surveillance des seuils de qualité de l'air ou le calcul de concentrations de gaz ou de produits chimiques à long terme. Pour pouvoir prendre en charge des applications plus avancées, le SEN-14348 doit être connecté à un microprocesseur plus performant.

Pour le développement initial, SparkFun suggère de connecter la carte Breakout SEN-14348 à un ordinateur compatible Arduino, comme son modèle RedBoard. Le RedBoard se connecte à un PC via un câble USB (qui permet également d'alimenter la carte) pour importer du code à partir de l'IDE Arduino. Pour pouvoir utiliser le RedBoard avec la carte Breakout Qwiic, l'ordinateur doit être adapté avec un shield Qwiic DEV-14352. Le shield comprend un connecteur I2C et régule l'alimentation de 5 V du RedBoard pour l'abaisser aux 3,3 V requis pour les capteurs sur la carte Breakout SEN-14348.

Pour commencer, le développeur doit télécharger les bibliothèques Arduino pour les dispositifs CCS811 et BME280 de SparkFun à partir de Github. Les capteurs sont configurés à partir de l'IDE Arduino, avec des informations comme le taux d'échantillonnage, les coefficients de filtre à réponse impulsionnelle finie (FIR) et les modes de suréchantillonnage.

L'extrait de code ci-dessous indique la routine d'initialisation du capteur BME280 avant de pouvoir effectuer des mesures (la routine d'initialisation du CCS811 est identique).

Copier

#include <SparkFunBME280.h>

#include <SparkFunCCS811.h>

#define CCS811_ADDR 0x5B //Default I2C Address

//#define CCS811_ADDR 0x5A //Alternate I2C Address

//Global sensor objects

CCS811 myCCS811(CCS811_ADDR);

BME280 myBME280;

void setup()

{

Serial.begin(9600);

Serial.println();

Serial.println("Apply BME280 data to CCS811 for compensatio

n.");

//This begins the CCS811 sensor and prints error status of .

begin()

CCS811Core::status returnCode = myCCS811.begin();

if (returnCode != CCS811Core::SENSOR_SUCCESS)

{

Serial.println("Problem with CCS811");

printDriverError(returnCode);

}

else {

Serial.println("CCS811 online");

}

//Initialize BME280

//For I2C, enable the following and disable the SPI section

myBME280.settings.commInterface = I2C_MODE;

myBME280.settings.I2CAddress = 0x77;

myBME280.settings.runMode = 3; //Normal mode

myBME280.settings.tStandby = 0;

myBME280.settings.filter = 4;

myBME280.settings.tempOverSample = 5;

myBME280.settings.pressOverSample = 5;

myBME280.settings.humidOverSample = 5;

//Calling .begin() causes the settings to be loaded

delay(10);  //Make sure sensor had enough time to turn on. B

ME280 requires 2ms to start up.

byte id = myBME280.begin(); //Returns ID of 0x60 if successf

ul

if (id != 0x60)

{

Serial.println("Problem with BME280");

}

else {

Serial.println("BME280 online");

}

}

Extrait de code 1 : Routine d'initialisation du capteur BME280 avant de pouvoir effectuer des mesures. (Source du code : SparkFun)

Pour effectuer des mesures à l'aide des capteurs, il faut ajouter une boucle sans valeur (void loop) au code (le « sketch » Arduino) (extrait de code 2).

Copier

void loop() {

if (myCCS811.dataAvailable()) //Check to see if CCS811 has n ew data (it's the slowest sensor)

{

myCCS811.readAlgorithmResults(); //Read latest from CCS81

1 and update tVOC and CO2 variables

//getWeather(); //Get latest humidity/pressure/temp data f

rom BME280

printData(); //Pretty print all the data

}

else if (myCCS811.checkForStatusError()) //Check to see if C

CS811 has thrown an error

{

Serial.println(myCCS811.getErrorRegister()); //Prints what

ever CSS811 error flags are detected

}

delay(2000); //Wait for next reading

}

Extrait de code 2 : Routine pour effectuer des mesures et les imprimer à partir du capteur CCS811. (Source du code : SparkFun)

Les données environnementales (« ENV_DATA ») du BME280 sont transmises au CCS811 pour qu'un facteur de compensation puisse être appliqué à la résistance de base, afin de prendre en compte les effets de la température et de l'humidité.

Les informations sur l'humidité et la température sont communiquées sous forme de nombre entier absolu de 16 bits, avec une résolution de 1/512 % HR et 1/512 degrés. Pour l'humidité, la valeur par défaut est de 50 % (= 0x64, 0x00). Par exemple, une humidité de 48,5 % = 0x61, 0x00. La mesure de la température inclut un décalage, avec 0 mappé à -25°C. La valeur par défaut est de 25°C (= 0x64, 0x00). Par exemple, une température de 23,5°C = 0x61, 0x00.

La transmission des valeurs de température et d'humidité du BME280 au CCS811 permet au microprocesseur d'appliquer l'algorithme de compensation (extrait de code 3).

Copier

void loop() {

//Check to see if data is available

if (myCCS811.dataAvailable())

{

//Calling this function updates the global tVOC and eCO2 v

ariables

myCCS811.readAlgorithmResults();

//printData fetches the values of tVOC and eCO2

printData();

float BMEtempC = myBME280.readTempC();

float BMEhumid = myBME280.readFloatHumidity();

Serial.print("Applying new values (deg C, %): ");

Serial.print(BMEtempC);

Serial.print(",");

Serial.println(BMEhumid);

Serial.println();

//This sends the temperature data to the CCS811

myCCS811.setEnvironmentalData(BMEhumid, BMEtempC);

}

else if (myCCS811.checkForStatusError())

{

Serial.println(myCCS811.getErrorRegister()); //Prints what

ever CSS811 error flags are detected

}

delay(2000); //Wait for next reading

}

Extrait de code 3 : Transmission des données de température et d'humidité pour permettre au capteur CCS811 d'exécuter un algorithme de compensation. (Source du code : SparkFun)

Ajouter un instrument de mesure de la qualité de l'air à l'IoT

La carte Breakout SEN-14348 de SparkFun, l'ordinateur Arduino et le shield permettent de recueillir et de contrôler des données sur la qualité de l'air, mais n'offrent aucune connectivité sans fil. Le kit CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer de Cypress Semiconductor inclut des capacités sans fil pour répondre à cette exigence.

Le kit PSoC 4 BLE Pioneer est un outil de développement conçu pour aider les ingénieurs à développer des applications de capteurs sans fil. Le kit permet aux ingénieurs de coder et de compiler des applications, puis d'adapter le micrologiciel au système sur puce PSoC 4 BLE de Cypress. Le système sur puce comprend un processeur Arm® Cortex®-M0 de 32 bits et 48 MHz, et une radio Bluetooth Low-Energy.

Dans le cas présent, les données compensées de qualité de l'air de la carte Breakout sont transmises via la connexion I2C de la carte Breakout à un connecteur I2C sur la carte à circuit imprimé du kit. En plus de recevoir les données de la ligne SDA de l'interface I2C, le processeur est capable de réinitialiser, d'interrompre et de mettre en veille les capteurs.

Pour programmer et déboguer la conception d'un instrument de mesure de la qualité de l'air à l'aide du kit, de petites étapes de développement sont nécessaires. Cypress propose l'outil d'émulation hôte Windows CySmart (à exécuter sur PC) ainsi qu'un dongle BLE pour le codage et les tests. Le dongle et le Pioneer Kit peuvent tous les deux être connectés simultanément à un PC hôte commun durant le processus de développement (Figure 5).

Image des outils de développement Bluetooth Low-Energy de Cypress (cliquez pour agrandir)

Figure 5 : Cypress fournit des outils de développement Bluetooth Low-Energy et un dongle (configuré en tant que dispositif central Bluetooth Low-Energy) pour aider au développement micrologiciel d'applications avec le kit PSoC 4 BLE Pioneer. (Source de l'image : Cypress Semiconductor)

Le développement avec le processus de conception du kit CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer comprend quatre étapes :

  • Création de la conception sur la page schématique PSoC Creator
  • Écriture du micrologiciel pour initialiser et gérer les événements Bluetooth Low-Energy
  • Programmation du système sur puce (SoC) Bluetooth Low-Energy à l'aide du Pioneer Kit
  • Test de la conception à l'aide de l'outil d'émulation hôte CySmart (ou de l'application mobile)

(Pour en savoir plus sur le développement d'applications BLE, consultez l'article de DigiKey intitulé « Les outils et systèmes sur puce Bluetooth Low-Energy, compatibles avec Bluetooth® 4.1, 4.2 et 5, répondent aux défis de l'IoT ».)

Le micrologiciel de l'application permet au système sur puce BLE de rassembler et de traiter les données des capteurs, puis de transmettre ces informations via une liaison BLE à un smartphone (par exemple) pour les afficher et les analyser.

On peut alors envisager d'envoyer les données du capteur du smartphone à un serveur cloud afin de les enregistrer et peut-être déclencher des notifications IFTTT (If This Then That) basées sur ces données. Par exemple, une mesure du taux de CO2 constamment élevée dans la chambre d'un enfant pourrait déclencher une notification sur le smartphone des parents pour leur conseiller une meilleure ventilation.

La connexion au cloud directement à partir du capteur est un peu plus complexe. Les systèmes sur puce BLE comme le composant de Cypress ne disposent généralement pas d'une couche réseau IPv6 native. La solution consiste à envoyer les données Bluetooth à une « passerelle » à l'aide d'un protocole alternatif (par exemple, le Wi-Fi) pour se connecter au cloud.

Cypress et SparkFun ont une fois de plus collaboré pour rendre cela possible. À l'aide d'un kit CY8CKIT-062-BLE PSoC 6 BLE Pioneer de Cypress et d'un shield d'extension IoT DEV-14531 PSoC Pioneer de SparkFun (équipé d'un module Wi-Fi XBee XB2B-WFWT-001), un ingénieur peut développer un réseau qui recueille les données compensées de la qualité de l'air mesurées par le capteur, les transmet via une liaison BLE du kit CY8CKIT-042-BLE-A PSoC 4 BLE Pioneer au kit CY8CKIT-062-BLE PSoC 6 BLE Pioneer, puis au cloud, via le Wi-Fi (Figure 6). (Pour en savoir plus sur l'utilisation de modules Wi-Fi pour vous connecter au cloud, consultez l'article technique de DigiKey intitulé « Modules 802.11x : utilisation de kits de développement pour simplifier les efforts de conception de solutions sans fil IoT ».

Schéma d'un système sans fil conçu avec les kits de développement de Cypress et de SparkFun

Figure 6 : Ce système sans fil conçu avec les kits de développement de Cypress et de SparkFun utilise les technologies BLE et Wi-Fi pour envoyer les données de l'instrument de mesure de la qualité de l'air vers le cloud. (Source de l'image : DigiKey Electronics)

Conclusion

L'intégration d'instruments de mesure de la qualité de l'air dans un réseau d'immeubles intelligents prend de l'importance en raison de la prise de conscience croissante des effets néfastes sur la santé de l'accumulation de composés organiques volatils et de gaz tels que le CO2 dans les immeubles à ventilation contrôlée.

Pour l'instant, les instruments de mesure de la qualité de l'air commerciaux ne sont pas équipés de puissant microprocesseur intégré ni de la connectivité sans fil typiques des autres capteurs (modulaires). Toutefois, grâce aux outils de conception faciles à utiliser, un ingénieur peut non seulement compenser les effets de la température et de l'humidité sur les données brutes de qualité de l'air, mais également transmettre sans fil ces informations sur un réseau BLE et via un smartphone ou un module Wi-Fi vers le cloud.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey