#include "DHT.h"
#define DHT22Pin 5
#define ledRed 3
#define ledBlue 2
#define ledYellow 6

int delayTime = 500;

DHT dht(DHT22Pin, DHT22);
void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(ledRed, OUTPUT);
  pinMode(ledYellow, OUTPUT);
  pinMode(ledBlue, OUTPUT);
}
void loop() {
   // Đọc giá trị nhiệt độ và độ ẩm từ cảm biến DHT11
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

// Chuyển đổi nhiệt độ và độ ẩm sang số nguyên
  int tempInt = temperature * 10;
  int humidityInt = humidity * 10;


  // Task 1: Kiểm tra giá trị nhiệt độ và bật LED tương ứng
  switch (tempInt) {
     case -400 ... 229:
      digitalWrite(ledBlue, LOW);
      digitalWrite(ledYellow, HIGH);
      digitalWrite(ledRed, LOW);
      break;
    case 230 ... 250:
      digitalWrite(ledBlue, HIGH);
      digitalWrite(ledYellow, LOW);
      digitalWrite(ledRed, LOW);
      break;
    default:
      digitalWrite(ledBlue, LOW);
      digitalWrite(ledYellow, LOW);
      digitalWrite(ledRed, HIGH);
      break;
  }
  // Task 2: Kiểm tra giá trị độ ẩm và bật LED tương ứng
  switch (humidityInt) {
     case 0 ... 500:
      blinkLED(ledBlue);
      break;
    default:
      blinkLED(ledRed);
      break;
  }
}

void blinkLED(int ledPin) {
  for (int i = 0; i < 2; i++) {
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }
}