#include <DHT.h>
#define DHTPIN 2 // Pin connected to the DHT22 sensor
#define DHTTYPE DHT22 // DHT22 (AM2302) sensor type
#define TEMP_LED_PIN 4 // Pin for temperature LED
#define HUMIDITY_LED_PIN 5 // Pin for humidity LED
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(TEMP_LED_PIN, OUTPUT);
pinMode(HUMIDITY_LED_PIN, OUTPUT);
}
void loop() {
delay(5000); // Wait for 2 seconds between readings
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Check temperature conditions
if (temperature <= 24) {
digitalWrite(TEMP_LED_PIN, HIGH); // Glow constantly
} else if (temperature > 24 && temperature <= 30) {
blinkLED(TEMP_LED_PIN, 500); // Blink every 500 milliseconds
} else if (temperature > 30 && temperature <= 40) {
blinkLED(TEMP_LED_PIN, 300); // Blink every 300 milliseconds
} else if (temperature > 40 && temperature <= 50) {
blinkLED(TEMP_LED_PIN, 100); // Blink every 100 milliseconds
}
// Check humidity conditions
if (humidity < 50) {
digitalWrite(HUMIDITY_LED_PIN, HIGH); // Glow constantly
} else if (humidity >= 50 && humidity < 60) {
blinkLED(HUMIDITY_LED_PIN, 500); // Blink every 500 milliseconds
} else if (humidity >= 60 && humidity < 70) {
blinkLED(HUMIDITY_LED_PIN, 300); // Blink every 300 milliseconds
} else if (humidity >= 70 && humidity < 80) {
blinkLED(HUMIDITY_LED_PIN, 100); // Blink every 100 milliseconds
} else if (humidity >= 80) {
blinkLED(HUMIDITY_LED_PIN, 50); // Blink every 50 milliseconds
}
}
void blinkLED(int pin, int duration) {
digitalWrite(pin, HIGH);
delay(duration / 2);
digitalWrite(pin, LOW);
delay(duration / 2);
}