Skip to content

设备数据上报

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-BasedJWTSCRAM三种认证方式(当前版本仅支持Password-Based ),下面演示使用Password-Based

下面展示使用MQTT客户端工具模拟设备链接云平台,用到的参数如下:

参数
usernamedeviceID
passworddeviceToken
clientIddeviceID
Topic(发布主题)monitor

deviceIDdeviceToken可在设备详情页取得。 在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  
		}
}

这样就可以同时上传多个子设备数据。

通过HTTP上报数据