3、设备管理基础:创建设备、设备配置、设备凭证、设备连接测试
好,咱们进入设备管理这一块。说实话,ThingsBoard 里最核心的操作就是跟设备打交道。你平台搭得再好,没有设备连上来,那就是个空壳子。这一节我带你手把手把设备从创建到连通的整个流程走一遍。
3.1 创建设备——别小看这一步
在 ThingsBoard 里创建设备,其实就两步:填个名字,选个类型。但我得提醒你,这里有个坑。
我个人习惯,在创建设备之前,先把设备 配置文件 想清楚。为什么?因为设备一旦创建,配置文件虽然能改,但有些传输类型的切换会带来麻烦。我在项目中遇到过,一个客户把 MQTT 设备创建成了 HTTP 默认配置,结果后面改配置时,设备凭证还得重新生成,折腾了半天。
操作路径很简单:左侧菜单 → 实体 → 设备 → 点右上角「+」号。
你会看到这样一个表单:
| 字段 | 说明 | 我的建议 |
|---|---|---|
| 设备名称 | 必填,唯一标识 | 建议用「项目_位置_功能」的命名法,比如「工厂A_车间1_温度传感器」 |
| 设备类型 | 可选,用于分组 | 按设备品类分,别按品牌分,后面做规则链时你就懂了 |
| 设备配置文件 | 核心!决定传输协议和数据规则 | 后面专门讲,这里先选默认 |
填完点「添加」,设备就生成了。嗯,就这么简单。但真正的工作才刚刚开始。
3.2 设备配置——这才是灵魂
设备配置,说白了就是告诉 ThingsBoard:「我这个设备该怎么通信、数据长什么样、要不要存历史记录」。
你点开刚才创建的设备,进入 设备配置 选项卡。这里你会看到几个关键设置:
- 传输配置:选 MQTT、CoAP 还是 HTTP。我个人强烈推荐 MQTT,除非你有特殊原因。为什么?MQTT 是长连接,实时性好,而且支持 QoS,丢包率低。
- 属性更新策略:设备上报属性时,是覆盖还是合并?我一般选合并,这样不会把其他属性冲掉。
- 告警规则:这里可以预设一些告警条件,比如温度超过 50 度就触发。不过我更习惯在规则链里做,灵活度更高。
3.3 设备凭证——设备进门的钥匙
设备凭证,你可以把它理解成设备的「身份证+密码」。没有它,设备连不上平台。
ThingsBoard 支持三种凭证类型:
- 访问令牌(Access Token):最简单,就是一个字符串。适合快速测试。
- X.509 证书:安全性最高,适合生产环境。
- MQTT 基本凭证:用用户名+密码,适合已有认证体系的场景。
我个人习惯,开发阶段用访问令牌,上线前换成证书。为什么?因为令牌泄露了,别人就能冒充你的设备。我在一个项目里就吃过这个亏——测试环境用的令牌忘了改,结果被扫到了,数据被乱发了一通。
查看凭证的方法:设备详情页 → 凭证 选项卡。默认创建设备时,系统会自动生成一个访问令牌。你可以复制它,也可以点那个铅笔图标去修改。
3.4 设备连接测试——验证一切是否正常
设备创建好了,配置也设了,凭证也拿到了。接下来就是真刀真枪地测试连接。
我一般用 MQTT 客户端工具来测试,比如 MQTTX 或者 mosquitto_pub。这里我演示用命令行方式:
# 假设你的 ThingsBoard 地址是 demo.thingsboard.io
# 设备凭证是:YOUR_DEVICE_TOKEN
# 发布遥测数据
mosquitto_pub -d -h demo.thingsboard.io -p 1883 \
-t "v1/devices/me/telemetry" \
-u "YOUR_DEVICE_TOKEN" \
-m '{"temperature": 25.5, "humidity": 60}'
# 发布属性数据
mosquitto_pub -d -h demo.thingsboard.io -p 1883 \
-t "v1/devices/me/attributes" \
-u "YOUR_DEVICE_TOKEN" \
-m '{"firmware_version": "1.0.1"}'
如果一切正常,你会看到类似 Received PUBACK 的响应。然后回到 ThingsBoard 的设备页面,刷新一下,在「最新遥测」选项卡里就能看到你刚发的数据。
这里有个常见问题:数据发上去了,但页面看不到。为什么会这样?
嗯,多半是 时区 或者 时间戳 的问题。ThingsBoard 默认用 UTC 时间,如果你设备端发的时间戳是本地时间,没做转换,那数据可能被归到「未来」或「过去」的时间段里,默认视图不显示。我建议设备端统一用 UTC 时间戳,或者干脆不传时间戳,让平台自己打时间。
3.5 避坑指南——我踩过的几个雷
最后,分享几个我实际项目中遇到的坑,你遇到了可以少走弯路:
- 凭证大小写敏感:访问令牌是区分大小写的。我曾经复制时多复制了一个空格,排查了半小时。
- MQTT 主题别写错:遥测是
v1/devices/me/telemetry,属性是v1/devices/me/attributes,别搞混了。我见过有人把遥测数据发到属性主题上,结果数据死活不显示。 - 防火墙端口:MQTT 默认 1883,如果用了 TLS 就是 8883。记得在服务器安全组里放开。有一次客户说连不上,我一查,端口没开。
- 设备配置文件的传输类型:如果你选了 MQTT,但设备实际用的是 HTTP,那数据是收不到的。创建前一定确认好。
好了,设备管理的基础操作就这些。你按这个流程走一遍,应该能顺利把第一个设备连上来。下一节我们聊设备配置文件的高级玩法,那个才是真正拉开差距的地方。