目前只有Air780支持,固件版本等于大于V1.1.1。
使用任何平台本质都是MQTT协议协议通讯,这个难点是搞清楚平台的通讯规则,理清楚订阅topic,发布topic和数据格式(物模型)。
DTU目前是解决了平台基本的连接和交互问题,根据教程连接平台后,在实际实现自己的业务上用不起来。这个本质的原因是不清楚平台如何使用,平台需要的topic和物模型数据格式不清楚导致的。所以基本步骤测试完成后就要研究平台的文档和询问平台的技术支持,清楚topic和数据格式后,在继续下一步结合银尔达的技术支持,让DTU按自己业务需求上传和解析数据。
一、工具简介
DTU配置平台:https://dtu.yinerda.com
DTU测试平台:http://test.yinerda.com
串口测试软件:"YEDTestTools"软件,或者任意自己熟悉的串口调试软件。
USB转串口调试工具:"YED-UUART-211",集成电源,TTL,RS232,RS485专门为设备调试设计,或者任意自己熟悉的串口调试工具。
二、必要条件
2.1、如果您是首次使用DTU配置平台,请先参考《WEB配置入门教程》进行操作,包括设备的添加、分组的创建以及设备在分组中的分配。随后,依据本页指南完成云平台的参数设置及建立连接。
2.2、设备接上天线,插上卡,正常10W电源供电,NET LED 500ms或者1000ms闪烁一次,表示网络正常。
三、视频教程
此处为语雀视频卡片,点击链接查看:移动云平台透传测试演示v2.mp4
四、创建产品
进入连接:https://open.iot.10086.cn。整体流程是创建产品,配置参数,更新参数,使用任务处理topic。
3.1、创建产品

根据需求选择,这里选择产品品类为"其他行业",选择智能化方式为“设备接入”。


写信息,选择直连设备,MQTT协议,OneJson,蜂窝,自定义方案。

3.2、获取产品ID和access_key
进入产品开发,获取 产品ID 和access_key参数,这2个参数需要填写到DTU里面。


3.3、创建物模型
可以使用标准的物模型产品,也可以自己定义数据点。
定义一个属性类型,temperature 浮点数据,范围-100~200。

定义一个服务类型,open,里面输入参数继电器1,继电器2


在输出参数里面,添加继电器1状态

最终的物模型界面如图,点击保存生效。


3.3、topic介绍说明

物模型topic数量很多,根据需求去选择。
topic中{device-name} 是一个占位符,要替代实际的设备ID。都建议使用IMEI,${IMEI}自动提供IMEI号,方便管理和处理。
$sys/K03lYKYzhx/{device-name}/thing/property/post 实际使用的时候用把{device-name}换成${IMEI}
$sys/K03lYKYzhx/${IMEI}/thing/property/post 使用${IMEI}自动替换。
常用的topic
| topic | 权限 | 用途 | 备注 |
| $sys/K03lYKYzhx/{device-name}/thing/property/post | 发布 | 直连设备上报属性 | |
| $sys/K03lYKYzhx/{device-name}/thing/property/post/reply | 订阅 | 直连设备上报属性响应 | 不必须 |
| $sys/K03lYKYzhx/{device-name}/thing/event/post | 发布 | 直连设备上报事件 | |
| $sys/K03lYKYzhx/{device-name}/thing/event/post/reply | 订阅 | 不必须 | |
| $sys/K03lYKYzhx/{device-name}/thing/property/set | 订阅 | 设置直连设备属性 | |
| $sys/K03lYKYzhx/{device-name}/thing/property/set_reply | 发布 | 直连设备属性设置响应 | |
| $sys/K03lYKYzhx/{device-name}/thing/property/get | 订阅 | 平台获取直连设备的属性 | |
| $sys/K03lYKYzhx/{device-name}/thing/property/get_reply | 发布 | 直连设备回复平台获取设备属性 |
3.4、自动注册
自动注册设备,开启自动注册个功能,设备使用IMEI编号自动注册,方便管理设备。不开启自动注册,也建议设备使用IMEI作为设备名字,方便后续管理。

五、入门配置参数
5.1、根据产品配置参数
topic说明参考官方资料:https://open.iot.10086.cn/doc/v5/fuse/detail/920
订阅topic可以订阅一些常用的topic,注意产品ID需要替换成自己的。比如实际使用的时候用把{device-name}换成${IMEI}
$sys/K03lYKYzhx/${IMEI}/thing/property/set;$sys/K03lYKYzhx/${IMEI}/thing/property/get
发布topic:
$sys/K03lYKYzhx/${IMEI}/thing/property/post

