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 Luftdrucks 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 |
Benötigte Bauteile
- BME280
- LCD 1602
- 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:
#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
void setup()
{
Serial.begin(9600);
// auf Serielle Verbindung warten
while (!Serial);
delay(1000);
// BME280 starten, bei Misserfolg Meldung anzeigen
if (!bme.begin()) Serial.println("BME280 nicht verbunden");
// LCD starten
lcd.begin();
// Cursor "verstecken"
lcd.setCursor(false);
}
Der loop-Teil
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:
- 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
- Messdaten mit BME680 und ESP32 anzeigen
- BMP280 - Temperatur und Luftdruck messen
- Temperaturanzeige auf einem LCD mit einem ESP32-Wroom
- TMP36 - Temperatur messen
- Wetterstation mit CO2-Messung
- Wetterstation mit Nano ESP32, ESP32-Wroom, NodeMCU, DHT11/DHT22 und OLED
- Wetterstation mit UNO R4 WiFi und LCD
- DHT11/DHT22 - Wetterstation LAN Daten speichern
Letzte Aktualisierung: