~~NOTOC~~
======= Modules barométriques (BMP180/GY68, BME280 ...) =======
Capteurs pression, température et parfois humidité utilisé pour des applications météo. Ils fonctionnent avec le protocole I2C.
* [[https://passionelectronique.fr/tutorial-bme280/|Un excellent tuto sur les différentes versions]]
====Caractéristiques====
* Protocole I2C
* Vcc de 1.8 à 3.2V (5 V si régulateur intégré)
* Température de -40 à +85 °C
* Pression atmosphérique de 300 à 1100 hPa
* Hygrométrie de 0 à 100 % (Si présente)
====Connexion====
^ Signal ^ Arduino ^ ESP8266 ^
| VCC | VCC | VCC |
| GND | GND | GND |
| SLC | A5 | D1 |
| SDA | A4 | D2 |
=====BMP180=====
{{ :cap180.png?100|}}
Capteur **barométrique et température**
* Vcc de 1.8 à 3.6 V
* I de 3 à 32 µA selon le mode à 1Hz
* [[https://github.com/brucetsao/Fritzing/blob/master/Barometric%20Pressure%20Sensor%20-%20BMP180%20Breakout%20(GY-68).fzpz|Le composant vs Fritzing]]
* [[https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf|Datasheet]]
* Librairie Adafruit BMP085
=====BMP280=====
{{ :bmp280.jpg?100|}}
Capteur **barométrique et température**. \\
Peut utiliser l'adresse I2C 0x76 (défaut) ou 0x77.
* [[https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp280-ds001.pdf|Datasheet]]
* Librairie Adafruit BMP280
=====BME280=====
{{ :bme280.jpg?100|}}
Capteur **barométrique, température et humidité**. \\
Peut utiliser l'adresse I2C 0x76 (défaut) ou 0x77.
* [[https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf|Datasheet]]
* Librairie Adafruit BME280
\\
====Programmation (BME280)====
/*Fichier : programme-test-bme280.ino
Description : Programme permettant de tester un BME280 branché sur les pins SDA et SCL d'un Arduino (bus I2C)
Auteur : Jérôme TOMSKI (https://passionelectronique.fr/)
Créé le : 30.09.2021
Librairie Adafruit BME280 utilisée : https://github.com/adafruit/Adafruit_BME280_Library (importée depuis le Gestionnaire de bibliothèques Arduino)
*/
#include // Inclusion de la librairie BME280 d'Adafruit
// Constantes du programme
#define adresseI2CduBME280 0x76 // Adresse I2C du BME280 (0x76, dans mon cas, ce qui est souvent la valeur par défaut)
#define pressionAuNiveauDeLaMerEnHpa 1024.90 // https://fr.wikipedia.org/wiki/Pression_atmospherique (1013.25 hPa en moyenne, valeur "par défaut")
#define delaiRafraichissementAffichage 1500 // Délai de rafraîchissement de l'affichage (en millisecondes)
// Instanciation de la librairie BME280
Adafruit_BME280 bme;
// ========================
// Initialisation programme
// ========================
void setup() {
// Initialisation du port série (pour l'envoi d'infos via le moniteur série de l'IDE Arduino)
Serial.begin(115200);
while(!Serial);
Serial.println("Programme de test du BME280");
Serial.println("===========================");
Serial.println();
// Initialisation du BME280
Serial.print(F("Initialisation du BME280, à l'adresse [0x"));
Serial.print(adresseI2CduBME280, HEX);
Serial.println(F("]"));
if(!bme.begin(adresseI2CduBME280)) {
Serial.println(F("--> ECHEC…"));
} else {
Serial.println(F("--> REUSSIE !"));
}
Serial.println();
}
// ======================================
// Boucle principale (boucle perpétuelle)
// ======================================
void loop() {
// Affichage de la TEMPÉRATURE
Serial.print(F("Temperature = "));
Serial.print(bme.readTemperature());
Serial.println(F(" C"));
// Affichage du TAUX D'HUMIDITÉ
Serial.print(F("Humidite = "));
Serial.print(bme.readHumidity());
Serial.println(F(" %"));
// Affichage de la PRESSION ATMOSPHÉRIQUE
Serial.print(F("Pression atmospherique = "));
Serial.print(bme.readPressure() / 100.0F);
Serial.println(F(" hPa"));
// Affichage de l'estimation d'ALTITUDE
Serial.print(F("Altitude estimee = "));
Serial.print(bme.readAltitude(pressionAuNiveauDeLaMerEnHpa));
Serial.println(F(" m"));
// ... et on répète ce cycle à l'infini !
delay(delaiRafraichissementAffichage); // Avec x secondes d'attente, avant chaque rebouclage
Serial.println(); // … et un saut de ligne pour faire joli ;)
}