#Enunciado:
#Led 1 aceso na inicialização, buzer em silêncio.
#Pressionamento do botão dispara interrupção que lê temperatura e umidade e imprime na tela.
#Aciona o Led 2.
#Ativa o buzzer
#Verifica se a temperatura e umidade atendem aos critérios abaixo:
#Se a temperatura for igual ou maior que 48 e a umidade for menor ou igual a 10, acende também o led 3. Caso contrário, led3 apagado.
#Importação de bibliotecas
from machine import Pin
from machine import PWM
from utime import sleep
from dht import DHT22
#Criação de algumas frequências para facilitar meu trabalho
freqA= int(444)
#Criação dos objetos do circuito
#Posição dos leds da esquerda pra direita!
led1 = Pin(2,Pin.OUT)
led2 = Pin(1,Pin.OUT)
led3 = Pin(0,Pin.OUT)
bot = Pin(16,Pin.IN,Pin.PULL_UP)
sens = DHT22(21)
buz = PWM(22)
integral = Pin(25,Pin.OUT)
#Criando a função que gerencia a rotina de ativação:
def handle_interrupt(args):
led1.off()
led2.on()
sleep(1)
buz.duty_u16(1)
print(f"A temperatura é {umidade} e a umidade é{umidade}")
if temperatura > 48 and umidade < 10:
led3.on()
else:
led3.off()
#Chamando a função:
bot.irq(handler = handle_interrupt, trigger = Pin.IRQ_FALLING)
#Programa Principal (Para quando o botão não está aceso)
while True:
try:
sens.measure()
temperatura = sens.temperature()
umidade = sens.humidity()
except:
print("Falha ao iniciar o sensor")
led1.toggle()
sleep(2)
buz.duty_u16(0)