非调试阶段,日志等级请调到ERROR以上,减少日志输出
阿里云物联网平台支持三种接入认证方式,分别是
下面分别介绍三种认证方式的配置,配置页面如下图

通用属性包含:
/sys/${productid}/${deviceName}/thing/event/property/post_reply;0 /sys/${productid}/${deviceName}/thing/service/property/set;0/sys/${productid}/${deviceName}/thing/event/property/post
自动注册需要填写三个参数
ProductKey: 产品ID
来源:阿里云物联网后台,产品信息

AccessKey ID
Access Key Secret
AccessKey 来源:

一型一密方式适合对一种产品的全部设备进行配置,需要配置的参数有:


一机一密需要给每个设备单独配置密钥,需要配置的参数有
获取方式为点击阿里云物联网后台对应设备详情,点击查看获取


主题的配置格式为 {topic};qos
/sys/${productid}/${deviceName}/thing/event/property/post_reply;0 /sys/${productid}/${deviceName}/thing/service/property/set 阿里云物联网物模型支持的主题:

DTU默认配置订阅主题为:
/sys/${productid}/${deviceName}/thing/event/property/post_reply;0
/sys/${productid}/${deviceName}/thing/service/property/set;0
/sys/a12rinVjYRa/${deviceName}/thing/service/#/sys/a12rinVjYRa/${deviceName}/thing/service/${tsl.service.identifier}_reply/sys/${productid}/${deviceName}/thing/event/property/post_reply;0 /sys/${productid}/${deviceName}/thing/service/property/set;0 /sys/${productid}/${deviceName}/thing/service/test1;0 /sys/${productid}/${deviceName}/thing/service/test2;0 /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/+DTU默认发布主题为属性上报:
/sys/${productid}/${deviceName}/thing/event/property/post
属性上报
/sys/{productKey}/{deviceName}/thing/event/property/post/sys/{productKey}/{deviceName}/thing/event/property/post_reply{
"id": "123",
"version": "1.0",
"params": {
"Power": {
"value": "on",
"time": 1524448722000
},
"WF": {
"value": 23.6,
"time": 1524448722000
}
},
"method": "thing.event.property.post"
}
属性设置
/sys/{productKey}/{deviceName}/thing/service/property/set/sys/{productKey}/{deviceName}/thing/service/property/set_reply (无需回复,没有内置此发布主题){
"id": "123",
"version": "1.0",
"params": {
"temperature": "30.5"
},
"method": "thing.service.property.set"
}
设备服务调用(异步调用)
/sys/{productKey}/{deviceName}/thing/service/{tsl.service.identifier}/sys/{productKey}/{deviceName}/thing/service/{tsl.service.identifier}_reply{
"id": "123",
"version": "1.0",
"params": {
"Power": "on",
"WF": "2"
},
"method": "thing.service.{tsl.service.identifier}"
}
id必须和下发指令一致,平台才能识别identifier和消息id;/{tsl.service.identifier}_reply响应主题,发送后会把服务标记置0,此时若MCU继续上传数据,会上传到属性上报主题;设备服务调用(同步调用)
/sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId}/sys/${YourProductKey}/${YourDeviceName}/rrpc/response/${messageId}sys/${YourProductKey}/${YourDeviceName}/rrpc/request/+首先在阿里云物联网平台新建了以下产品
主题订阅配置:
/sys/${productid}/${deviceName}/thing/event/property/post_reply;0
/sys/${productid}/${deviceName}/thing/service/property/set;0
/sys/${productid}/${deviceName}/thing/service/test;0
主题发布配置:
/sys/${productid}/${deviceName}/thing/event/property/post
针对继电器触点属性NO进行调试,MCU上传数据, id建议使用时间戳或者随机数:
{
"id": "123",
"version": "1.0",
"params": {
"NO": {
"value": 1,
"time": 1524448722000
}
},
"method": "thing.event.property.post"
}
收到服务器响应:
{"code":200,"data":{},"id":"123","message":"success","method":"thing.event.property.post","version":"1.0"}
查看响应

test进行调试,打开平台设备在线调试:
{"a":1},点击下发,查看MCU从串口1收到的消息{"method":"thing.service.test","id":"411202337","params":{"a":1},"version":"1.0.0"}[2020-11-29 18:07:32.546] [I]-[订阅的消息:] /sys/a12rinVjYRa/867435056834997/thing/service/test{
"id": "411202337",
"code": 200,
"data": {
"b": 4
},
"method": "thing.service.test_reply"
}
查看luatool的DTU日志[2020-11-29 18:10:20.240] [I]-[-----发布的主题:] /sys/a12rinVjYRa/867435056834997/thing/service/test_reply
{
"id": "12345",
"version": "1.0",
"params": {
"NO": {
"value": 10
}
},
"method": "thing.event.property.post"
}
查看luatools打印日志[2020-11-29 18:13:09.816] [I]-[-----发布的主题:] /sys/a12rinVjYRa/867435056834997/thing/event/property/post{
"id": "411202337",
"code": 200,
"data": {
"b": 8
},
"method": "thing.service.test_reply"
}
回复的参数变成了8,消息id还是前一次服务调用的id。查看luatool日志:[2020-11-29 18:18:12.469] [I]-[-----发布的主题:] /sys/a12rinVjYRa/867435056834997/thing/service/test_reply
同步服务调用和异步使用完全一致,只是有了8S的响应时间限制。
点击下发同步服务指令

MCU收到信息:
{"method":"thing.service.ttt","id":"1701854858","params":{},"version":"1.0.0"}
查看luatools打印日志
[2020-11-29 18:23:16.516] [I]-[订阅的消息:] /sys/a12rinVjYRa/867435056834997/rrpc/request/1332993514417689600
此时需要在超时前响应数据, MCU响应:
{
"id": "1701854858",
"code": 200,
"data": {
"c": 8
},
"method": "thing.service.ttt_reply"
}
查看DTU日志:
[2020-11-29 18:23:19.667] [I]-[-----发布的主题:] /sys/a12rinVjYRa/867435056834997/rrpc/response/1332993514417689600
查看平台响应


使用MODBUS功能之前,要先对串口参数,网络通道参数等进行设置。
1、配置串口参数

ZL-LTE-400 485 串口通过串口 1 进行通讯,案例中波特率为 9600bit/s
2. 配置网络通道参数
网络通道参数配置包含:TCP、UDP、HTTP、MQTT、P2P、OneNET、Aliyun、DevelopLink、TxIOT 等通道类型,不在这里展开,详情请见相关文档。此处选择Aliyun
注意这里常见错误,网络通道数据源要选modbus的定义数据源,一般是自定义1,注意填写ProductKey、DeviceSecret、DeviceName一定不要出错

3. MODBUS 配置
详细的配置说明见Modbus采集使用指南

注意与配置的传感器id要一致

查询日志,可以看到发布的json报文{}
[10:6:50.712]I/app.modbus pub msg1 {"services":[{"data":{"alarmLV":"0","Temp":"29.0"},"serviceId":"THLiveData"},{"data":{"Hum":"72","alarmLV":"0"},"serviceId":"THLiveData"}]}
上行数据的包装

阿里云平台数据显示

若配置成功后没有数据,检查如下原因: