#include <DHT.h>
#include "DHTesp.h"

#define DHTPIN 15     // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22   // DHT 22  (AM2302)

#define RED_LED 13    // Digital pin connected to the red LED
#define GREEN_LED 12  // Digital pin connected to the green LED
#define YELLOW_LED  14
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  pinMode(RED_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(YELLOW_LED, OUTPUT);
  dht.begin();
}

void loop() {
  digitalWrite(YELLOW_LED, HIGH);
  
  delay(2000);  // Delay between sensor readings

  // Reading temperature in Celsius
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();


  if (isnan(temperature)|| isnan(humidity)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println("°C");

  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println("%");

// Check temperature condition
  if (temperature > 40 || humidity >60) {
    blinkLED(RED_LED);  // Blink red LED
  } else {
    blinkLED(GREEN_LED);  // Blink green LED
  }
}

void blinkLED(int pin) {
  digitalWrite(pin, HIGH); // Turn the LED on
  delay(500);               // Wait for 500 milliseconds
  digitalWrite(pin, LOW);  // Turn the LED off
  delay(500);              // Wait for 500 milliseconds
}