
Der Sensor BMP280 kann die Temperatur messen und den Luftdruck bestimmen. Er wird über ➨I2C angesteuert. Auf einem LCD sollen Temperatur und Luftdruck angezeigt werden.
So sieht es aus:
Schließe das LCD an:


➨LCD
Normalerweise wäre eine komplexe Verkabelung zum Betrieb eines LCDs nötig. Der ➨I2C-Bus regelt über einen eigenen Mikroprozessor die Kommunikation der Datenleitungen untereinander. Es werden deshalb nur vier Anschlüsse benötigt.

Die Helligkeit kann mit einem Potentiometer auf der Rückseite des LCDs eingestellt werden.
Benötigte Bauteile:
- BMP280
- LCD 1602
- Leitungsdrähte


Der BMP280 wird auch in anderen Bauformen mit unterschiedlicher Pinbelegung angeboten.


Bei einem BMP280 mit sechs Pins müssen SDO und CSB ebenfalls an VCC (5V) angeschlossen werden.
Quelle: 🔗https://sensorkit.joy-it.net/de/sensors/ky-052 (abgerufen am 01.03.23)
Die Schaltung weist eine Besonderheit auf:
Weil I²C (Inter Integrated Circuit) ein serielles Bussystem ist, können die Datenleitungen auf die Leiterplatte geführt werden. Die Anschlüsse für 5V (VCC) und GND befinden sich auf der anderen Seite der Steckplatine.

Benötigte Bibliotheken:
![]() | ![]() |
Binde die benötigen Bibliotheken und definiere die Bauteile.
# include "Adafruit_BMP280.h"
# include "LiquidCrystal_I2C.h"
// LCD definieren
// 0x27 -> Hex-Adresse, 20 Zeichen, 4 Zeilen
LiquidCrystal_I2C lcd(0x27, 20, 4);
Adafruit_BMP280 bmp;
Im setup-Teil werden das LCD und der BMP280 gestartet:
void setup()
{
// BMP280 starten
bmp.begin();
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
// LCD starten
lcd.init();
lcd.backlight();
}
Im loop-Teil wird die Temperatur und der Luftdruck gemessen. Beachte die Kommentare.
void loop()
{
// readTemperature() Temperatur messen und Messergebnis formatieren
String Temperatur = String(bmp.readTemperature());
// . durch , ersetzen
Temperatur.replace(".", ",");
/*
readPressure() Luftdruck messen und Messergebnis formatieren
readPressure() liest in Pascal, ausgabe in hPa (Hekto-Pascal)
Ergebnis durch 100 teilen
*/
String Luftdruck = String(bmp.readPressure() / 100);
Luftdruck.replace(".", ",");
// Ausgabe Serieller Monitor
Serial.println("Temperatur: " + Temperatur + "°C");
Serial.println("Luftdruck: " + Luftdruck + " hPa");
// Ausgabe LCD
lcd.setCursor(0, 0);
lcd.print("Temperatur: ");
lcd.setCursor(0, 1);
// \337C -> °
lcd.print(Temperatur + "\337C");
lcd.setCursor(0, 2);
lcd.print("Luftdruck: ");
lcd.setCursor(0, 3);
lcd.print(Luftdruck + " hPa");
delay(3000);
}
Vergleich der Messdaten DHT22 und BMP280

Das dazugehörige Programm:
# include "SimpleDHT.h"
# include "Adafruit_BMP280.h"
int SENSOR_DHT22 = 8;
SimpleDHT22 dht22(SENSOR_DHT22);
Adafruit_BMP280 bmp;
void setup()
{
Serial.begin(9600);
// auf serielle Verbindung warten
while (!Serial) {;}
bmp.begin();
}
void loop()
{
float TemperaturDHT22;
float LuftfeuchtigkeitDHT22;
String AnzeigeTemperaturBMP280 = String(bmp.readTemperature());
AnzeigeTemperaturBMP280.replace(".", ",");
dht22.read2(&TemperaturDHT22, &LuftfeuchtigkeitDHT22, NULL);
String AnzeigeTemperaturDHT22 = String(TemperaturDHT22);
AnzeigeTemperaturDHT22.replace(".", ",");
Serial.println("DHT22: " + AnzeigeTemperaturDHT22);
Serial.println("BMP280: " + AnzeigeTemperaturBMP280);
Serial.println("------------------------------");
delay(3000);
}
Verwandte Aufgaben:
- 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
- ESP32-Wroom/Arduino ESP32/Wemos D1 Mini: Wetterdaten von Openweather auf einem TFT anzeigen
- TMP36 - Temperatur messen
- Wetterstation mit CO2-Messung
- Wetterstation mit Nano ESP32, DHT11/DHT22 und OLED
- Wetterstation mit UNO R4 WiFi und LCD
- DHT11/DHT22 - Wetterstation LAN Daten speichern
Letzte Aktualisierung: