
Zusätzlich zur Steuerung des Lüfters soll die Zeit angezeigt werden.
So sieht es aus:

Benötigte Bauteile:
- RTC-Modul DS3231
- Temperaturmesser BMP280
- LCD 1602
- 5V Lüfter
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliotheken:
Sketch → Bibliothek einbinden → Bibliotheken verwalten



Binde die benötigten Bibliotheken ein und definiere die Variablen.
# include <Adafruit_BMP280.h>
# include <LiquidCrystal_I2C.h>
#include <RTClib.h>
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
// 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;
Der setup-Teil. Beachte die Kommentare.
void setup()
{
// LCD einschalten
lcd.init();
lcd.backlight();
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));
*/
}
Der loop-Teil. Beachte die Kommentare.
void loop()
{
// aktuelle Zeit holen
DateTime aktuell = rtc.now();
// wenn Stunden < 10 -> führende 0 setzen
if (aktuell.hour() < 10) lcd.print("0");
lcd.print(aktuell.hour());
lcd.print(':');
// wenn Minuten < 10 -> führende 0 setzen
if (aktuell.minute() < 10) lcd.print("0");
lcd.print(aktuell.minute());
lcd.print(':');
// wenn Sekunden < 10 -> führende 0 setzen
if (aktuell.second() < 10) lcd.print("0");
lcd.print(aktuell.second());
// Daten BMP280 lesen
String AnzeigeTemperatur = String(bmp.readTemperature());
// . durch , ersetzen
AnzeigeTemperatur.replace(".", ",");
// Anzeige LCD
lcd.setCursor(0, 0);
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);
}
Verwandte Aufgaben:
- BMP280 - Klimaanlage mit Zeitmessung
- DHT22 - Klimaanlage
- DHT22 - Wetterdaten aufzeichnen
- DHT22 - Wetterdaten mit Bluetooth übermitteln
- DHT22 - Wetterstation Anzeige im Internetbrowser
- DHT22 - Wetterstation Anzeige auf einem LCD
- BMP280 - Temperatur und Luftdruck messen
- TMP36 - Temperatur messen
Letzte Aktualisierung: