from machine import Pin,PWM
import time
import dht
from wifi_lib import conecta
from umqttsimple import MQTTClient
from variaveis_chumbadas import *
barulhoAtivo = PWM(Pin(13,Pin.OUT)) #inicia o buzzer
barulhoAtivo.init(freq=1047, duty=0) #seta a frequencia dele
sensor = dht.DHT22(Pin(2))
#Topicos
mqtt_topico_0 = f"v1/{mqtt_user_chumbado}/things/{mqtt_clienid}/data/0"
mqtt_topico_2 = f"v1/{mqtt_user_chumbado}/things/{mqtt_clienid}/data/2"
def mensagens(topico,msg):
print(msg) # Envia as mensagens pro broker.
print("CONECTANDO COM A INTERNET")
station = conecta(wifi_ssid,wifi_chumbada) #Conecta com a internet
if station.isconnected():
print("CONEXAO EFETUADA COM SUCESSO")
#station.connect()
# Cria a variavel com os dados pra conectar
cliente = MQTTClient(mqtt_clienid, mqtt_srv, mqtt_port, mqtt_user_chumbado, mqtt_pass_chumbado)
#Cria a conexao com o Cayenne
MQTTClient.connect(cliente)
# Envia as mensagens pro broker
cliente.set_callback(mensagens)
def Temperatura():
sensor.measure()
temperatura=sensor.temperature()
if (temperatura < 15):
print ("MUITO FRIO")
barulhoAtivo.duty(512) #Vai tocar o alarme se ficar frio
time.sleep(1)
#cliente.publish(mqtt_topico_0,str(temperatura))
elif (temperatura > 27):
print ("MUITO QUENTE")
barulhoAtivo.duty(512) #Vai tocar o alarme se ficar quente
#cliente.publish(mqtt_topico_0,str(temperatura))
time.sleep(1)
else:
#print ("NORMAL")
barulhoAtivo.duty(0) #Enquanto normal, sirene desligada
#cliente.publish(mqtt_topico_0,str(temperatura))
return temperatura
def Umidade():
sensor.measure()
umidade=sensor.humidity()
if (umidade <= 40):
print("Umidade BAIXA -> Cuidado com ELETROSTATICA")
barulhoAtivo.duty(512) #Vai tocar o alarme se estiver muito seco
#Envia o topico pro Cayenne
#cliente.publish(mqtt_topico_2,str(umidade))
time.sleep(.5)
elif (umidade >= 53):
print("Umidade ALTA -> Cuidado com GOTEJAMENTO")
barulhoAtivo.duty(512) #Vai tocar o alarme se estiver muito molhado
#Envia o topico pro Cayenne
#cliente.publish(mqtt_topico_2,str(umidade))
time.sleep(.5)
return umidade
print("Condicoes de Temperatura e Umidade do local")
while True:
print(f"Temperatura: {Temperatura()} Umidade= {Umidade()}")
#Envia os dados pro broker a cada 1 segundo
cliente.publish(mqtt_topico_0,str(Temperatura()))
cliente.publish(mqtt_topico_2,str(Umidade()))
time.sleep(1)