轻量级物联网通信的完美组合
MicroPython 是 Python 3 的精简高效实现,专为微控制器和受限环境设计。它支持 ESP32、ESP8266、Raspberry Pi Pico 等主流开发板,让开发者能用熟悉的 Python 语法快速构建嵌入式应用。
MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,专为低带宽、不稳定网络环境下的物联网设备通信而设计。其核心优势包括:
MicroPython 社区提供了 umqtt.simple 或 umqtt.robust 库,可轻松连接 MQTT 服务器(如 Mosquitto、EMQX、HiveMQ 或免费的公共代理)。
# main.py
import network
from umqtt.simple import MQTTClient
import time
# 连接 Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("你的WiFi名称", "你的WiFi密码")
while not wlan.isconnected():
time.sleep(1)
print("Wi-Fi 已连接,IP:", wlan.ifconfig()[0])
# 配置 MQTT
SERVER = "broker.hivemq.com" # 公共测试服务器
CLIENT_ID = "micropython-device"
TOPIC = b"test/micropython"
def sub_callback(topic, msg):
print("收到消息:", topic, msg)
client = MQTTClient(CLIENT_ID, SERVER)
client.set_callback(sub_callback)
client.connect()
client.subscribe(TOPIC)
# 发布一条消息
client.publish(TOPIC, b"Hello from MicroPython!")
# 循环监听
try:
while True:
client.check_msg()
time.sleep(1)
except KeyboardInterrupt:
client.disconnect()
broker.hivemq.com(端口 1883)