import network
import time
from machine import Pin
from umqtt.simple import MQTTClient
# WiFi Wokwi
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""
# MQTT
MQTT_BROKER = "broker.emqx.io"
MQTT_PORT = 1883
CLIENT_ID = b"esp32_led_control"
TOPIC_LED = b"abdo/wokwi/led"
# LED sur GPIO 2
led = Pin(2, Pin.OUT)
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
print("Connexion WiFi...")
while not wlan.isconnected():
time.sleep(0.2)
print("WiFi connecte")
print(wlan.ifconfig())
def sub_cb(topic, msg):
print("Message recu:", msg)
if msg == b"ON":
led.value(1)
print("LED ALLUMEE")
elif msg == b"OFF":
led.value(0)
print("LED ETEINTE")
def connect_mqtt():
client = MQTTClient(CLIENT_ID, MQTT_BROKER, port=MQTT_PORT)
client.set_callback(sub_cb)
client.connect()
client.subscribe(TOPIC_LED)
print("Connecte au broker MQTT")
print("Abonne au topic:", TOPIC_LED)
return client
connect_wifi()
client = connect_mqtt()
while True:
client.check_msg()
time.sleep(0.1)