BME280 - Mess­da­ten anzeigen

#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: Apr 23, 2024 @ 12:57