BMP280 Kli­ma­an­la­ge Zeitmessung

# include <Adafruit_BMP280.h>
# include <LiquidCrystal_I2C.h>

#include <RTClib.h>
RTC_DS3231 rtc;

// Sensor einen Namen zuweisen (bmp)
Adafruit_BMP280 bmp;

// LCD einen Namen zuweisen
LiquidCrystal_I2C lcd(0x27, 20, 4);

// Pin des Lüfters
int LUEFTER = 8;

void setup()
{
  // LCD einschalten
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  pinMode(LUEFTER, OUTPUT);

  // BMP280 starten
  bmp.begin();

  // RTC starten
  rtc.begin();
  /*
    wenn Datum und Zeit nicht korrekt -> Datum/Zeit setzen
    Jahr, Monat, Tag, Stunde, Minute, Sekunde
    keine führende 0 setzen
    Beispiel:
    rtc.adjust(DateTime(2019, 8, 22, 20, 12, 30));
  */
}

void loop()
{
  // aktuelle Zeit holen
  DateTime aktuell = rtc.now();
  
  char Zeit[] = "Uhrzeit: hh:mm:ss";
  
  // Daten BMP280 lesen
  String AnzeigeTemperatur = String(bmp.readTemperature());
  
  // . durch , ersetzen
  AnzeigeTemperatur.replace(".", ",");

  // Anzeige LCD
  lcd.setCursor(0, 0);
  lcd.print(aktuell.toString(Zeit));
  Serial.println(aktuell.toString(Zeit));

  lcd.setCursor(0, 1);
  lcd.print("Temperatur: ");
  lcd.setCursor(0, 2);

  // \337C -> °
  lcd.print(AnzeigeTemperatur + " \337C -> BMP280");

  // Lüfter einschalten
  // round() -> Temperatur runden
  if (round(bmp.readTemperature()) > 25)
  {
    digitalWrite(LUEFTER, HIGH);
    lcd.setCursor(0, 3);
    lcd.print("L\365fter eingeschaltet");
  }

  // Lüfter ausschalten
  else
  {
    digitalWrite(LUEFTER, LOW);

    lcd.setCursor(0, 3);

    // \365 -> ü
    lcd.print("L\365fter ausgeschaltet");
  }

  delay(3000);
}

Letzte Aktualisierung: 16. Okt 2022 @ 13:34