#include <DHT.h>
#include <LiquidCrystal.h>
#define DHTPIN 2 // Chân Data của DHT22 kết nối với chân 2
#define DHTTYPE DHT22 // Loại cảm biến DHT22
DHT dht(DHTPIN, DHTTYPE);
int ledPin = 13; // Chân điều khiển đèn LED
int pirPin = 3; // Chân cảm biến chuyển động (PIR sensor)
int soundPin = A0; // Chân cảm biến âm thanh (Sound sensor)
LiquidCrystal lcd(12, 11, 5, 4, 6, 7); // Khai báo chân kết nối màn hình LCD
void setup() {
dht.begin();
lcd.begin(16, 2); // Khai báo số cột và số hàng của màn hình LCD
pinMode(ledPin, OUTPUT);
pinMode(pirPin, INPUT);
pinMode(soundPin, INPUT);
}
void loop() {
// Đọc nhiệt độ và độ ẩm từ cảm biến DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Hiển thị thông số nhiệt độ và độ ẩm lên màn hình LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
// Kiểm tra nhiệt độ và độ ẩm vượt quá ngưỡng
if (temperature > 30 || humidity > 70) {
digitalWrite(ledPin, HIGH); // Bật đèn LED
} else {
digitalWrite(ledPin, LOW); // Tắt đèn LED
}
// Kiểm tra cảm biến chuyển động (PIR sensor)
if (digitalRead(pirPin) == HIGH) {
digitalWrite(ledPin, HIGH); // Bật đèn LED khi phát hiện chuyển động
} else {
digitalWrite(ledPin, LOW); // Tắt đèn LED khi không có chuyển động
}
// Kiểm tra cảm biến âm thanh (Sound sensor)
int soundValue = analogRead(soundPin);
if (soundValue > 500) {
digitalWrite(ledPin, HIGH); // Bật đèn LED khi có âm thanh lớn
} else {
digitalWrite(ledPin, LOW); // Tắt đèn LED khi không có âm thanh
}
delay(1000); // Đợi 1 giây trước khi đọc dữ liệu lại
}