#include <DHT.h>
#define DHTPIN A0 // A0 used as digital pin for DHT11 data
#define DHTTYPE DHT11
const int relayPin = 3; // Relay IN pin
const float THRESHOLD_TEMP = 10.0; // °C (change as needed)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(relayPin, OUTPUT);
// Many relay modules are ACTIVE-LOW. We'll start OFF safely:
digitalWrite(relayPin, HIGH);
dht.begin();
Serial.println("DHT11 Temperature Relay Control Started...");
}
void loop() {
delay(2000); // DHT11 needs slow sampling (about 1-2 sec)
float temp = dht.readTemperature(); // Celsius
if (isnan(temp)) {
Serial.println("Failed to read from DHT11!");
return;
}
Serial.print("Temperature: ");
Serial.print(temp);
Serial.println(" °C");
// Relay control based on threshold
if (temp <= THRESHOLD_TEMP) {
// Turn ON relay (ACTIVE-LOW assumed)
digitalWrite(relayPin, LOW);
Serial.println("TEMP HIGH -> Relay ON -> LED OFF");
} else {
// Turn OFF relay
digitalWrite(relayPin, HIGH);
Serial.println("TEMP OK -> Relay OFF -> LED ON");
}
}