#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(2, DHT22); // Create a DHT object
#define tPIN 13 // Pin connected to temperature LED
#define hPIN 12 // Pin connected to temperature LED
void setup() {
lcd.init();
lcd.backlight();
lcd.print("Temperature &");
lcd.setCursor (8,1);
lcd.print("Humidity");
delay(2000);
lcd.clear();
Serial.begin(9600); // Start serial communication
dht.begin(); // Initialize DHT sensor
pinMode(tPIN, OUTPUT); // Set LED pin as output
pinMode(hPIN, OUTPUT); // Set LED pin as output
}
void loop() {
float temperature = dht.readTemperature(); // Read temperature in Celsius
float humidity = dht.readHumidity();
// Check if any reads failed and exit early (to try again).
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% Temperature: ");
Serial.print(temperature);
Serial.println("°C ");
if (temperature > 30) {
digitalWrite(tPIN, HIGH); // Turn LED on
delay(500); // Keep LED on for 0.5 seconds
digitalWrite(tPIN, LOW); // Turn LED off
delay(500); // Keep LED off for 0.5 seconds
} else {
digitalWrite(tPIN, LOW); // Keep LED off if temperature <= 30
}
if (humidity > 50) {
digitalWrite(hPIN, HIGH); // Turn LED on
delay(500); // Keep LED on for 0.5 seconds
digitalWrite(hPIN, LOW); // Turn LED off
delay(500); // Keep LED off for 0.5 seconds
} else {
digitalWrite(hPIN, LOW); // Keep LED off if temperature <= 30
}
delay(2000); // Wait before reading temperature again
}