5.2、更新参数
配置完参数后,点击保存参数,断电重启设备,等待设备更新参数。
如果你只有一台设备,可以在分组里面,观察未更新设备数量,如果是0表示更新。

如果有多台设备,可以在设备列表里面查看,当“分组参数版本” 等于“设备参数版本”,表示参数更新了。

5.3、观察服务器连接情况
如果参数正确,移动平台会使用IMEI自动创建设备,并且自动激活。可以在设备接入管理,设备管理里面查询。

5.4、服务器发送数据到串口
设备列表,进入详情,进入设备调试,引用模拟器,可以设置属性,获取属性,服务调用。平台发送设置属性的数据,串口能收到数据,由于还没启动任务,所以无法自动打印接收topic名称。也无法自动应答服务器,导致服务器会推送下发数据失败。通过调试数据




5.5、串口透传数据到服务器
云平台必须是json格式,并且需要符合Onejson格式。官方资料参考:
https://open.iot.10086.cn/doc/v5/fuse/detail/902
串口上传的时候,把json压缩后上传。或者使用任务的方式,在任务里面处理数据格式。
上报我们创建的温度“temperature”属性数据为:
{"id":"123","version":"1.0","params":{"temperature":{"value":10.1}}}



通过上面的创建产品和入门参数配置,就基本了解平台的使用方法和数据上报方法。如果要使用好移动平台就需要去研究平台的文档和询问平台的技术支持。本质上是弄清楚订阅的topic,发布的topic和物模型的格式。很多人不会用其实是根本不懂平台的使用方法导致。比如不清楚移动的物模型数据格式是什么,这个可以询问移动的平台技术支持和看文档。
六、服务器下发控制命令
在实际使用移动平台的时候,要具体做业务逻辑,比如采集温度上报到服务器显示;服务器下发命令控制设备的继电器开和关动作等。这需要理清楚平台topic和物模型格式后,配合任务解析数据,然后控制设备。
topic和物模型说明参考官方资料:https://open.iot.10086.cn/doc/v5/fuse/detail/920
可以参考高级教程:
此处为语雀内容卡片,点击链接查看:https://yinerda.yuque.com/yt1fh6/4gdtu/othr4tr8a3w6n4zf#
七、任务实现topic名字和数据透传
本教程是用纯串口的通讯的方式,MCU发布topic名字和数据,4G模块透传给服务器。服务器下发的数据4G模块把收到的topic名字和数据透传给MCU。所有的组装数据逻辑和解析数据逻辑都在MCU上面完成。这种灵活方便。
使用前提也是要理清楚平台topic和物模型格式 要不然很难理解。
topic和物模型说明参考官方资料:https://open.iot.10086.cn/doc/v5/fuse/detail/920
本任务实现是DTU透传topic名字+,+数据给串口。串口发送topic名字+,+数据指定topic给服务器。下面demo直接拷贝到任务就能用。MCU可以通过收到的topic名字处理解析数据,组织topic名字应答服务器。
topic中的device-name就是模块的IMEI,可以通过config,get,imei获取。
function
local taskname="userTask"
log.info(taskname,"start")
local nid=1
local uid=1
PronetStopProRecCh(1)
UartStopProRecCh(1)
PronetMqttProReciveTopic(nid,1,",")
while true do
local netr = PronetGetRecChAndDel(nid)
if netr then
log.info(taskname,"netr",netr)
UartSetSendCh(uid,netr)
end
local uartr = UartGetRecChAndDel(uid)
if uartr then
log.info(taskname,"uartr",uartr)
local netsta = PronetGetNetSta(nid)
log.info(taskname,"netsta",netsta)
if netsta ==1 then
local a1 ,a2 = string.find(uartr,",")
if a1 and a1~=1 and a2 then
local ccc={}
ccc[1]=string.sub(uartr,1,a1-1)
ccc[2]=string.sub(uartr,a1+1,-1)
log.info(taskname,"send data topic is ",ccc[1],"data is ",ccc[2])
PronetSetSendCh(nid,ccc)
end
end
end
sys.wait(100)
end
end
把上面的任务拷贝到DTU的任务里面,保存参数,重启设备更新参数就可以开始测试了。
服务器下发数据,4G 模块把收到的topic和数据,透传topic名字和数据给MCU(串口)

MCU(串口)组装topic名字和物模型数据后发给4G DTU,DTU透传到服务器显示数据和状态

指定topic发布的数据是:$sys/K03lYKYzhx/869020068395167/thing/property/post,{"id":"123","version":"1.0","params":{"temperature":{"value":-52.1}}}
Air780 DTU配置平台入门教程
1177

被折叠的 条评论
为什么被折叠?



