Appearance
入门介绍 ¶
MQTT基础知识 ¶
MQTT 全称是 Message Queuing Telemetry Transport,它是一种基于消息队列的轻量级应用层通信协议,实现了消息发布和订阅。设备可以作为客户端的形式通过它来发布和接收消息,实现数据上报和实时控制。设计用于具有低带宽的受限设备。因此,它是物联网设备接入的完美解决方案。您可以在此处找到有关 MQTT 的更多信息。
ThingsKit平台提供了标准的 MQTT 接入协议,支持 MQTT v3.1/v.5,任何支持 MQTT 协议的设备都可以通过相应的 MQTT 客户端代码接入云平台。
MQTT 身份认证 ¶
设备通过 MQTT 协议连接 平台时,需要完成基于 MQTT 的身份认证,平台支持以下认证方式。
普通认证方式 ¶
对于普通认证方式,在 MQTT 连接时,使用基于 username/password 的认证方式,需要用到设备的普通证书,如下:
MQTT 连接参数 | 值 | 说明 |
---|---|---|
username | AccessToken | 设备创建后自动生成,每个设备唯一,量产设备可通过 API 自动获取 AccessToken ,实现一型一密。 |
password | ProjectKey | 项目创建后自动生成,不支持修改。 |
clientId | 空或任意 | 不对 clientId 做任何限制,可随意填写。 |
要注意的是,ThingsKit对同一个设备身份信息只支持一个 MQTT 连接,也就是说,如果在两个或多个物理设备中,使用同样的 username/password 身份信息连接平台,即便 clientId 使用不同的字符串,平台仍然将这些连接视为同一个设备,这会导致后一个设备连接成功后会顶掉之前的设备连接。
X.509 TLS 认证方式 ¶
在一些对通信安全要求严格的物联网领域,比如智能门锁、电表、水表、燃气表等,您可以使用基于 X.509 TLS 的 MQTT 安全认证方式。
更进一步的物联网安全措施,可以在设备端集成 SE 安全芯片,或使用内置 SE 安全芯片的通信模组,实现设备和平台双向认证。
遥测上传接口 ¶
为了将遥测数据发布到 ThingsBoard 服务器,请将 PUBLISH 消息发送到以下主题:
v1/devices/me/telemetry
1
最简单的支持数据格式是:
{"key1":"value1", "key2":"value2"}
1
或者
[{"key1":"value1"}, {"key2":"value2"}]
1
提示
在这种情况下,服务器端时间戳将自动分配给上传的数据!
如果您的设备能够获取客户端时间戳,您可以使用以下格式:
{"ts":1451649600512, "values":{"key1":"value1", "key2":"value2"}}
1
控制接口RPC调用 ¶
服务器端调用RPC ¶
为了从服务器订阅 RPC 命令,发送 SUBSCRIBE 消息到以下主题:
v1/devices/me/rpc/request/+
1
客户端调用 RPC ¶
为了向服务器发送 RPC 命令,向以下主题发送 PUBLISH 消息:
v1/devices/me/rpc/request/$request_id
1