# 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: