#include <DHT11.h>
#define DHT_PIN 33 // DHT11 sensor connected to digital pin 33
#define RELAY1_PIN 16 // Relay 1 connected to digital pin 16
#define RELAY2_PIN 17 // Relay 2 connected to digital pin 17
#define TEMPERATURE_THRESHOLD 24 // Temperature threshold to activate Relay 1
#define HUMIDITY_THRESHOLD 60 // Humidity threshold to activate Relay 2
DHT11 dht11(DHT_PIN);
void setup() {
Serial.begin(9600);
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
}
void loop() {
int temperature = dht11.readTemperature();
int humidity = dht11.readHumidity();
if (temperature != DHT11::ERROR_CHECKSUM && temperature != DHT11::ERROR_TIMEOUT &&
humidity != DHT11::ERROR_CHECKSUM && humidity != DHT11::ERROR_TIMEOUT) {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Check temperature threshold to activate Relay 1
if (temperature >= TEMPERATURE_THRESHOLD) {
digitalWrite(RELAY1_PIN, HIGH); // Activate Relay 1
} else {
digitalWrite(RELAY1_PIN, LOW); // Deactivate Relay 1
}
// Check humidity threshold to activate Relay 2
if (humidity > HUMIDITY_THRESHOLD) {
digitalWrite(RELAY2_PIN, HIGH); // Activate Relay 2
} else {
digitalWrite(RELAY2_PIN, LOW); // Deactivate Relay 2
}
} else {
Serial.print("Sensor Reading Error - Temperature: ");
Serial.print(DHT11::getErrorString(temperature));
Serial.print(" Humidity: ");
Serial.println(DHT11::getErrorString(humidity));
}
// Wait for 1 second before the next reading.
delay(1000);
}