import network
import time
import dht
import machine
from umqtt.simple import MQTTClient
# - CONFIGURAÇÕES -
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""
MQTT_CLIENT_ID = "mencalham_client_32"
MQTT_BROKER = "io.adafruit.com"
MQTT_USER = "mencalham"
MQTT_PASSWORD = "aio_nVEF86n1EzU625iWJJTgC0WUu2o5"
MQTT_TOPIC_TEMP = "mencalham/feeds/temperatura"
MQTT_TOPIC_UMID = "mencalham/feeds/umidade"
# - CONFIGURAÇÃO DO HARDWARE -
sensor = dht.DHT22(machine.Pin(36))
led_status = machine.Pin(2, machine.Pin.OUT)
# - FUNÇÃO PARA WI-FI -
def conecta_wifi():
print("Conectando ao Wi-Fi...", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect(WIFI_SSID, WIFI_PASSWORD)
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Conectado!")
led_status.on()
# - EXECUÇÃO -
conecta_wifi()
print("Conectando ao Broker MQTT...")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print("Conectado à Cloud!")
while True:
try:
# Coleta de dados do sensor
sensor.measure()
temp = sensor.temperature()
umid = sensor.humidity()
# Mostra no terminal o que está lendo
print(f"Lido do Sensor -> Temp: {temp}°C | Umid: {umid}%")
# Enviando APENAS o número bruto para o gráfico do Adafruit conseguir desenhar
print(f"Enviando para o Adafruit: {temp}")
client.publish(MQTT_TOPIC_TEMP, str(temp))
except OSError as e:
print("Erro ao ler sensor. Verifique os fios.")
time.sleep(5)