Item:Capteur de qualité de l'air BME 680 : Différence entre versions

Ligne 60 : Ligne 60 :
  
 
==Bibliothèque : ==
 
==Bibliothèque : ==
{{#annotatedImageLight:Fichier:Item-Capteur de qualite de lair BME 680 800-455-max.png|0=800px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/f/fe/Item-Capteur_de_qualite_de_lair_BME_680_800-455-max.png|href=./Fichier:Item-Capteur de qualite de lair BME 680 800-455-max.png|resource=./Fichier:Item-Capteur de qualite de lair BME 680 800-455-max.png|caption=|size=800px}}
+
{{#annotatedImageLight:Fichier:Item-Capteur de qualite de lair BME 680 Capture decran du 2022-01-21 11-22-22.png|0=800px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=Item-Capteur de qualite de lair BME 680 800-455-max.png|align=center|src=https://www.wikidebrouillard.org/images/2/22/Item-Capteur_de_qualite_de_lair_BME_680_Capture_decran_du_2022-01-21_11-22-22.png|href=./Fichier:Item-Capteur de qualite de lair BME 680 Capture decran du 2022-01-21 11-22-22.png|resource=./Fichier:Item-Capteur de qualite de lair BME 680 Capture decran du 2022-01-21 11-22-22.png|caption=|size=800px}}
  
  
  
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque BME680 d'Adafruit (https://github.com/adafruit/Adafruit_BME680), présente dans le gestionnaire de bibliothèques Arduino. Cette bibliothèque est dépendante de l'installation d'autres bibliothèques Adafruit, notamment la bibliothèque Adafruit Unified Sensor (https://github.com/adafruit/Adafruit_Sensor) qui vous seront demandées lors de son installation (cf. capture ci-dessus). Plus d'infos pour [[Importer des bibliothèques dans l'interface Arduino]].
+
Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque BSEC du constructeur BOSH [https://www.bosch-sensortec.com/software-tools/software/bsec/ (https://www.bosch-sensortec.com/software-tools/software/bsec/]), présente dans le gestionnaire de bibliothèques Arduino.Cette bibliothèque permet d'obtenir des mesures plus fiables grâce à son algorythme de calculs intégrés, elle permet aussi de mesurer la qualité de l'air intérieur, contrairement aux autres bibliothèques. Plus d'infos pour [[Importer des bibliothèques dans l'interface Arduino]].
  
 
<br />
 
<br />
Ligne 80 : Ligne 80 :
 
| rowspan="2" |Avant le setup
 
| rowspan="2" |Avant le setup
 
|Importation des bibliothèques
 
|Importation des bibliothèques
|#include <Adafruit_Sensor.h>
+
|#include "bsec.h"
 
 
<nowiki>#</nowiki>include "Adafruit_BME680.h"
 
 
|-
 
|-
 
|Création de l’objet
 
|Création de l’objet
|Adafruit_BME680 ''objet;''
+
|Bsec ''objet;''
 
|-
 
|-
 
|Dans le setup
 
|Dans le setup
 
|Démarrage de l’objet
 
|Démarrage de l’objet
|''objet''.begin();
+
|Wire.begin();
 +
''objet''.begin(BME680_I2C_ADDR_SECONDARY, Wire);
 +
 
 +
//Configuration du capteur
 +
 
 +
bsec_virtual_sensor_t sensorList[4] = {   
 +
 
 +
BSEC_OUTPUT_RAW_PRESSURE,
 +
 
 +
BSEC_OUTPUT_IAQ,
 +
 
 +
BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,
 +
 
 +
BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,
 +
 
 +
};
 +
 
 +
''objet''.updateSubscription(sensorList, 4, BSEC_SAMPLE_RATE_LP);
 +
<br />
 
|-
 
|-
 
|Dans le loop
 
|Dans le loop
 
|Utilisation
 
|Utilisation
|''objet''.performReading();
+
|if(''objet''.run()){ // Dès que la mesure est effectuée, on affiche les valeurs
 
''objet''.temperature;
 
''objet''.temperature;
  
Ligne 99 : Ligne 115 :
  
 
''objet''.pressure;
 
''objet''.pressure;
 +
 +
''objet''.iaq; //indice de qualité de l'ai 0 -500
 +
 +
''objet''.accuracy;  // fiabilité des mesures (0 -> calibration 3-> mesures fiables)
 +
 +
}
 
|}<br />
 
|}<br />
 
==Exemple : ==
 
==Exemple : ==
 
<syntaxhighlight lang="arduino" line="1" start="1">
 
<syntaxhighlight lang="arduino" line="1" start="1">
#include <Wire.h>
+
#include "bsec.h" // ajout de la bibliothèque Bsec de Bosh
#include <Adafruit_Sensor.h>
+
Bsec iaqSensor; // creation de l'objet Iaq
#include "Adafruit_BME680.h"
 
  
// Création de l'objet
+
// Entry point for the example
Adafruit_BME680 bme; // I2C
+
void setup(void)
 +
{
 +
  Serial.begin(115200); // Initialisation de la connexion série
 +
  Wire.begin(); // Démarrage de la connexion I2C avec le capteur
  
void setup() {
+
  iaqSensor.begin(BME680_I2C_ADDR_SECONDARY, Wire); // démarrage du capteur
   Serial.begin(9600); // démarrage de la connexion série
+
  bsec_virtual_sensor_t sensorList[4] = { // Configuration du capteur
  bme.begin(); // démarrage du module
+
    BSEC_OUTPUT_RAW_PRESSURE,
  }
+
    BSEC_OUTPUT_IAQ,
 +
    BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,
 +
    BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,
 +
  };
 +
 
 +
  iaqSensor.updateSubscription(sensorList, 4, BSEC_SAMPLE_RATE_LP); // configuration du capteur
 +
}
 +
 
 +
// Function that is looped forever
 +
void loop(void)
 +
{
 +
   if (iaqSensor.run()) { // Dès que l'on reçoit des mesures
 +
    Serial.print("temperature : ");
 +
    Serial.println(iaqSensor.temperature); // Affichage de la température
 +
 
 +
    Serial.print("humidite : ");
 +
    Serial.println(iaqSensor.humidity); // Affichage de l'humidité
 +
 
 +
    Serial.print("pression : ");
 +
    Serial.println(iaqSensor.pressure); // Affichage de la pression en Pascal
  
 +
    Serial.print("IAQ : ");
 +
    Serial.println(iaqSensor.iaq); // Indice de la qualité de l'air
  
void loop() {
+
    Serial.print("iAQ accuracy : ");
  bme.performReading(); // lecture des données
+
    Serial.println(iaqSensor.iaqAccuracy); // Indice de calibration (attendre qu'il passe à 3 pour exploiter les mesures environ 2h)
  Serial.print("Temperature °C = ");
+
   }
  Serial.println(bme.temperature);
 
  Serial.print("Humidite % = ");
 
  Serial.println(bme.humidity);
 
   Serial.print("Pression bar = ");
 
  Serial.println(bme.pressure);
 
  delay(2000); // Pause pour permettre la mesure
 
 
}
 
}
 
</syntaxhighlight><br />Note sur la mesure de COV (Composés Organiques Volatiles) :
 
</syntaxhighlight><br />Note sur la mesure de COV (Composés Organiques Volatiles) :

Version du 21 janvier 2022 à 12:39


Item-Capteur de qualit de l air BME 680 BME680-capteur-de-temp-rature-humidit-capteur-de-pression-d-air-pression-hauteur-d-veloppement-conseil.jpg q50.jpg

Capteur de qualité de l'air BME 680

Capteur BME 680 de la qualité de l'air : température, humidité, pression, gaz

15EUR (€)


Description longue

Principe :

Ce module permet la mesure de 4 paramètres différents liés à la qualité de l'air :

  • la température ;
  • l'humidité ;
  • la pression atmosphérique ;
  • la concentration en composés organiques volatils (COV) via un capteur MOx, qui contient une couche sensible semi-conductrice (oxydes métalliques) dont la conductivité est dépendante de la composition de l’air qui l’entoure. Le signal obtenu correspond donc à une résistance variable en fonction de l’évolution de la conductivité liée à la teneur en gaz COV.

Caractéristiques :

Généralités Alimentation 3 à 5 Vcc
Interface I2C et SPI sur connecteur au pas de 2,54 mm
Dimensions 30 x 14 x 10 mm
Poids 10 g
Température Plage de mesure - 40 à 85 °C
Humidité Plage de mesure 0 à 100 % RH
Précision relative ± 3 % RH
Temps de réponse 8 sec
Pression atmosphérique Plage de mesure 300 à 1100 hPa
Précision absolue ± 1 hPa
Qualité de l'air (IAQ) Plage de mesure 0 à 500 (valeur de résistance)
Temps de réponse 1 sec

Documentation complète du capteur : https://cdn-shop.adafruit.com/product-files/3660/BME680.pdf

Bibliothèque :

Item-Capteur de qualite de lair BME 680 800-455-max.png


Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque BSEC du constructeur BOSH (https://www.bosch-sensortec.com/software-tools/software/bsec/), présente dans le gestionnaire de bibliothèques Arduino.Cette bibliothèque permet d'obtenir des mesures plus fiables grâce à son algorythme de calculs intégrés, elle permet aussi de mesurer la qualité de l'air intérieur, contrairement aux autres bibliothèques. Plus d'infos pour Importer des bibliothèques dans l'interface Arduino.


Câblage :

Item-Capteur de qualite de lair BME 680 BME680 bb.jpg

Code minimal :

Capteur BME 680
Avant le setup Importation des bibliothèques #include "bsec.h"
Création de l’objet Bsec objet;
Dans le setup Démarrage de l’objet Wire.begin();

objet.begin(BME680_I2C_ADDR_SECONDARY, Wire);

//Configuration du capteur

bsec_virtual_sensor_t sensorList[4] = {

BSEC_OUTPUT_RAW_PRESSURE,

BSEC_OUTPUT_IAQ,

BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,

BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,

};

objet.updateSubscription(sensorList, 4, BSEC_SAMPLE_RATE_LP);

Dans le loop Utilisation if(objet.run()){ // Dès que la mesure est effectuée, on affiche les valeurs

objet.temperature;

objet.humidity;

objet.pressure;

objet.iaq; //indice de qualité de l'ai 0 -500

objet.accuracy; // fiabilité des mesures (0 -> calibration 3-> mesures fiables)

}


Exemple :

 1 #include "bsec.h" // ajout de la bibliothèque Bsec de Bosh
 2 Bsec iaqSensor; // creation de l'objet Iaq
 3 
 4 // Entry point for the example
 5 void setup(void)
 6 {
 7   Serial.begin(115200); // Initialisation de la connexion série
 8   Wire.begin(); // Démarrage de la connexion I2C avec le capteur
 9 
10   iaqSensor.begin(BME680_I2C_ADDR_SECONDARY, Wire); // démarrage du capteur
11   bsec_virtual_sensor_t sensorList[4] = { // Configuration du capteur
12     BSEC_OUTPUT_RAW_PRESSURE,
13     BSEC_OUTPUT_IAQ,
14     BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,
15     BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,
16   };
17 
18   iaqSensor.updateSubscription(sensorList, 4, BSEC_SAMPLE_RATE_LP); // configuration du capteur
19 }
20 
21 // Function that is looped forever
22 void loop(void)
23 {
24   if (iaqSensor.run()) { // Dès que l'on reçoit des mesures
25     Serial.print("temperature : ");
26     Serial.println(iaqSensor.temperature); // Affichage de la température
27 
28     Serial.print("humidite : ");
29     Serial.println(iaqSensor.humidity); // Affichage de l'humidité
30 
31     Serial.print("pression : ");
32     Serial.println(iaqSensor.pressure); // Affichage de la pression en Pascal
33 
34     Serial.print("IAQ : ");
35     Serial.println(iaqSensor.iaq); // Indice de la qualité de l'air
36 
37     Serial.print("iAQ accuracy : ");
38     Serial.println(iaqSensor.iaqAccuracy); // Indice de calibration (attendre qu'il passe à 3 pour exploiter les mesures environ 2h)
39   }
40 }

Note sur la mesure de COV (Composés Organiques Volatiles) :


Ce capteur est étalonné en laboratoire, il est capable de donner une indication de la qualité de l'air intérieur en fonction de la mesure de la résistance de celui-ci.

Les gas ciblés par ce capteur sont les suivants :
Item-Capteur de qualite de lair BME 680 Capture decran du 2022-01-20 14-22-06.png
Voici les indices de qualité de l'air intérieur en fonction de la résistance obtenue :
Item-Capteur de qualite de lair BME 680 Capture decran du 2022-01-20 14-16-04.png

Pages liées

Commentaires

Published