#include "DHT.h"
// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
// DHT-Tutorial auf
// https://learn.adafruit.com/dht
const int DHTPIN = 2; // Pin, der mit dem SDA-Ein- und Ausgang des DHT22 verbunden ist
const int HEIZ_PIN = 3;
const int LED1 = 8;
const int LED2 = 9;
const int LED3 = 10;
const int Poti = A0;
DHT dht(DHTPIN, DHT22); // Hier wird ein DHT-Objekt erzeugt
unsigned long currentMillis;
unsigned long prevMillis;
unsigned long interval = 2500;
int Temp;
float hum_unten = 50.0;
float hum_oben = 60.0;
void setup() {
pinMode(HEIZ_PIN, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
Serial.begin(115200);
dht.begin();
}
void loop() {
// Zyklisch Werte abfragen und auswerten
currentMillis = millis();
if (currentMillis - prevMillis >= interval)
{
prevMillis = currentMillis;
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Prüfen, ob sinnvolle Werte gelesen werden konnten
if (isnan(temperature) || isnan(humidity))
{
Serial.println("Failed to read from DHT sensor!");
}
else
{
Serial.print("Temp = " + String(temperature) + "°C; " );
Serial.println("Feuchte = " + String(humidity) + "%" );
// Temp.-Regelung
Temp = map(analogRead(Poti),0, 1023, 15, 25);
Serial.println("eingestellte Temp = " + String(Temp) + "°C");
if (temperature <= Temp - 0.5) digitalWrite(HEIZ_PIN, HIGH);
if (temperature >= Temp + 0.5) digitalWrite(HEIZ_PIN, LOW);
// Feuchtigkeits-Auswertung
digitalWrite(LED1, humidity > hum_oben);
digitalWrite(LED2, humidity >= hum_unten && humidity <= hum_oben );
digitalWrite(LED3, humidity < hum_unten);
}
}
}