# P13: Utilizando um push button, um DHT22 e um
# buzzer,
# crie e programe um circuito que, ao
# pressionar o push button, seja ativada uma
# interrupção que faça com que:
# ▪ O DHT22 extraia a temperatura e a umidade e
# as imprima na tela;
# ▪ Verifique se a umidade é menor que 10%. Em
# caso afirmativo, acione o buzzer e imprima na
# tela uma mensagem de alerta. Em caso negativo,
# mantenha o buzzer em silêncio e não imprima
# nada.
from machine import Pin,PWM
from time import sleep
from dht import DHT22
bot = Pin(16,Pin.IN,Pin.PULL_UP)
sensor_temperatura = DHT22(28)
buzzer = PWM(27)
def nome_funcao(args):
global contador
while contador < 1:
# ▪ O DHT22 extraia a temperatura e a umidade e
# as imprima na tela;
try:
sensor_temperatura.measure()
T = sensor_temperatura.temperature()
U = sensor_temperatura.humidity()
print("--------------------------------------------------")
print(f"\nTemperatura: {T:.1f} °C")
print(f"Umidade: {U:.1f} %")
contador += 1
except:
print(f"Há uma falha fisica ou lógica")
if U < 10:
buzzer.duty_u16(100)
buzzer.freq(100)
print(f"ALERTA!!! UMIDADE: {U:.1f}")
# ▪ Verifique se a umidade é menor que 10%. Em
# caso afirmativo, acione o buzzer e imprima na
# tela uma mensagem de alerta. Em caso negativo,
# mantenha o buzzer em silêncio e não imprima
# nada.
bot.irq(handler = nome_funcao, trigger = Pin.IRQ_FALLING)
while True:
contador = 0