from machine import Pin,I2C
import utime
from pico_i2c_lcd import I2cLcd
from dht import DHT22
import dht
import _thread
#sensor de movimiento
pir = Pin(28,Pin.IN, Pin.PULL_DOWN)
pir1 = Pin(13,Pin.IN, Pin.PULL_DOWN)
led = Pin(15,Pin.OUT)
buzzer = Pin(14,Pin.OUT)
#sensor de humedad y temperatura
dht = DHT22(Pin(22))
#Pantalla LCD(16x2)I2C
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
I2C_ADDR =i2c.scan()[0]
lcd =I2cLcd(i2c, I2C_ADDR, 2, 16)
def pir_handler(pin):
utime.sleep_ms(100)
if pin.value():
print("ALARMA: Dormitorio")
for i in range(50):
led.toggle()
buzzer.toggle()
utime.sleep_ms(100)
pir.irq(trigger= Pin.IRQ_RISING, handler=pir_handler)
def pir_handler1(pin):
utime.sleep_ms(100)
if pin.value():
print("ALARMA: Sala")
for i in range(50):
led.toggle()
buzzer.toggle()
utime.sleep_ms(100)
pir1.irq(trigger= Pin.IRQ_RISING, handler=pir_handler1)
def temperatura():
while True:
dht.measure()
temp=dht.temperature()
hum=dht.humidity()
strtemp=str(temp)
strhum=str(hum)
print(f"Temperatura: {temp}°C Humedad:{hum}%")
lcd.putstr("Temp.:" + strtemp)
lcd.move_to(0,1)
lcd.putstr("Humedad:" + strhum)
utime.sleep_ms(2000)
lcd.clear()
_thread.start_new_thread(temperatura())