import network
import time
from umqtt.simple import MQTTClient
import ubinascii
import machine
# WiFi settings
SSID = "Wokwi-GUEST"
PASSWORD = ""
# MQTT settings
MQTT_BROKER = "broker.hivemq.com"
MQTT_TOPIC = b"KT/KPT/001"
CLIENT_ID = ubinascii.hexlify(machine.unique_id())
# Callback when a message is received
def sub_cb(topic, msg):
print("[Subscriber] Received:", msg.decode(), "from topic", topic.decode())
# Connect WiFi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print("Subscriber Connected to WiFi:", wlan.ifconfig())
# MQTT client setup
client = MQTTClient(CLIENT_ID, MQTT_BROKER)
client.set_callback(sub_cb)
client.connect()
client.subscribe(MQTT_TOPIC)
print("Subscriber connected to MQTT broker and subscribed to", MQTT_TOPIC.decode())
# Keep listening
while True:
client.check_msg() # Non-blocking check for new messages
time.sleep(1)