import network
import time
from machine import Pin
from umqtt.simple import MQTTClient
# ===== CONFIGURAÇÕES =====
WIFI_SSID = 'Wokwi-GUEST'
WIFI_PASSWORD = ''
BLYNK_AUTH = "7I37KT1C2113tRGWpIHs7kGqwS4wWhZk"
BLYNK_TEMPLATE_ID = "TMPL2eoXEW9WN"
BLYNK_TEMPLATE_NAME = "Liga"
# LED no pino GPIO 2
led = Pin(2, Pin.OUT)
# Conexão Wi-Fi
def connect_wifi():
print("Conectando ao Wi-Fi...")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
print('.', end='')
time.sleep(1)
print('\nWi-Fi conectado:', wlan.ifconfig())
return wlan
# Conexão ao Blynk (via MQTT)
def connect_blynk():
print("Conectando ao Blynk MQTT...")
client = MQTTClient(
client_id=BLYNK_TEMPLATE_ID,
server="blynk.cloud",
port=1883,
user=BLYNK_AUTH,
password="",
keepalive=60
)
client.connect()
print("Conectado ao Blynk!")
return client
# Callback quando receber dados do app
def sub_cb(topic, msg):
print("Mensagem recebida:", topic, msg)
if msg == b'1': # Botão ligado
led.on()
else:
led.off()
# ===== EXECUÇÃO =====
try:
wlan = connect_wifi()
client = connect_blynk()
# Inscreve-se no pino virtual V0
topic = b'dv/' + BLYNK_AUTH.encode() + b'/V0'
client.set_callback(sub_cb)
client.subscribe(topic)
while True:
client.check_msg() # Espera mensagens do app
time.sleep(0.1)
except Exception as e:
print("Erro:", e)
time.sleep(5)
machine.reset()