from time import sleep
from machine import Pin, PWM, ADC
from dht import DHT22
led_integrado = Pin(25, Pin.OUT)
bot = Pin(12,Pin.IN,Pin.PULL_UP)
pir = Pin(22,Pin.IN)
pot = ADC(27)
buzzer = PWM(17)
d22 = DHT22(28)
def imprimir(texto):
print(texto)
def pressionado(args):
try:
d22.measure()
leitura_pot = pot.read_u16()
except Exception as e:
imprimir(e)
resp = int(input("Digite 1 para ler o DHT ou 2 para ler o potenciometro: "))
if resp == 1:
resp_dht = int(input("Digite 1 para Temperatura, 2 para Umidade ou 3 para ler Ambos: "))
if resp_dht == 1:
# temp
temp = d22.temperature()
texto = f"Temperatura: {temp}"
imprimir(texto)
elif resp_dht == 2:
# umidade
umid = d22.humidity()
texto = f"Umidade: {umid}"
imprimir(texto)
elif resp_dht == 3:
# ambos
umid = d22.humidity()
temp = d22.temperature()
texto = f"Temp: {temp}, umidade: {umid}"
imprimir(texto)
else:
imprimir("Opção Inválida")
elif resp == 2:
imprimir(leitura_pot)
# potenciometro
else:
imprimir("Opção Inválida")
def mov(args):
buzzer.duty_u16(0)
led_integrado.value(1)
imprimir("Movimento Detectado")
pir.irq(trigger=Pin.IRQ_RISING, handler=mov)
bot.irq(trigger=Pin.IRQ_FALLING, handler=pressionado)
while True:
sleep(0.5)
imprimir("Pressione o botão ou se movimente!")
led_integrado.value(1)