#Diretivas de importação
from machine import Pin, PWM
from dht import DHT22
from time import sleep
#Declaração de objetos
red = Pin(0,Pin.OUT)
blue = Pin(5,Pin.OUT)
pir = Pin(28,Pin.IN)
sensor = DHT22(22)
buz = PWM(13)
#Definição da função de interrupção
def jodison(args):
#Coloca o dht em modo leitura
try:
sensor.measure()
T = sensor.temperature()
U = sensor.humidity()
except:
print('Falha na leitura')
sleep(1)
#Pergunta ao usuário o que quer ver
resp = input('Digite T, U ou A: ').lower()
if resp == 't':
red.on()
print('A temperatura é ',T)
buz.freq(241)
buz.duty_u16(100)
sleep(1)
elif resp == 'u':
blue.on()
print('A umidade é ',U)
buz.freq(476)
buz.duty_u16(100)
sleep(1)
elif resp == 'a':
red.on()
blue.on()
print('A temperatura é',T,' e a umidade é ',U)
buz.freq(731)
buz.duty_u16(100)
sleep(1)
else:
print('Resposta inválida, otário, manezão.')
sleep(1)
#Vincular a função ao objeto disparador dela
#É o mesmo que fazer o pedido de interrupção
pir.irq(handler=jodison,trigger=Pin.IRQ_RISING)
#Loop infinito
while True:
red.off() #apaga led vermelho
blue.off() #apaga led azul
buz.duty_u16(0) #silencia o buzzer
sleep(1)