
Der Sensor BME280 misst Temperatur, Luftdruck und Luftfeuchtigkeit.
Anhand des standardmäßigen Luftdrucks auf Meereshöhe von 1013,25 hPa im Verhältnis zum gemessenen Luftdruck berechnet der Sensor die ungefähre Höhe des Standortes.
Die Ausgabe erfolgt auf einem LCD und im Seriellen Monitor.
Messdaten BME280 anzeigen
![]() | ![]() |
Verschiedene BME280-Sensoren
![]() | ![]() |
| DFRobot BME280 | GY-BME280 |
Beim GY-BME280 entscheidet der Anschluss SDO über die HEX-Adresse:
Wird der Pin mit 5V/3,3V verbunden, ändert sich die HEX-Adresse auf 0x77, die Standard-Adresse ist 0x76.
Die HEX-Adresse kannst du mit diesem ⇒Programm herausfinden.
Benötigte Bauteile
- BME280
- 4‑zeiliges LCD mit I²C-Schnittstelle
- Leitungsdrähte
Der Schaltplan
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliotheken installieren


Bibliotheken und Variablen
Binde die benötigten Bibliotheken ein und definiere die Variablen:
1 2 3 4 5 6 7 8 9 10 | #include “Adafruit_BME280.h” #include “LCDIC2.h” // 4‑zeiliges LCD LCDIC2 lcd(0x27, 20, 4); #define MeeresHoehe (1013.25) // Name des BME280 Adafruit_BME280 bme; |
Der setup-Teil
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | void setup() { Serial.begin(9600); // auf Serielle Verbindung warten while (!Serial); delay(1000); // BME280 starten, bei Misserfolg Meldung anzeigen if (!bme.begin(0x76)) { Serial.println(“BME280 nicht verbunden”); Serial.println(“Verkabelung und/oder HEX-Adresse prüfen!”); Serial.println(“Start mit möglichen HEX-Adressen:”); Serial.println(“bme.begin(0x76);”); Serial.println(“bme.begin(0x77);”); Serial.println(“Programm wird beendet!”); while(1); } else Serial.println(“BME280 erfolgreich gestartet!”); // LCD starten lcd.begin(); // Cursor “verstecken” lcd.setCursor(false); } |
Der loop-Teil
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | void loop() { /* Daten erfassen die Daten liegen als Zahlen im Format float vor für die weitere Verarbeitung werden sie direkt in eine String umgewandelt */ String Temperatur = String(bme.readTemperature()); String Luftfeuchtigkeit = String(bme.readHumidity()); String ungefaehreHoehe = String(bme.readAltitude(MeeresHoehe)); String Luftdruck = String(bme.readPressure() / 100.0); // float verwendet den . als Dezimaltrennzeichen // . mit replace durch , ersetzen Temperatur.replace(“.”, “,”); Luftdruck.replace(“.”, “,”); Luftfeuchtigkeit.replace(“.”, “,”); ungefaehreHoehe.replace(“.”, “,”); // Daten im Serieller Monitor anzeigen Serial.print(“Temperatur: ”); Serial.println(Temperatur + ” °C”); Serial.print(“Luftdruck: ”); Serial.println(Luftdruck + ” hPa”); Serial.print(“Luftfeuchtigkeit: ”); Serial.println(Luftfeuchtigkeit + ” %”); Serial.print(“ungefähre Höhe: ”); Serial.println(ungefaehreHoehe + ” m”); Serial.println(“————————–”); // Anzeige LCD \337C = ° lcd.setCursor(0, 0); lcd.print(Temperatur + ” \337C”); lcd.setCursor(0, 1); lcd.print(Luftdruck + ” hPa”); lcd.setCursor(0, 2); lcd.print(Luftfeuchtigkeit + ” %”); lcd.setCursor(0, 3); lcd.print(ungefaehreHoehe + ” m”); // Wartezeit bis zur nächsten Messung delay(5000); } |
Verwandte Anleitungen:
- DHT — Messdaten und Zeit auf TFT anzeigen
- DHT11/DHT22 — Durchschnittstemperatur berechnen und auf einem OLED-Display anzeigen
- DHT11/DHT22 — Wetterdaten aufzeichnen
- DHT11/DHT22 — Wetterdaten mit Bluetooth-Modul übermitteln
- DHT11/DHT22 — Wetterstation LAN
- DHT11/DHT22 — Wetterstation Anzeige auf einem LCD
- DHT11/DHT22 — Wetterstation WiFi
- ESP — DHT Messdaten auf Waveshare 1,54 Zoll E‑Ink anzeigen
- ESP32-Wroom – BMP280/DHT Zeit und Messdaten auf TFT anzeigen
- Klimaanlage mit 12V-Lüfter und Transistor
Letzte Aktualisierung:










