#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;
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);
}
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");
delay(5000);
}
Letzte Aktualisierung: