from machine import Pin
from dht22 import DHT22
from iot_data_hub import IoTDataHub
import time
import random
sensor_tem_umid = DHT22(15)
vermelho = Pin(27, Pin.OUT)
verde = Pin(12, Pin.OUT)
azul = Pin(14, Pin.OUT)
pin_buzzer = 18
servidor = IoTDataHub(
"Wokwi-GUEST",
"",
"asdfghjkewfdahrtsjagwergrbflzxcvbnm741852963",
)
def controle_led_temperatura(temperatura):
if temperatura < 15:
vermelho.off()
azul.on()
verde.off()
som_buzzer(int(500 - temperatura * 10))
elif 15 <= temperatura <= 30:
vermelho.off()
azul.off()
verde.on()
else:
vermelho.on()
azul.off()
verde.off()
som_buzzer(int((temperatura - 30) * 10 + 500))
def controle_led_umidade(umidade):
if umidade < 40:
vermelho.off()
azul.on()
verde.off()
som_buzzer(int(500 - umidade * 10))
elif 40 <= umidade <= 60:
vermelho.off()
azul.off()
verde.on()
else:
vermelho.on()
azul.off()
verde.off()
som_buzzer(int((umidade - 30) * 10 + 500))
def controle_led_qualidade_ar(qualidade_ar):
if qualidade_ar <= 200:
vermelho.off()
azul.off()
verde.on()
elif 200 < qualidade_ar <= 400:
vermelho.off()
azul.on()
verde.off()
som_buzzer(int(qualidade_ar * 2))
else:
vermelho.on()
azul.off()
verde.off()
som_buzzer(int(qualidade_ar * 3))
def som_buzzer(frequencia):
print(f"Tocar buzzer com frequência {frequencia}")
while True:
temp = sensor_tem_umid.temperatura()
servidor.publish("temperature", str(temp))
print(f"T={temp} graus Celsius")
controle_led_temperatura(temp)
time.sleep(1)
umid = sensor_tem_umid.umidade()
servidor.publish("moisture", str(umid))
print(f"U={umid}%")
controle_led_umidade(umid)
time.sleep(1)
qualidade_ar = random.randint(0, 600)
servidor.publish("air_quality", str(qualidade_ar))
print(f"Qualidade do Ar={qualidade_ar}")
controle_led_qualidade_ar(qualidade_ar)
time.sleep(1)