BMP280 Luftdruck-Sensor mit Arduino: Wetterstation erweitern & Höhe messen
Temperatur und Luftfeuchtigkeit hast du in deiner Wetterstation vielleicht schon im Griff – aber echte Wetterprofis schauen auf den Luftdruck. Mit dem BMP280 ergänzt du deine Station um Luftdruck- und Höhenmessung und kannst sogar grobe Wettertrends vorhersagen.
Warum Luftdruck messen?
Der BMP280 ist ein digitaler Drucksensor, der Luftdruck mit hoher Genauigkeit erfasst. Daraus lassen sich zwei nützliche Werte ableiten: die Höhe über dem Meeresspiegel (je höher, desto geringer der Luftdruck) und der Wettertrend – fällt der Druck schnell, deutet das auf näherndes Schlechtwetter hin, steigt er, wird es meist beständiger.
In Kombination mit einem DHT22 (Temperatur & Feuchtigkeit) ergibt der BMP280 eine vollwertige kleine Wetterstation – eine ideale Ergänzung zu unserem ESP32-Wetterstation-Tutorial und dem Smart-Home-Dashboard.
Was du brauchst
| Bauteil | Menge | ca. Preis | Link |
|---|---|---|---|
| BMP280 Sensor Modul | 1x | ab 0,99 € | Zum Produkt |
| ESP32 Board | 1x | ab 5,99 € | Zum Produkt |
| AM2302 (DHT22) Sensor (optional) | 1x | ab 2,99 € | Zum Produkt |
Schaltungsaufbau
| BMP280 Pin | ESP32 Pin | Funktion |
|---|---|---|
| VCC | 3.3V | Spannungsversorgung |
| GND | GND | Masse |
| SCL | GPIO 22 | I2C-Takt |
| SDA | GPIO 21 | I2C-Daten |
Auf einem UNO R3 nutzt du stattdessen A5 (SCL) und A4 (SDA). Achte darauf, den BMP280 mit 3,3V statt 5V zu versorgen, sofern dein Modul keinen eigenen Spannungsregler besitzt.
Der Code
Installiere über den Bibliotheksverwalter „Adafruit BMP280".
#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp;
const float SEEHOEHE_HPA = 1013.25; // Referenzdruck auf Meereshoehe
void setup() {
Serial.begin(115200);
if (!bmp.begin(0x76)) {
Serial.println("BMP280 nicht gefunden! I2C-Adresse pruefen (0x76 oder 0x77).");
while (1) delay(10);
}
}
void loop() {
float temperatur = bmp.readTemperature();
float luftdruck = bmp.readPressure() / 100.0F; // Pa in hPa
float hoehe = bmp.readAltitude(SEEHOEHE_HPA);
Serial.print("Temperatur: "); Serial.print(temperatur); Serial.println(" C");
Serial.print("Luftdruck: "); Serial.print(luftdruck); Serial.println(" hPa");
Serial.print("Hoehe: "); Serial.print(hoehe); Serial.println(" m");
delay(2000);
}
So funktioniert's
Die Bibliothek berechnet die Höhe aus dem gemessenen Druck relativ zu einem Referenzwert auf Meereshöhe (Standard: 1013,25 hPa). Willst du eine präzise Absoluthöhe, kalibriere SEEHOEHE_HPA mit dem aktuellen, lokalen Luftdruck deiner Wetterdienst-App.
Praxisprojekte
🌤️ Wettertrend-Anzeige: Speichere den Luftdruck alle 30 Minuten und vergleiche die letzten Werte – fällt der Druck um mehr als 2 hPa in 3 Stunden, zeige eine „Schlechtwetter"-Warnung auf deinem OLED-Display an.
🥾 Höhenmesser für Drohnen & Wanderungen: Nutze die Höhenberechnung für einen einfachen digitalen Altimeter.
🏠 Smart-Home-Ergänzung: Ergänze dein bestehendes Umwelt-Monitoring-Dashboard um eine dritte Messgröße neben Temperatur und Luftfeuchtigkeit.
Häufige Fehler
⚠️ Sensor nicht gefunden: Der BMP280 hat je nach Modul die I2C-Adresse 0x76 oder 0x77. Probiere beide, falls bmp.begin() fehlschlägt.
⚠️ Ungenaue Höhenwerte: Ohne aktuelle Referenz auf Meereshöhe (SEEHOEHE_HPA) kann die berechnete Höhe um mehrere Meter abweichen – für echte Präzision täglich kalibrieren.
⚠️ Schwankende Messwerte: Der BMP280 reagiert empfindlich auf Luftzug und Wärmequellen in der Nähe (z. B. direkt neben dem Mikrocontroller). Etwas Abstand zum Board verbessert die Messgenauigkeit.
🔧 Deine komplette Wetterstation
Kombiniere Temperatur-, Feuchtigkeits- und Luftdrucksensoren zu einer vollwertigen Wetterstation.
- Sensoren & Module – BMP280, DHT22 und mehr
- Anzeige- & Ausgabekomponenten – OLED-Displays für deine Messwerte
Baue die komplette Station mit unserem ESP32-Wetterstation-Tutorial.
Fazit
Mit dem BMP280 wird aus einer einfachen Temperatur-/Feuchtemessung eine echte kleine Wetterstation. Luftdruck ist einer der aussagekräftigsten Werte für kurzfristige Wettertrends – und dank I2C in wenigen Minuten integriert.