BMP280 am ESP32

Heute möchten wir Ihnen das BMP-Sensor-Modul vorstellen.

Das Modul ist mit einem Umgebungssensor von Bosch bestückt. Dieser vereint die 2 verschiedenen Sensortypen: Drucksensor und Temperatursensor. Dies alles in einem kleinen 8-Pin-Gehäuse.

Dieser befindet sich auf einer kleinen Platine mit 4 Pins: VIN, GND, SCL und SDA.

Das macht es sehr einfach den Sensor über I²C mit einem Mikrocontroller zu verbinden.

Wir verwenden in diesem Beispiel eine ESP32-Dev-Kit

Dabei verbinden wir folgende Pins:

ESP32-Dev-Kit

BMP280 Modul

3,3v

VIN

GND

GND

SCL

SCL

SDA

SDA

 

Wir nutzen für unser Projekt 2 Libraries von Adafruit: „Adafruit Unified Sensors“ und „Adafruit BMP280 Library“

 

Falls diese noch nicht installiert sind kann man diese am einfachsten über den Bibliotheksverwalter der Arduino IDE einbinden.

 

Dann über „Datei“ → „Beispiele“ → „Adafruit BMP Library“ → „bmp280test“ den Testsketch öffnen.

Nachdem der Sketch kompiliert und hochgeladen ist, öffnen wir den seriellen Monitor durch klicken auf das Symbol rechts oben (Oder mit der Tastenkombination Strg+Shift+M):

 

Code:

 

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

#define BMP_SDA 21
#define BMP_SCL 22

Adafruit_BMP280 bmp; // I2C

void setup() {
  Serial.begin(9600);
  Serial.println(F("BMP280 test"));
  
  if (!bmp.begin()) {  
    Serial.println("Could not find a valid BMP280 !");
    while (1);
  }
}
  
void loop() {
    Serial.print("T = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" °C");
    
    Serial.print("P = ");
    Serial.print(bmp.readPressure()/100);
    Serial.println(" hPa ");

    Serial.print("H = ");
    Serial.print(bmp.readAltitude(1013.25)); 
    Serial.println(" m");
    
    Serial.println();
    delay(2000);
}

bis zum nächsten Beitrag :)

 

3 Kommentare

User

User

In einem anderen Forum habe ich folgende Aussage dazu gefunden wie Steffen schon bemerkt hat: "Connecting SDO to GND results in slave address 1110110 (0×76), connecting it to VCC results in slave address 1110111 (0×77), which is the same as BMP180’s I²C address. "

Steffen

Steffen

Das BMP280 Board (blau) hat Konnektoren! Um die Sensoren per Adafruit_BMP280 Bibliothek per I2C ansprechen zu können, muss zusätzlich der SDO Pin auf Vcc gelegt werden. Sonst stimmen die I2C Adressen nicht.

Sebastian

Sebastian

Moin,
Ist es richtig das der BMP auch Luftfeuchtigkeit misst? Ich dachte das macht nur der BME?

Mit freundlichen Grüßen Sebastian

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert