~~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 ;) }