#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);
}
}