文章目录
- 前言
- 一、测试准备
- 1、硬件准备
- 2、云平台准备
- 二、云平台连接
- 1.注册入网
- 2.读取IMSI及IMEI
- 3.利用IMSI及IMEI创建设备
- 4.LwM2M连接云平台设备
- 三、 数据互交
- 1.AT+MIPLNOTIFY 通知属性变化
- 2.AT+MIPLREADRSP 返回读取结果
- 3.AT+MIPLWRITERSP 发送写入结果
- 4.AT+MIPLEXECUTERSP 发送执行结果
- 四、在线添加对象及删除对象
- 1.在线添加对象
- 2.在线删除对象
- 五、关闭连接及删除实例
- 六. 联系我们
前言
LwM2M作为一种轻量级的、标准通用的物联网设备管理协议,主要面向基于蜂窝的窄带物联网场景下的应用。EC系列模组作为NB-IoT,自然也是支持的,在使用LwM2M之前,需要事先了解一下相关指令,本次所使用云平台是OneNET,因此使用的是OneNET的扩展指令:
EC系列资料中心(包含AT指令):https://docs.ai-thinker.com/nb-iot
指令列表:AT+MIPLCONFIG 配置命令 AT+MIPLCREATE 创建实例 AT+MIPLDELETE 删除实例 AT+MIPLOPEN 发送注册请求 AT+MIPLCLOSE 发送注销请求 AT+MIPLADDOBJ 添加对象 AT+MIPLDELOBJ 删除对象 AT+MIPLNOTIFY 通知属性变化 AT+MIPLREADRSP 返回读取结果 AT+MIPLWRITERSP 发送写入结果 AT+MIPLEXECUTERSP 发送执行结果 AT+MIPLOBSERVERSP 发送观察结果 AT+MIPLUPDATE 更新注册信息 AT+MIPLVER 返回当前版本号
以上指令的说明,请自行到资料中心的AT指令说明文档中查询。
一、测试准备
1、硬件准备
- EC系列开发板
- 正常使用的NB sim卡
- NB频段的天线
2、云平台准备
目前,作者只了解到支持LwM2M协议接入的只有中国移动的OneNET平台 以及电信的天翼物联网平台。
本文主要是讲述如何利用AT指令连接云平台,不相信讲述平台产品和设备的创建。
在平台验证产品需要验证IMSI以及IMEI,需要使用以下指令获取:
AT+CIMI 获取 IMSI
AT+CGSN=1 获取IMEI序列号
二、云平台连接
本文连接的云平台是中国移动的OneNET 平台。电信平台也可以参考本文进行接入。
中国移动 OneNET平台链接:https://open.iot.10086.cn/studio/summary
1.注册入网
EC系列模组是接入到广域网中,所以第一次使用需要发送指令注册网络。指令列表:
AT+CGATT=1\r\n
AT+CGDCONT=1,"IP","CMNBIOT1"\r\n
AT+CGACT=1\r\n
AT+CREG=1\r\n
AT+CREG?
AT+CREG?
网络注册状态查询,返回值的意思如下:
- 0 没有注册网络,MT没有搜索新的网络
- 1 已注册到本地网络 (不适用于NB)
- 2 没有注册网络,MT正在搜索新的网络
- 3 注册被拒绝
- 4 未知(例如 超出GERAN/UTRAN/E-UTRAN覆盖范围)
- 5 成功注册漫游网络 (不适用于NB)
- 6 已注册到"SMS only"网络(仅适用于在为E-UTRAN时)
- 7 已注册到"SMS only"漫游网络(仅适用于在为E-UTRAN时)
- 8 仅附着到紧急呼叫服务 (不适用于NB).
- 9 已注册到"CSFB not preferred"网络 (不适用于NB)
- 10 已注册到"CSFB not preferred"漫游网络(不适用于NB).
注册成功的返回值应该是:+CREG:0,6
2.读取IMSI及IMEI
使用以下指令可以读取:
AT+CIMI\r\n
AT+CGSN=1\r\n
结果如下:
3.利用IMSI及IMEI创建设备
本文所使用的是OneNET旧版平台,因为模组对旧版OneNET平台做了适配,OneNET Studio 没有适配。创建设备时,只需要输出带星的信息即可,即:
- 设备名称 ——可以随便填写
- IMEI ——使用:AT+CGSN=1 查询
- IMSI——使用:AT+CIMI查询
4.LwM2M连接云平台设备
创建实例
AT+MIPLCREATE\r\n
AT+MIPLCREATE 执行成功后会返回一个实例id 如:
+MIPLCREATE:0
添加对象
我们需要在发送注册之前,添加对象,这样才能在平台自定义属性,首先,我们要知道OneNET的对象及属性是什么。下面的连接可以了解OneNET的对象和属性:https://open.iot.10086.cn/doc/v5/develop/detail/134。下面以3310
为例添加以下对象:
指令为:
AT+MIPLADDOBJ=0,3310,5,"00001",5,5\r\n
其中,
0
是AT+MIPLCREATE 返回的值,3310
为对象id ,5
为对象的实例数量,00001
为可用只有第一个,5
有5个属性,最后的5
为操作5个属性
发送注册请求
AT+MIPLOPEN=0,3600,30\r\n
注册成功如下:
与此同时,云平台设备也会处于在线状态
返回订阅结果
在注册成功之后,会有三条:+MIPLDISCOVER
的信息下发,其中的第二参数就是msgid
,需要在这三条信息发完之前,发送订阅到OneNET,不然我们会配置失败
AT+MIPLOBSERVERSP=0,msgid,1\r\n
发送对象属性
在注册成功之后,会有三条:+MIPLDISCOVER
的信息下发,其中的第二参数就是msgid
,需要在这三条信息发完之前,发送对象属到OneNET,不然我们会配置失败,比如需要发送的对象属性为:5824
、5825
、5826
、5827
、5828
AT+MIPLDISCOVERRSP= 0,17671,1,24,"5824;5825;5826;5827;5828"\r\n
如果没看到有属性,就需要更新一次实例,点击更新实例
,然后发送:
AT+MIPLDISCOVERRSP= 0,msgid,1,24,"5824;5825;5826;5827;5828"\r\n
三、 数据互交
数据互交可以一般有以下指令,各自代表的功能如下:
AT+MIPLNOTIFY 通知属性变化
AT+MIPLREADRSP 返回读取结果
AT+MIPLWRITERSP 发送写入结果
AT+MIPLEXECUTERSP 发送执行结果
AT+MIPLPARAMETERRSP 发送错误信息
其中,只有
AT+MIPLNOTIFY
是终端主动通知云平台,让云平台设置属性值变化的
其他的指令都是云平台发送指令下来之后,终端设备被动返回给云平台。
1.AT+MIPLNOTIFY 通知属性变化
通知属性变化需要和云平台的属性值进行同步,只有通知云平台有的属性才能通知属性变化,目前云平台的属性如下:
属性id 对应上节的:
Start Time=5824
,Duration In Min=5825
、Criticality Level=5826
、Avg Load Adj Pct=5827
和Duty Cycle=5828
比如通知5824的属性值得到指令:
AT+MIPLNOTIFY=0,msgid,3310,0,5824,1,10,"2022/10/12",0,0\r\n
这里的msgid 是
AT+MIPLOPEN
时服务器下发的+MIPLDISCOVER
中的第二个参数。不然无法上报
上报之后,需要刷新一下平台才能显示出来,上报结果:
2.AT+MIPLREADRSP 返回读取结果
返回读取结果指令,是在平台发出读取指令之后,终端通过相应的msgid
对指定的对象属性值进行读取。例如需要对Duration In Min=5825
进行读取,只需要点击平台的读取
按钮即可:
例如有以下参数:
Duration In Min
的对象id=3310- Load Control_0实例id=0
- 属性id=5825。
- 属性值=0.2s
可以拟定的指令:
AT+MIPLREADRSP=0,msgid,1,3310,0,5825,1,4,"0.2s",0,0
过程如下:
3.AT+MIPLWRITERSP 发送写入结果
发送写入结果相比来说要简单,只要发送三个参数即可,当然必不可少的还有msgid
。平台下发数据就是写
指令,下发指令之后,需要终端返回一个写入结果,平台才能验证当此写
指令已经完成,频台下发的指令:
+MIPLWRITE: 0,11992,3310,0,5826,2,3,333638,0,0
其中从左到右的信息为:
0
代表的客户端实id,11992
为本次信息的msgid,3310
即对象id,0
为对象中的实例id,5825
为属性id,2
代表属性值的类型为字符串
,3
指示字符个数,333638
为“368”字符串每个字符的十六进制,0
表示这是最后一条信息,0
表示信息中的第一条。
收到信息之后,只需要用相同的msgid 发送写入结果就好,例如回复上面说到的这条消息:
AT+MIPLWRITERSP=0,11992,2
最后一个参数
2
表示成功接收
4.AT+MIPLEXECUTERSP 发送执行结果
云平台的某些属性有下发执行
指令的操作,终端返回执行结果
到云平台和发送写入结果
的方式是一样的。因为创建的属性中没有执行的属性,所以本文就不做演示。
四、在线添加对象及删除对象
指令列表:
AT+MIPLADDOBJ 添加对象属性
AT+MIPLUPDATE 更新注册信息
AT+MIPLOBSERVERSP 响应订阅结果
AT+MIPLDISCOVERRSP 发送对象属性
1.在线添加对象
在线添加对象指设备在线时,终端在云平台中添加对象,这个过程和注册申请差不多。当前云平台已存在以下对象:
现在我们添加一个id=2202
的对象,并且创建2个属性5829
和5830
。指令为:
AT+MIPLADDOBJ=0,2202,1,"1",2,1\r\n
AT+MIPLUPDATE=0,3600,1\r\n
...等待订阅申请
AT+MIPLOBSERVERSP=0,msgis,1\r\n
...等待申请结果
AT+MIPLDISCOVERRSP=0,msgid,1,9,"5829;5830"\r\n
添加过程:*
2.在线删除对象
能添加对象,自然也可以删除对象,就拿上节添加的id=2202
对象为例,现在实现删除它,只需要发送对象删除指令即可
AT+MIPLDELOBJ=0,2202\r\n
删除过程:
五、关闭连接及删除实例
AT+MIPLCLOSE=0\r\n
AT+MIPLDELETE=0\r\n
六. 联系我们
以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,更多资料可从我们官网上获取。
官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com