from machine import Pin, I2C
from lcd_api import I2cLcd
from time import sleep
from dht import DHT22
red_led = Pin(25, Pin.OUT)
green_led = Pin(32, Pin.OUT)
vert_led = Pin(26, Pin.OUT)
dht_sensor = DHT22(Pin(12))
def run():
i2c_bus = I2C(scl=Pin(25), sda=Pin(21), freq=100000)
lcd = I2cLcd(i2c_bus, 0x27, 4, 20)
lcd.clear()
lcd.putstr("Capteur DHT22")
system_active = False
while True:
if button.value() == 0:
system_active = not system_active
sleep(0.3)
if system_active:
try:
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
lcd.clear()
lcd.putstr(f"Temp: {temperature:.1f}C\n")
lcd.putstr(f"Humi: {humidity:.1f}%")
if temperature > 30:
red_led.on()
green_led.off()
vert_led.off()
elif 28 <= temperature <= 30:
green_led.on()
red_led.off()
vert_led.off()
else:
vert_led.on()
red_led.off()
green_led.off()
except Exception as e:
lcd.clear()
lcd.putstr("Erreur capteur!")
print("Erreur:", e)
sleep(2)
else:
red_led.off()
green_led.off()
vert_led.off()
lcd.clear()
lcd.putstr("Systeme Arrete")
sleep(0.1)
if __name__ == "__main__":
run()