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
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
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
Moin,
Ist es richtig das der BMP auch Luftfeuchtigkeit misst? Ich dachte das macht nur der BME?
Mit freundlichen Grüßen Sebastian