Ce guide montre comment utiliser le module de capteur BME280 avec Arduino pour lire la pression, la température, l’humidité et estimer l’altitude. Nous vous montrerons comment câbler le capteur, installer les bibliothèques requises et rédiger un croquis simple pour afficher les lectures du capteur.

Vous aimerez peut-être aussi lire d’autres guides du BME280 :
Présentation du module de capteur BME280
le Capteur BME280 module lit la pression barométrique, la température et l’humidité. Étant donné que la pression change avec l’altitude, vous pouvez également estimer l’altitude. Il existe plusieurs versions de ce module capteur. Le capteur BME280 utilise le protocole de communication I2C ou SPI pour échanger des données avec un microcontrôleur.
Nous utilisons le module illustré dans la figure ci-dessous.

Ce capteur communique en utilisant le protocole de communication I2C, le câblage est donc très simple. Vous connectez le capteur BME280 aux broches Arduino Uno I2C comme indiqué dans le tableau ci-dessous :
| BME280 | Arduino |
| Vin | 5V |
| GND | GND |
| SCL | A5 |
| SDA | A4 |
Il existe d’autres versions de ce capteur qui peuvent utiliser les protocoles de communication SPI ou I2C, comme le module illustré dans la figure suivante :

Si vous utilisez l’un de ces capteurs, pour utiliser le protocole de communication I2C, utilisez les broches suivantes :
| BME280 | Arduino |
| SCK (Broche SCL) | A5 |
| SDI (broche SDA) | A4 |
Si vous utilisez le protocole de communication SPI, vous devez utiliser les broches suivantes :
| BME280 | Arduino |
| SCK (horloge SPI) | Broche 13 |
| SDO (MISO) | Broche 12 |
| SDI (MOSI) | Broche 11 |
| CS (sélection de puce) | Broche 10 |
Pièces requises
Pour terminer ce tutoriel, vous avez besoin des pièces suivantes :
Vous pouvez utiliser les liens précédents ou aller directement sur MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !
Schématique
Câblez le capteur BME280 à votre carte Arduino comme indiqué dans le schéma suivant.

Installation de la bibliothèque BME280
Pour obtenir des lectures du module de capteur BME280, vous devez utiliser le Bibliothèque Adafruit_BME280. Suivez les étapes suivantes pour installer la bibliothèque dans votre IDE Arduino :
Ouvrez votre IDE Arduino et accédez à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques. Le gestionnaire de bibliothèque devrait s’ouvrir.
Rechercher « adafruit bme280 » dans la zone de recherche et installez la bibliothèque.

Installation de la bibliothèque Adafruit_Sensor
Pour utiliser la bibliothèque BME280, vous devez également installer le Bibliothèque Adafruit_Sensor. Suivez les étapes suivantes pour installer la bibliothèque dans votre IDE Arduino :
Aller à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques et tapez « Capteur unifié Adafruit » dans le champ de recherche. Faites défiler jusqu’en bas pour trouver la bibliothèque et l’installer.

Après avoir installé les bibliothèques, redémarrez votre IDE Arduino.
Lecture de la pression, de la température et de l’humidité
Pour lire la pression, la température et l’humidité, nous utiliserons un exemple de croquis de la bibliothèque.

Après avoir installé la bibliothèque BME280 et la bibliothèque Adafruit_Sensor, ouvrez l’IDE Arduino et accédez à Déposer > Exemples > Bibliothèque Adafruit BME280 > test bme280.
/*
* Complete Project Details https://www.raspberryme.com
*/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
}
void loop() {
printValues();
delay(delayTime);
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
// Convert temperature to Fahrenheit
/*Serial.print("Temperature = ");
Serial.print(1.8 * bme.readTemperature() + 32);
Serial.println(" *F");*/
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
Comment fonctionne le code
Continuez à lire cette section pour savoir comment fonctionne le code, ou passez à la section « Démonstration ».
Bibliothèques
Le code commence par inclure les bibliothèques nécessaires : le fil bibliothèque pour utiliser I2C, et la Adafruit_Sensor et Adafruit_BME280 bibliothèques pour s’interfacer avec le capteur BME280.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
Communication SPI
Comme nous allons utiliser la communication I2C, les lignes suivantes qui définissent les broches SPI sont commentées :
/*#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10*/
Pression au niveau de la mer
Une variable appelée SEALEVELPRESSURE_HPA est créé.
#define SEALEVELPRESSURE_HPA (1013.25)
Cette variable enregistre la pression au niveau de la mer en hectopascal (équivalent au milibar). Cette variable permet d’estimer l’altitude pour une pression donnée en la comparant à la pression au niveau de la mer. Cet exemple utilise la valeur par défaut, mais pour des résultats plus précis, remplacez la valeur par la pression actuelle au niveau de la mer à votre emplacement.
I2C
Cet exemple utilise le protocole de communication I2C par défaut. Comme vous pouvez le voir, il vous suffit de créer un Adafruit_BME280 objet appelé bme.
Adafruit_BME280 bme; // I2C
Pour utiliser SPI, vous devez commenter cette ligne précédente et décommenter l’une des lignes suivantes.
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
mettre en place()
Dans le mettre en place(), démarrez une communication série :
Serial.begin(9600);
Et le capteur est initialisé :
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Noter: lors du test du capteur, si vous ne pouvez obtenir aucune lecture du capteur, vous devrez peut-être trouver l’adresse I2C de votre capteur BME280. Avec le BME280 câblé à votre Arduino, exécutez ce croquis de scanner I2C pour vérifier l’adresse de votre capteur. Ensuite, transmettez l’adresse au commencer() méthode.
Valeurs d’impression
Dans le boucler(), la printValues() La fonction lit les valeurs du BME280 et imprime les résultats dans le moniteur série.
void loop() {
printValues();
delay(delayTime);
}
La lecture de la température, de l’humidité, de la pression et de l’altitude estimée est aussi simple que d’utiliser les méthodes suivantes sur le bme objet:
- bme.readTemperature() – lit la température en degrés Celsius ;
- bme.readHumidity() – lit l’humidité absolue;
- bme.readPressure() – lit la pression en hPa (hectoPascal = millibar) ;
- bme.readAltitude(SEALEVELPRESSURE_HPA) – estime l’altitude en mètres en fonction de la pression au niveau de la mer.
Manifestation

Téléchargez le code sur votre carte Arduino.

Ouvrez le moniteur série à un débit en bauds de 9600.

Vous devriez voir les lectures affichées sur le moniteur série.

Conclusion
Le BME280 offre un moyen simple et peu coûteux d’obtenir des lectures de pression, de température et d’humidité. Le capteur communique via le protocole de communication I2C, ce qui signifie que le câblage est très simple, il vous suffit de connecter le capteur aux broches Arduino I2C.
L’écriture du code pour obtenir les lectures des capteurs est également très simple grâce à la bibliothèque BME280_Adafruit. Il vous suffit d’utiliser le lireTempérature(), readHumidity() et readPressure() méthodes. Vous pouvez également estimer l’altitude à l’aide du lireAltitude() méthode.
Nous avons des guides pour d’autres capteurs et modules avec l’Arduino que vous pourriez trouver utiles :
Si vous souhaitez en savoir plus sur Arduino, consultez nos ressources :
Merci d’avoir lu.
-
BME-280 Lot de 2 capteurs barométriques pour température, humidité APKLVSR et pression atmosphérique, module IIC I2C 5 V, compatible avec Arduino et Ras-pberry Pi
-
Hailege BME280 Capteur de pression atmosphérique Capteur de température d’humidité Breakout Haute précision pour Arduino

