#include <DHT.h>
#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int relayPin = 4;
float hum;
float temp;
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW);
Serial.begin(115200);
dht.begin();
delay(2000);
Serial.println(F("DHT22 Temperature & Humidity Control"));
}
void loop() {
hum = dht.readHumidity();
temp = dht.readTemperature();
if (isnan(hum) || isnan(temp)) {
Serial.println(F("Failed to read from DHT sensor!"));
digitalWrite(relayPin, LOW);
delay(2000);
return;
}
Serial.print(F("Humidity: "));
Serial.print(hum);
Serial.print(F("% Temperature: "));
Serial.print(temp);
Serial.println(F("°C"));
if (temp >= 20 && temp <= 30) {
Serial.println(F("Temperature in range (20-30°C) - Relay ON for 5 seconds"));
digitalWrite(relayPin, HIGH);
delay(5000);
digitalWrite(relayPin, LOW);
Serial.println(F("Relay OFF"));
} else {
Serial.println(F("Temperature out of range - Relay remains OFF"));
digitalWrite(relayPin, LOW);
}
delay(1000);
}