#include <DHT.h>
#define RED_LED_PIN 5 // Pin for red LED
#define YELLOW_LED_PIN 18 // Pin for yellow LED
#define GREEN_LED_PIN 19 // Pin for green LED
DHT dht(4, DHT22);
float temperature;
float humidity;
int counter;
void setup() {
Serial.begin(9600);
pinMode(RED_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
Serial.println("Hello, ESP32!");
}
void loop() {
temperature = dht.readTemperature();
humidity = dht.readHumidity();
Serial.println("Data: " + String(counter));
Serial.print("Temperature:\t");
Serial.print(dht.readTemperature(false));
Serial.println("C");
Serial.print("Temperature:\t");
Serial.print(dht.readTemperature(true));
Serial.println("F");
Serial.println("Humidity: \t" + String(humidity) + "%");
Serial.print("Heat Index In Celsius: ");
Serial.println(dht.computeHeatIndex(temperature, humidity, false));
Serial.print("Heat Index In Fahrenheit: ");
Serial.println(dht.computeHeatIndex(temperature, humidity, true));
Serial.println(" ");
// LED control based on temperature
if (temperature > 50) {
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(GREEN_LED_PIN, LOW);
} else if (temperature < 50 && temperature > 20) {
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, HIGH);
digitalWrite(GREEN_LED_PIN, LOW);
} else {
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(GREEN_LED_PIN, HIGH);
}
delay(1000);
counter++;
}