import network
import time
from umqtt.simple import MQTTClient
# Wi-Fi credentials
ssid = "Wokwi-GUEST"
password = ""
# HiveMQ Broker details
broker = "broker.hivemq.com"
client_id = "esp32_subscriber"
topic = "testnkp123"
# Wi-Fi connection
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
print("Connecting to WiFi...")
time.sleep(1)
print("Connected to WiFi:", wlan.ifconfig())
# Callback function for received messages
def sub_cb(topic, msg):
print("Received message:", msg.decode())
# MQTT subscribe function
def mqtt_subscribe():
client = MQTTClient(client_id, broker)
client.set_callback(sub_cb)
client.connect()
client.subscribe(topic)
print("Subscribed to topic:", topic)
while True:
client.wait_msg() # Wait for a message
client.disconnect()
# Main execution
connect_wifi()
mqtt_subscribe()