/*
Titel:
Anzeige von Temperatur und Luftfeuchtigkeit auf LCD mittels DHT22
Autor: Dario B. Graf Alegiani ([email protected])
Datum: 07.06.2025
Version: 1.0
Beschreibung:
Das Programm liest Temperatur- und Luftfeuchtigkeitswerte von einem DHT22-Sensor aus
und zeigt diese auf einem I2C-LCD-Display an. Optional können die Werte zur Debug-Zwecken
auch seriell ausgegeben werden.
Änderungsprotokoll:
- Version 1.0 (07.06.2025): Erste Veröffentlichung
*/
#include <LiquidCrystal_I2C.h>
#include <DHT22.h>
//#define TESTING // Optionaler Debug-Modus, aktiviert serielle Ausgabe
// Pin-Belegung
#define PinDHT 10 // DHT22-Datenpin
// DHT-Objekt erzeugen
DHT22 dht22(PinDHT);
// LCD-Objekt erzeugen (Adresse 0x27, 16 Zeichen x 2 Zeilen)
LiquidCrystal_I2C lcd(0x27,16,2);
// Variablen für Temperatur und Luftfeuchtigkeit
float Temp {0.0};
float Luftfeuchtigkeit {0.0};
void setup() {
#ifdef TESTING
Serial.begin(115200); // Serielle Ausgabe aktivieren (nur bei Debug)
#endif
lcd.init(); // LCD initialisieren
lcd.backlight(); // Hintergrundbeleuchtung einschalten
// Voreinstellungen auf dem LCD
lcd.setCursor(0,0);
lcd.print("Temp.:");
lcd.setCursor(0,1);
lcd.print("Luftfeu.:");
}
void loop() {
// Fehlerprüfung für DHT22
if (dht22.getLastError() != dht22.OK) {
Serial.print("last error :");
Serial.println(dht22.getLastError());
}
// Sensordaten lesen
Temp = dht22.getTemperature();
Luftfeuchtigkeit = dht22.getHumidity();
// Werte auf LCD ausgeben
lcd.setCursor(10,0);
lcd.print(Temp);
lcd.setCursor(11,1);
lcd.print(Luftfeuchtigkeit);
#ifdef TESTING
// Debug-Ausgabe via Serial Monitor
Serial.println(Temp);
Serial.println(Luftfeuchtigkeit);
#endif
delay(2000); // Messintervall gemäß DHT22-Datenblatt (mind. 1.7 Sekunden)
}