设备数据上报
IOT-Hub-Node支持多种设备接入协议,这里我们分别以常用的 HTTP 和 MQTT 协议为例展示数据上报流程与规范:
通过MQTT上报数据
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布-订阅模式的通信协议,主要应用于物联网(IoT)领域中设备间的通信。
IOT-Hub-Node 使用开源的EMQX作为MQTT 消息服务器,关于EMQX不再提及,安装部署部分已有明确说明,这里我们只需要关注MQTT协议本身。
我们在IOT-Hub-Node设备页面的连接中可以找到MQTT接入点链接,如下:
mqtt://<域名>:1883
链接的意思是,服务器主机域名为<域名>
,端口为1883
。(均可在部署环节自定义)
MQTT设备鉴权支持 Password-Based
、JWT
、SCRAM
三种认证方式(当前版本仅支持Password-Based
),下面演示使用Password-Based
。
下面展示使用MQTT客户端工具模拟设备链接云平台,用到的参数如下:
参数 | 值 |
---|---|
username | deviceID |
password | deviceToken |
clientId | deviceID |
Topic(发布主题) | monitor |
deviceID
和deviceToken
可在设备详情页取得。 在IOT-Hub-Node中monitor
是统一的设备属性上报主题,所有的设备属性都通过该主题上报。
上报内容的格式为json
,例如:
json
{
"data-1": 34
}
也可以同时上报多个数据例如:
json
{
"data-1": 34,
"data-2": 1 ,
"data-3": 45
}
上述格式适用于直连子设备,网关设备类似,但是消息格式需要更改为:
json
{
"device1ID":
{
"data-1": 34
},
"device2ID":
{
"data-1": 34,
"data-2": 1 ,
"data-3": 45
}
}
这样就可以同时上传多个子设备数据。