Пример кода

import network
import time
import json
import esp32

from mqtt import MQTTClient


SSID = ""
PASSWORD = ""

sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)


if not sta_if.isconnected():
    print("Connecting to Wi-Fi...")
    sta_if.connect(SSID, PASSWORD)
    while not sta_if.isconnected():
        pass

print("Connected to Wi-Fi")
print("IP address:", sta_if.ifconfig()[0])

mac = ':'.join('{:02x}'.format(b) for b in sta_if.config('mac'))


MQTT_BROKER = ""
CLIENT_ID = ""
TOPIC_SUB = ""
TOPIC_PUB = ""

def on_message(topic, msg):
    print("Received message:", msg.decode())


client = MQTTClient(CLIENT_ID, MQTT_BROKER)
client.set_callback(on_message)
client.connect()


client.subscribe(TOPIC_SUB.encode())
print("Subscribed to", TOPIC_SUB)

data = {}

try:
    while True:
        client.check_msg()
        data["temperature"] = esp32.raw_temperature()
        message = json.dumps(data).encode()
        client.publish(TOPIC_PUB.encode(), message)
        print("Published:", message)

        # Пауза
        time.sleep(5)
except Exception as e:
    print("Error:", e)
finally:
    # Отключение от брокера
    client.disconnect()