Skip to content

ESP8266 使用 MicroPython 接入 ThingsBoard ​

正文与配图来自原稿。板端用 MicroPython 写业务,经 WiFi + MQTT 把遥测报到 ThingsBoard。

1、概述 ​

当初需要学习 MicroPython:代码直接发到板子上就能跑。设备业务可由应用侧编写,嵌入式侧更多封装底层函数供调用。方案当时做通了,但公司未全面推广。

2、设备 ​

购买的是 ESP8266(某宝常见开发板)。MicroPython 官方也常推荐用该类板子入门。板子一般带教程,按教程学即可把 MicroPython 用熟。

3、推荐 ​

非广告。原稿使用的是「小蜜蜂」ESP8266 一类套件:带文档与视频,适合自学。

开发板示意 1

开发板示意 2

4、接入 ThingsBoard ​

学完后用 MicroPython 的 WiFi + MQTT 往 ThingsBoard 发消息。示例逻辑:

  1. STA 模式连 WiFi
  2. umqtt.simple.MQTTClient 连 TB 的 MQTT(默认 1883)
  3. 循环向 v1/devices/me/telemetry 发布 JSON 遥测

请把 WiFi、服务器地址、设备 Access Token(作 MQTT 用户名;密码可按你环境配置,常用 Token 作 username)改成自己的,不要提交真实密码到仓库。

python
import time
from umqtt.simple import MQTTClient
import network
import ujson
import random

print("开始连接网络......")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    # 改成你的 WiFi
    wlan.connect('YOUR_WIFI_SSID', 'YOUR_WIFI_PASSWORD')
    while not wlan.isconnected():
        pass

print("网络连接成功......")
print('ip:', wlan.ifconfig()[0])

print("开始创建MQTT客户端......")
# server:ThingsBoard 主机;user:设备 Access Token(按你 TB 版本/配置)
mqttclint = MQTTClient(
    client_id='esp8266',
    server='YOUR_THINGSBOARD_HOST',
    port=1883,
    user='YOUR_DEVICE_ACCESS_TOKEN',
    password='',  # 许多环境可留空,以你平台配置为准
    keepalive=60
)
mqttclint.connect()
print("MQTT客户端连接成功......")

temperature = 37.5
while True:
    temperature = temperature + 1
    payload = '{"temperature": %s}' % (temperature)
    print('send msg:', payload)
    mqttclint.publish(
        topic='v1/devices/me/telemetry',
        msg=payload,
        qos=1,
        retain=False
    )
    print("send msg success")
    time.sleep(3)

要点:

项说明
Topic设备遥测默认 v1/devices/me/telemetry
鉴权用设备 Access Token 作 MQTT 用户名(与 MQTTX 模拟设备相同思路)
库umqtt.simple(需烧录/安装支持 umqtt 的 MicroPython 固件)

在 TB 创建设备 → 复制 Token → 填进代码 → 烧录运行 → 在设备最新遥测中应能看到递增的 temperature。


补充(辅) ​

  • 固件需含 network、umqtt;可用 Thonny 等工具传 .py 到板子。
  • 公网 MQTT 建议后续改 8883 + TLS;内网调试可先用 1883。
  • client_id 多设备时勿冲突;Token 每设备唯一。
  • 平台侧规则链、告警等与 场景联动 相同,与板端语言无关。

相关文章 ​