MQTT自定义透传_DTU连接阿里云

阿里云物联网平台定义的标准数据格式为Alink JSON。对于低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信,可将原数据透传到物联网平台。物联网平台提供数据解析功能,可以根据您提交的脚本,将数据在设备自定义格式和JSON格式之间转换。

自定义透传适合的场景为采用廉价单片机、功能比较弱的DTU方案,这些DTU对json这种格式解析可能比较费劲。

一、新建产品

1.新建产品

我们选择“自定义品类”,节点类型为“直连设备”,最重要的是数据格式一定要选择“透传/自定义”。

MQTT自定义透传_DTU连接阿里云

 2.添加功能

MQTT自定义透传_DTU连接阿里云

 3.编写解析脚本

MQTT自定义透传_DTU连接阿里云

 

var COMMAND_REPORT = 0x00;
var COMMAND_SET = 0x01;
var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //标准ALink JSON格式topic, 设备 上传属性数据到 云端
var ALINK_PROP_SET_METHOD = 'thing.service.property.set'; //标准ALink JSON格式topic, 云端 下发属性控制指令 到设备端

/**
 * 将设备自定义topic数据转换为json格式数据, 设备上报数据到物联网平台时调用
 * 入参:topic   string 设备上报消息的topic
 * 入参:rawData byte[]数组 不能为空
 * 出参:jsonObj JSON对象 不能为空
 */
function transformPayload(topic, rawData) {
	var jsonObj = {};
	return jsonObj;
}   

/**
 * 将设备的自定义格式数据转换为Alink协议的数据,设备上报数据到物联网平台时调用
 * 入参:bytes byte[]数组 不能为空
 * 出参:jsonMap Alink JSON对象 不能为空
 */
function rawDataToProtocol(bytes) {
	var uint8Array = new Uint8Array(bytes.length);
	for (var i = 0; i 

二、配置dtu

如下图所示记录好平台的如下几个连接参数

ProductKey

DeviceName

DeviceSecret

mqttHostUrl

port

订阅Topic

发布Topic

MQTT自定义透传_DTU连接阿里云

MQTT自定义透传_DTU连接阿里云  

我们要用到的topic为物模型通信Topic,打开产品详情,并选择Topic类列表-物模型通信Topic,我们需要的是下面红框内的这两个topic

MQTT自定义透传_DTU连接阿里云

 

配置DUT三要素及通信参数

按如下次序操作设置DTU,并将上面记录的通信参数对应填入。

MQTT自定义透传_DTU连接阿里云

 

三、测试上传

先发一个初始数据000320f2e30000000001(注意使用十六进制发送)

MQTT自定义透传_DTU连接阿里云

 阿里云状态变更

MQTT自定义透传_DTU连接阿里云

 上报一条新的000320f2e30000000500

MQTT自定义透传_DTU连接阿里云

 状态立即更新

MQTT自定义透传_DTU连接阿里云

 

四、测试下发

找到监控运维,在线调试,我们在属性调试内设置好属性数据然后点击“设置”下发一条指令

MQTT自定义透传_DTU连接阿里云

 

设备端收到的数据如下(注意:记得选择十六进制显示不然是乱码)

MQTT自定义透传_DTU连接阿里云

 本文参考自:dtu阿里云自定义透传 (openluat.com)

本文章来源于互联网,如有侵权,请联系删除!原文地址:MQTT自定义透传_DTU连接阿里云

相关推荐: 正达信通ZedaIOT物联网平台设备管理功能浅析

Zeda IOT物联网平台是一个旨在降低物联网开发与实施的门槛,让非程序员、 非软件实施岗位可以自主搭建的低代码平台,帮助开发者轻松实现设备接入与设备连接,提供综合性的物联网解决方案,实现物联设备的数据接入、存储、展示。 Zeda IOT物联网平台的设备资产管…