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. (Voir images pour couper liaison SDO à la masse et la relier au 5V)
Cliquer sur les images pour les agrandir
/*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 ;) }