Capteurs pression, température et parfois humidité utilisé pour des applications météo. Ils fonctionnent avec le protocole I2C.
| Signal | Arduino | ESP8266 |
|---|---|---|
| VCC | VCC | VCC |
| GND | GND | GND |
| SLC | A5 | D1 |
| SDA | A4 | D2 |
Capteur barométrique et température
Capteur barométrique et température.
Peut utiliser l'adresse I2C 0x76 (défaut) ou 0x77.
Capteur barométrique, température et humidité.
Peut utiliser l'adresse I2C 0x76 (défaut) ou 0x77.
/*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 <Adafruit_BME280.h> // 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 ;) }