来自:pangyu > 馆藏分类
配色: 字号:
MCU通过NB模组LWM2M方式连接ONENET 实践
2023-05-28 | 阅:  转:  |  分享 
  
MCU通过NB模组LWM2M方式连接ONENET 实践前言, ONEnet 连接协议众多, 但是对LWM2M介绍不祥, 大多实践以MQTT为
例. 介绍LWM2M时又以IPSO数据协议为例. IPSO的问题在于无法实现LBS定位所需的ONEJSON. 所以就有一个办法比较
合适, 那就是自定义数据格式, 这种模式下, MCU通过AT指令传输字符串, onenet服务器中转的时候,先用我们提供的脚本翻译
为onejson,再解析后更新到服务器上的设备数据库.我们知道LWM2M是通过 ObjectID, InstanceID,Reso
ureID,来对应数据的. 自定义数据协议就是通过特定的ObjectID=20 来实现的, =19是给ONEJSON用的, 但是不
知道如何把Onejson套进AT命令里面.ONENET目前还在不断升级调整的过程中. 每一次大调整就导致服务IP也发生变化, 这个
要明察. 前一段时间还在推行STUDIO, 我还没搞懂,现在又说推行开放物联网平台. 但新平台又有不完善的地方, 所以我调试还是依
靠STUDIO, 搞懂了再过渡到新平台吧.产品创建 (STUDIO)注意, LBS定位属于系统功能,其他属于标准功能. 要实现LB
S,目前只有POST ONEJSON的方式. 注意到上面有数据解析, 这里是做转换json的脚本. 可以从开发文档, 自定义数据格
式的最佳实践文档里面找例程.LBS_WIFI例子:{"id":"1","params":{"$OneNET_LBS_WIFI":{
"time":1684970695109,"value":{"mmac":"","macs":"38:ad:be:e9:f7:f7
,-56|38:ad:be:e9:f7:f7,-56|38:ad:be:e9:f7:f7,-56","idfa":"","serv
erip":"","smac":"","imsi":""}}},"version":"1.0"}这里id 的值不重要. Time的
值是系统值. 我在脚本里面没写这一项也会产生.在脚本草稿编写完成后,可以先模拟, 保存并发布后,可以用NB模组测试了.设备属性上报
AT+MIPLCONFIG=0,1,0,"183.230.102.118",5683\r\n ---studio的ipAT+MIP
LCREATE\r\nAT+MIPLADDOBJ=0,20,2,"11",1,1\r\n // 注: 2,"11" 2个资源;
1,1=1个属性很关键0不行,1个可执行, 20必须用2个资源,如前言所述.AT+MIPLOPEN=0,86400\r\n
用收到的msgid回应OBSERVER. 因为是两个instance,所以将会收到两次:+MIPLOBSERVE: 0,10581
0,1,20,0,-1+MIPLOBSERVE: 0,171347,1,20,1,-1注意到: 105810对应inst0 171
347对应inst1分别回应它AT+MIPLOBSERVERSP=0, 105810,1\r\nAT+MIPLOBSERVERSP
=0,171347,1\r\n通知属性变化 用的是inst0的msgidAT+MIPLNOTIFY=0,118172,20,0,0
,2,9,010338adbee9f7f7c8,0,0,255\r\n解释: 2代表接下来的字符串是16进制的,不必要加双引号,
9代表字符串长度(两个符号才占一个长度), 字符串后面是: 多条消息的话剩余几条; 多条数据开头的结尾的还是中间的; 是否回应 E
VENT 26 相应的数字.数据上传服务器后, 可以通过 运维监控的日志查看, 也可通过设备管理查看当前各属性.服务器对设备设置属
性在 运维监控-设备调试 里面选择产品和设备,然后选择 应用模拟, 如果产品属性里面含有可读写的物模型, 则会出现在 属性设置页里
面, 这里更改了属性就可以 点下面属性设置按钮, 右边会展示日志., 设备会收到 +MIPLWRITE: 0,40279,20,1,0,2,4,xxxx,0,0, 设备回复后, 整个过程结束. 可以查看设备日志核实.
献花(0)
+1
(本文系pangyu原创)