« Item:Capteur de qualité de l'air BME 680 » : différence entre les versions

Julienrat (discussion | contributions)
Aucun résumé des modifications
Julienrat (discussion | contributions)
Aucun résumé des modifications
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 à 10:39


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 :


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 :

#include "bsec.h" // ajout de la bibliothèque Bsec de Bosh
Bsec iaqSensor; // creation de l'objet Iaq

// Entry point for the example
void setup(void)
{
  Serial.begin(115200); // Initialisation de la connexion série
  Wire.begin(); // Démarrage de la connexion I2C avec le capteur

  iaqSensor.begin(BME680_I2C_ADDR_SECONDARY, Wire); // démarrage du capteur
  bsec_virtual_sensor_t sensorList[4] = { // Configuration du capteur
    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

    Serial.print("iAQ accuracy : ");
    Serial.println(iaqSensor.iaqAccuracy); // Indice de calibration (attendre qu'il passe à 3 pour exploiter les mesures environ 2h)
  }
}

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 :
Voici les indices de qualité de l'air intérieur en fonction de la résistance obtenue :

Pages liées

Commentaires

Published