import machine
import dht
import time
from machine import Pin, SoftI2C
from i2c_lcd import I2cLcd
# Cấu hình chân cho cảm biến DHT22 và LED RGB
dht_sensor = dht.DHT22(Pin(14)) # Pin DHT22 được nối vào GPIO 14
RED_LED = Pin(15, Pin.OUT) # Pin điều khiển LED RGB (đỏ)
BLUE_LED = Pin(16, Pin.OUT) # Pin điều khiển LED RGB (xanh dương)
# Khởi tạo I2C và LCD
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=100000)
I2C_ADDR = 0x27
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)
# Ngưỡng nhiệt độ để cảnh báo
threshold = 30
# Hàm đọc cảm biến và cập nhật thông tin
def update_display():
try:
dht_sensor.measure()
temp = dht_sensor.temperature()
hum = dht_sensor.humidity()
# Hiển thị giá trị lên LCD
lcd.clear()
lcd.putstr("Nhiet do: {}C".format(temp))
lcd.move_to(0, 1)
lcd.putstr("Do am: {}%".format(hum))
# Kiểm tra nhiệt độ và bật cảnh báo nếu cần
if temp > threshold:
lcd.clear()
lcd.putstr("CANH BAO!")
RED_LED.on() # Bật LED đỏ khi vượt ngưỡng
BLUE_LED.off() # Tắt LED xanh
else:
RED_LED.off() # Tắt LED đỏ
BLUE_LED.on() # Bật LED xanh
except OSError as e:
print("Failed to read sensor.")
lcd.clear()
lcd.putstr("Error reading")
# Vòng lặp chính để liên tục đọc và cập nhật thông tin
while True:
update_display()
time.sleep(2)
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4