#include <DHT.h>
#define DHTPIN 2 // Pin where the DHT sensor is connected to
#define DHTTYPE DHT22 // Change to DHT11 if you're using that sensor
const int tempRedLedPin = 13; // Pin for the temperature red LED
const int tempYellowLedPin = 12; // Pin for the temperature yellow LED
const int tempGreenLedPin = 14; // Pin for the temperature green LED
const int humidityRedLedPin = 17; // Pin for the humidity red LED
const int humidityYellowLedPin = 16; // Pin for the humidity yellow LED
const int humidityGreenLedPin = 15; // Pin for the humidity green LED
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(tempRedLedPin, OUTPUT);
pinMode(tempYellowLedPin, OUTPUT);
pinMode(tempGreenLedPin, OUTPUT);
pinMode(humidityRedLedPin, OUTPUT);
pinMode(humidityYellowLedPin, OUTPUT);
pinMode(humidityGreenLedPin, OUTPUT);
}
void loop() {
delay(2000); // Wait for 2 seconds between measurements
float temperature = dht.readTemperature(); // Read temperature in degrees Celsius
float humidity = dht.readHumidity(); // Read humidity
// 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;
}
// Print temperature and humidity readings to the Serial Monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C\tHumidity: ");
Serial.print(humidity);
Serial.println(" %");
// Determine the LED color based on temperature range
if (temperature >= 30.0) {
// High temperature (Red LED)
digitalWrite(tempRedLedPin, HIGH);
digitalWrite(tempYellowLedPin, LOW);
digitalWrite(tempGreenLedPin, LOW);
} else if (temperature >= 20.0 && temperature < 30.0) {
// Moderate temperature (Yellow LED)
digitalWrite(tempRedLedPin, LOW);
digitalWrite(tempYellowLedPin, HIGH);
digitalWrite(tempGreenLedPin, LOW);
} else {
// Low temperature (Green LED)
digitalWrite(tempRedLedPin, LOW);
digitalWrite(tempYellowLedPin, LOW);
digitalWrite(tempGreenLedPin, HIGH);
}
// Determine the LED color based on humidity range
if (humidity >= 70.0) {
// High humidity (Red LED)
digitalWrite(humidityRedLedPin, HIGH);
digitalWrite(humidityYellowLedPin, LOW);
digitalWrite(humidityGreenLedPin, LOW);
} else if (humidity >= 50.0 && humidity < 70.0) {
// Moderate humidity (Yellow LED)
digitalWrite(humidityRedLedPin, LOW);
digitalWrite(humidityYellowLedPin, HIGH);
digitalWrite(humidityGreenLedPin, LOW);
} else {
// Low humidity (Green LED)
digitalWrite(humidityRedLedPin, LOW);
digitalWrite(humidityYellowLedPin, LOW);
digitalWrite(humidityGreenLedPin, HIGH);
}
}