import network
import time
from umqtt.simple import MQTTClient
# WiFi Configuration
WIFI_SSID = 'Wokwi-GUEST'
WIFI_PASSWORD = ''
# MQTT Broker Configuration
BROKER = 'broker.emqx.io'
PORT = 1883
TOPIC = b'test11'
CLIENT_ID = b'wokwi-subscriber'
# Connect to WiFi
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
print('š Connecting to WiFi...', end='')
while not wlan.isconnected():
print('.', end='')
time.sleep(0.5)
print('\nā
Connected to WiFi')
# Callback when message is received
def message_callback(topic, msg):
print(f'š© Received from {topic.decode()}: {msg.decode()}')
# Main logic
def main():
connect_wifi()
client = MQTTClient(CLIENT_ID, BROKER, PORT)
client.set_callback(message_callback)
client.connect()
print('ā
Connected to MQTT Broker')
client.subscribe(TOPIC)
print(f'š” Subscribed to topic: {TOPIC.decode()}')
try:
while True:
client.wait_msg() # Blocking wait for message
except KeyboardInterrupt:
print('š Stopping subscriber')
finally:
client.disconnect()
# Run the subscriber
main()