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.

Caractéristiques

Connexion

Signal Arduino ESP8266
VCC VCC VCC
GND GND GND
SLC A5 D1
SDA A4 D2

BMP180

Capteur barométrique et température

BMP280

Capteur barométrique et température.
Peut utiliser l'adresse I2C 0x76 (défaut) ou 0x77.

BME280

Capteur barométrique, température et humidité.
Peut utiliser l'adresse I2C 0x76 (défaut) ou 0x77.


Programmation (BME280)

Test_bme280.ino
/*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 ;)
 
}