from wifi_lib import conecta
from umqttsimple import MQTTClient
from machine import Pin, ADC
import time
from servo import Servo
mqtt_server = "broker.mqttdashboard.com"
mqtt_port = 1883
mqtt_user = ""
mqtt_password = ""
mqtt_client_id = "clientId-5ohu0Lyld8-Wokwi"
# Definir LED e Sensor de Temperatura
LED = Pin(5, Pin.OUT)
sensor_temp = ADC(Pin(34)) # pino para o sensor de temperatura
braco = Servo(4)
client = MQTTClient(mqtt_client_id, mqtt_server, mqtt_port, mqtt_user, mqtt_password)
def le_temperatura():
# Simulação da leitura de temperatura
valor_adc = sensor_temp.read()
temperatura = (valor_adc / 4095) * 100 # Conversão fictícia
print(f"Temperatura atual: {temperatura} °C")
if temperatura > 1:
print("Temperatura acima de 60°C!")
client.publish("pucpr/prgg/msg_node_red_led", "LED ativado.")
LED.on()
else:
print("Temperatura abaixo de 60°C. LED desativado.")
LED.off()
return temperatura
def recebi(topico, msg):
braco.set_angle(int(msg.decode()))
# Função para conectar e publicar no MQTT Broker
def conecta_e_publica():
print("Conectando WiFi...")
station = conecta("Wokwi-GUEST", "")
if not station.isconnected():
print("Falha na conexão")
return
else:
print("Conectado ao WiFi")
# Conectar ao Broker MQTT
print("Conectando ao Broker MQTT...")
try:
client.connect()
print("Broker MQTT conectado com sucesso!")
# Publicar leitura do sensor de temperatura
temperatura = le_temperatura()
client.publish("pucpr/prgg/temperatura", str(temperatura))
print(f"Temperatura enviada: {temperatura}")
# Configurar callback para controle do LED
client.set_callback(recebi)
print("Aguardando mensagem...")
for i in range(3*60):
client.publish("pucpr/prgg/msg_node_red", f"{i}")
client.sleep(1)
except Exception as e:
print("Erro ao conectar ao Broker MQTT: ", e)
finally:
print("Desconectando...")
client.disconnect()
station.disconnect()
print("Desconectado do WiFi e do Broker MQTT")
# Executa a função
conecta_e_publica()