import machine
import onewire
import ds18x20
import adafruit_dht
import time
# Chân GPIO kết nối với cảm biến DHT22
dht_pin = 23
# Chân GPIO kết nối với relay để điều khiển bơi châm nước
relay_pin = 26
# Địa chỉ của cảm biến nhiệt độ DS18B20
temperature_sensor_pin = 27
# Thiết lập cảm biến nhiệt độ DS18B20
ds = ds18x20.DS18X20(onewire.OneWire(machine.Pin(temperature_sensor_pin)))
# Khởi tạo đối tượng DHT22
dht_sensor = dht.DHT22(machine.Pin(dht_pin))
def read_moisture():
# Thực hiện đo lường độ ẩm đất từ cảm biến DHT22
dht_sensor.measure()
moisture_value = dht_sensor.humidity()
return moisture_value
def read_temperature():
# Đọc dữ liệu nhiệt độ từ cảm biến DS18B20
roms = ds.scan()
ds.convert_temp()
time.sleep_ms(750)
temperature = ds.read_temp(roms[0])
return temperature
def activate_water_pump():
# Kích hoạt bơi châm nước thông qua relay
relay = machine.Pin(relay_pin, machine.Pin.OUT)
relay.on() # Kích hoạt relay
time.sleep(5) # Tưới nước trong 5 giây (có thể điều chỉnh)
relay.off() # Tắt relay
while True:
moisture_level = read_moisture()
temperature = read_temperature()
print("Moisture Level:", moisture_level)
print("Temperature:", temperature, "°C")
if moisture_level < 60: # Ngưỡng độ ẩm để kích hoạt tưới nước
activate_water_pump()
time.sleep(60) # Đợi 1 phút trước khi đo lại (có thể điều chỉnh)