import network
import time
from machine import Pin
from umqtt import MQTTClient
# -------- Adafruit IO Config --------
AIO_USERNAME = "dkiranvvit"
AIO_KEY = "aio_OVVt85ybGFsKzE6u9mCcQBrWsUEj"
MQTT_BROKER = "io.adafruit.com"
MQTT_PORT = 1883
CLIENT_ID = "LED_Node_01"
LED_FEED = AIO_USERNAME + "/feeds/led"
# -------- WiFi --------
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASS = ""
# -------- Hardware --------
led = Pin(15, Pin.OUT)
# -------- MQTT Callback --------
def on_message(topic, msg):
command = msg.decode()
print("Received:", command)
if command == "ON":
led.value(1)
elif command == "OFF":
led.value(0)
# -------- WiFi Connect --------
print("Connecting WiFi...", end="")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
print(".", end="")
time.sleep(0.5)
print(" Connected!")
# -------- MQTT Connect --------
print("Connecting to Adafruit IO...", end="")
client = MQTTClient(
CLIENT_ID,
MQTT_BROKER,
port=MQTT_PORT,
user=AIO_USERNAME,
password=AIO_KEY
)
client.set_callback(on_message)
client.connect()
client.subscribe(LED_FEED)
print(" Connected!")
print("Waiting for LED commands...")
# -------- Main Loop --------
while True:
client.check_msg() # NON-BLOCKING
time.sleep(0.1)