Guide du capteur BME280 avec Arduino (pression, température, humidité)

Guide du capteur BME280 avec Arduino (pression, température, humidité)

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.

Guide du capteur BME280 avec pression, température et humidité Arduino

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.

Le module de capteur BME280 lit la pression, la température et l'humidité

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 :

BME280 avec SPI et I2C

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 !

1641322085 982 Guide du capteur BME280 avec Arduino pression temperature humidite

Schématique

Câblez le capteur BME280 à votre carte Arduino comme indiqué dans le schéma suivant.

Schéma de câblage Arduino BME280

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 BME280 dans Arduino IDE

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.

Installation de la bibliothèque de pilotes Adafruit Unified Sensor

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.

Arduino BME280 Guide Lecture Croquis de la température, de l'humidité et de la pression

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

Afficher le code brut

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

Arduino BME280 Lire le croquis de la température, de l'humidité et de la pression

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

Télécharger Arduino Sketch pour le capteur BME280

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

Télécharger Arduino Sketch pour le capteur BME280

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

Arduino Sketch pour moniteur série de démonstration du capteur BME280

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.

  • ARCELI 5 pièces BME280 Module numérique de capteur barométrique 5V, Module de capteur de température et d'humidité Pression Température Humidité Module Board IIC I2C pour Arduino Raspberry Pi
    Taille compacte : avec sa petite taille et son design léger, le module de détection BME280-5V est parfait pour une utilisation dans des appareils mobiles compacts tels que les smartphones, les tablettes, les montres intelligentes et les wearables. Compatibilité polyvalente : le module est compatible avec les interfaces I2C et SPI, ce qui en fait une option flexible pour l'intégration dans une grande variété de projets. Module de capteur haute performance : Le module de capteurs de température, d'humidité et de pression atmosphérique BME280-5V a été conçu à l'aide des technologies les plus récentes afin de fournir des mesures de haute précision pour une surveillance précise des conditions environnementales. Large plage de fonctionnement : ce module de capteur peut être utilisé dans différentes conditions, notamment des températures de -40°C à +85°C, des plages d'humidité de 0 à 100 % et des pressions atmosphériques de 300 à 1100 hPa. Haute précision : le module se caractérise par une grande précision dans la mesure de la température, de l'humidité et de la pression atmosphérique, avec de faibles erreurs pour des valeurs de mesure fiables. Il dispose également d'une haute résolution pour des mesures précises.
  • BME280 Capteur, 5V de Précision Haute Pression Barométrique Température Humidité Sensor Module pour Arduino et Raspberry Pi
    Souder à la carte de circuit imprimé avec un capteur de précision. Le capteur numérique peut non seulement mesurer la pression et la température, mais peut également mesurer l'humidité. Le BME280 sensor utilise l'interface I2C et SPI (prise en charge de SPI 3 fils, 4 fils). La hauteur du produit peut être calculée par pression. Le produit est présenté avec un petit corps, une installation facile et d'excellentes performances.
  • Diymore GY-BME280 Module de capteur de Barométrique, de Température et d'Humidité Haute précision pour Arduino Pi DIY I2 C SPI 5 V(1 pièce)
    Le bme280 est une excellente nouvelle puce qui a été initialement conçu pour la nouvelle génération de smartphones. Avec une connexion I2 C vous avez accès à des données assez de temps pour effectuer les prévisions de certains assez bon pour votre local. bme280, la précision du capteur de, est soudé sur le PCB. Non seulement la pression et la température, ce capteur peut mesurer l'humidité. Il utilise à la fois I2 C et SPI (prend en charge 3-, interface SPI à 4 fils)