from machine import Pin, ADC, PWM
import time
from dht import DHT22
bot = Pin(4,Pin.IN,Pin.PULL_UP)
red = Pin(1, Pin.OUT)
pir = Pin(22,Pin.IN)
pot = ADC(28)
buzzer = PWM(17)
d22 = DHT22(27)
def ler_pot(l_pot):
tensao = l_pot * 3.3 / 65535
temp_pot = tensao / 0.01
print(f"Temperatura: {temp_pot}")
def mov(args):
l_pot = pot.read_u16()
ler_pot(l_pot)
red.on()
buzzer.freq(100)
buzzer.duty_u16(350)
time.sleep(1)
red.off()
def ler_temp():
T = d22.temperature()
print(f"Temperatura: {T}")
def ler_umi():
U = d22.humidity()
print(f"Umidade: {U}")
def ambos():
T = d22.temperature()
U = d22.humidity()
print(f"Temp: {T} e Umidade: {U}%")
def erro():
print("Opção inválida")
def pressionado(args):
try:
d22.measure()
except:
print('Falha na leitura.')
resp = int(input('\nDigite 1 para ler Temperatura, 2 para ler Umidade ou 3 para ler Ambos: '))
if resp == 1:
ler_temp()
elif resp == 2:
ler_umi()
elif resp == 3:
ambos()
else:
erro()
pir.irq(trigger=Pin.IRQ_RISING, handler=mov)
bot.irq(trigger=Pin.IRQ_FALLING, handler=pressionado)
while True:
buzzer.duty_u16(0)
print("\nPressione o botão ou mova-se")
time.sleep(1)