Capteur BME280

De Les Fabriques du Ponant
Révision datée du 14 février 2021 à 11:03 par Antonydbzh (discussion | contributions) (Attention ! ne pas confondre)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Tuto inspiré de : https://randomnerdtutorials.com/bme280-sensor-arduino-pressure-temperature-humidity/

ne pas hésiter à aller voir ici également.

Attention ! ne pas confondre

ce deux capteurs différents sont souvent confondus y compris par les vendeurs alors soyer vigilants !

Comment distinguer BME280 et BMP280 ?

  • Sur le BME280 le trou de l'évent est sur le coté à gauche, au milieu et il est de forme carré.
  • Sur le BMP280 le trou de l'évent est en bas sur le coté à droite et il est de forme rectangulaire.

BMPvsBME280.png

BME280

celui-ci fait pression, température et humidité.

DatasheetBME280.png

BME280.png

le capteur est carré !

BMP280

celui-la ne fait que pression et température.

DatasheetBMP280.png

BMP280.png

le capteur est rectangle !

les bibliothèques

Installer les bibliothèques suivantes :

  • Adafruit_BME280 library
  • Adafruit_Sensor library

Connecter BME 280 à l'arduino

Attention vérifiez bien le voltage de fonctionnement de votre capteur, il en existe 2 versions. le capteur 3,3V comporte 6 broches, celui à 5V n'en possède que 4.

CapteurBME280-3.3V.png CapteurBME280-5V.png

BME280-Arduino3.3V.png BME280-Arduino.png

le programme

Charger le programme puis ouvrir le moniteur série.

/*
 * Complete Project Details https://randomnerdtutorials.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();
}