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.

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.

Zurück zum Blog