iot at指令集_基于NB-IoT的LWM2M协议浅析

LWM2M 协议是 OMA 组织制定的轻量化的 M2M 协议,主要面向基于蜂窝的窄带物联网(Narrow Band Internet of Things, NB-IoT)场景下物联网应用,聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术。具有覆盖广、连接多、速率低、成本低、功耗低、架构优等特点。

移动 OneNET 平台采用的是基于 NB-IOT 的 LWM2M 协议和 CoAP 协议实现 UE 与平台的通信,其中 LWM2M 协议为应用层协议,CoAP 协议为传输层协议。

1、LWM2M 协议逻辑实体与逻辑接口

(1)LwM2M 定义了三个逻辑实体:

LWM2M Server :接入机,平台服务器接口;

LWM2M client : 客户端,负责执行服务器 的命令和上报执行结果;

Bootstrap server :引导机,负责 配置 LWM2M 客户端。

(2)这三个逻辑实体之间有4个逻辑接口:

Bootstrap:Bootstrap Server 通过这个接口来配置 Clinet - 比如说 LWM2M server 的 URL 地址;

Device Discovery and Registration:客户端注册到服务器并通知服务器客户端所支持的能力;

Device Management and Service Enablement: LWM2M Server 发送指令给 Client 并受到回应.;

Information Reporting:LWM2M Client 来上报其资源信息的,比如传感器温度。

这三个逻辑实体与四个逻辑接口之间的关系如下图:

e28fa7c49cb7a989d66b224be2fdb28a.png

2、LWM2M 协议栈

Lightweight M2M 协议栈结构如下图所示:

69b99f9c5e9a9f4d017e7625fd7e312b.png

2.1 LWM2M Objects

每个 object(对象)对应客户端的某个特定功能实体。 LWM2M 规范定义了一些标准 Objects,比如:

urn:oma:lwm2m:oma:2; (LWM2M Server Object,其中‘2’为object ID)。

urn:oma:lwm2m:oma:3; (LWM2M Access Control Object,其中‘3’为object ID)。

除了 LWM2M 定义的 object,IPSO 组织也定义了一些常用传感器的 object,比如:

urn:oma:lwm2m:ext:3311;(IPSO Light Control,,其中‘3311’为 object ID)。

每个 object 可以有多个 resource,每个 resource 代表一项 object 属性或者功能。比如 object ID 为 3311 的传感器的部分resource描述如下表:

dedced1c05d4c133dfb6dc23a62ee130.png

2.2 LWM2M Protocol

LWM2M Protocol 定义了一些逻辑操作,比如 Read, Write, Execute, Create 和 Delete 等操作。通过这些逻辑操作,实现云平台与终端设备的数据交互。

3、基于LWM2M协议接入移动OneNet实例

在此我们使用北京奇迹物联的 AM20E 模块接入 OneNET 平台。接入之前,需要完成 OneNET 平台侧的用户注册和产品创建。

3.1 产品创建

1. 完成用户注册并登录后,进入开发者中心进行产品创建。

7ce6d22699aa16d7932eb9a2bc10d0ad.png

2. 产品创建时,根据页面内容,填写您的产品信息。

2fbc1da7e75a1cce7c2ce5a39c67d7cd.png

3. 产品创建完成之后,添加设备,其中,AM20E 模块的 IMEI 号和 SIM 卡的 IMSI 号,可使用串口调试工具,分别通过 AT+ CGSN指令和 AT+CIMI 指令获取,并填入。

5b410d6988a3decb3acee016f9375668.png

4. 产品创建并添加设备完成之后,可在设备管理界面看到所添加的设备,设备栏灰色表示离线状态。

7ae086e29a529c2b4bf88d14860cca53.png

5. 在模块侧接入流程中,当模块收到平台侧返回的注册结果+MIPLEVENT:0,6,完成注册。设备栏将显示绿色,表示上线状态。

d0960fb768432587f308dec595ed40c1.png

3.2模块接入 OneNET 平台流程

模块完成初始化流程并成功注册网络后,接入 OneNET 平台,流程图如下所示。

e1e2b0173e09932eef5267fa1163095d.png

上述模块接入 OneNET 平台流程图中,需要说明的是:

数据交互过程中,平台 READ/WRITE/EXECUTE/PARAMETER 操作请求、模块资源值上报、以及模块更新注册信息,这 3 个步骤不分先后顺序,所以未对其按顺序进行编号。

图中虚线箭头表示 OneNET 平台将返回响应结果+MIPLEVENT 给模块侧。+MIPLEVENT 返回值请参考 AT 指令集的说明。

3.3参考示例

1. 模块初始化

AT

+PBREADY

AT //AT 响应正常

OK

AT+CSQ

+CSQ: 20,99 OK//检测CSQ 正常

AT+CEREG?

+CEREG: 0,1 OK//模块注册网络正常

2. 模块接入 OneNET 平台,完成注册

AT+XIIC=1 OK//获取IP 地址

AT+XIIC?

+XIIC: 1,100.103.238.182 //查询IP 地址已成功获取

OK

AT+MIPLVER? //查询基础通信套件版本2.2.0

OK

AT+MIPLCREATE

+MIPLCREATE:0 //创建基础通信套件成功,返回为 0,0 是基础通信套件标识,后续 AT 指令都需要使用到它

OK

AT+MIPLADDOBJ=0,3303,2,"11",6,1

//添加对象 3303,2 个实例,6 个属性。其中对象 Objectid3303 需遵守命名规范,请参考链接:

http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html,

OK

AT+MIPLOPEN=0,3600 OK

//模块请求注册

+MIPLEVENT:0,1 //OneNET 平台返回结果 BOOTSTRAP_START

+MIPLEVENT:0,2 //OneNET 平台返回结果 BOOTSTRAP_SUCCESS

+MIPLEVENT:0,4 //OneNET 平台返回结果 CONNECT_SUCCESS

+MIPLEVENT:0,6 //OneNET 平台返回结果 REG_SUCCESS

//模块侧收到上述返回值表示请求注册成功,此时,刷新OneNET 平台可看到设备显示绿色在线状态。

8a363a597f7d680650e88484155d34f5.png

3. 模块响应 OneNET 平台 Observer 请求和 Discover 请求,完成订阅。

a49d35990f27019ee8ac61b7955fae98.png

+MIPLOBSERVE:0,87667,1,3303,0,-1 //OneNET 平台对象/实例Observe 请求

AT+MIPLOBSERVERSP=0,87667,1 //模块响应 Observe 请求,其中 msgid=87667 必须对应 OneNET 平台 Observe 请求消息中下发的 msgid

OK

+MIPLEVENT:0,21 //模块响应Observe 请求成功

+MIPLDISCOVER:0,153204,3303 //OneNET 平台对象 Discover 请求

+MIPLDISCOVER:0,153204,3303

AT+MIPLDISCOVERRSP=0,153204,1,34,"5700;5701;5601;5602;5603;5604;5605" OK

//模块响应Discover 请求,其中msgid=153204 必须对应 OneNET 平台 Discover 请求消息中下发的msgid。模块响应

Discover 请求时创建7 个资源,每个资源用分号“;”隔开,其中资源Resourceid 5700;5701;5601;5602;5603;5604;5605

需遵守 IPSO 规范定义,请参考链接:

http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html,

+MIPLEVENT:0,21

//平台返回 Discover 请求结果给模块,完成订阅。此时OneNET 平台上可查看到对象 3303 对应的资源列表信息。

c0465bb581539be19e701b96a43287f8.png

4. 模块与 OneNET 平台数据交互

b41f40ef05c32d1791a0f214b867d85b.png

+MIPLREAD:0,21459,3303,0,5700

//平台请求指定资源(此处指Resourceid 5700)的READ 请求

AT+MIPLREADRSP=0,21459,1,3303,0,5700,4,5,20.22,0,0

//模块响应平台 READ 请求,其中msgid=21459 必须对应 OneNET 平台 READ 请求消息中下发的 msgid,4 表示 float 数据类型。模块将资源值 20.22 返回给OneNET 平台侧。

OK

+MIPLEVENT:0,21

//平台请求指定资源(此处指Resourceid 5605)的 EXECUTE

+MIPLEXECUTE:0,11671,3303,0,5605,5,"reset

AT+MIPLEXECUTERSP=0,11671,2/模块执行 EXECUTE 请求

OK

+MIPLEVENT:0,21 //模块收到平台返回的响应结果

AT+MIPLNOTIFY=0,77861,3303,0,5700,4,4,23.5,0,0 OK

//模块向平台侧上报指定资源值,此处上报 float 类型的值 810.56 给Resourceid 5700,其中 msgid=129584 必须对应

前面 OneNET 平台 Observer 请求消息中下发的 msgid。

+MIPLEVENT:0,26

//模块收到平台返回的响应结果,上报资源值成功,点击“操作”的详情按钮,可看到上报资源值的数据流。

//模块收到平台返回的响应结果,刷新OneNET 平台,可看到实例 0,资源 5700 的属性值更新为 20.2199999。

80cbc3b6e52a61be0640a511355063d4.png

AT+MIPLUPDATE=0,3600,1//模块更新注册信息

+MIPLEVENT:0,11//模块收到平台返回的响应结果,更新注册信息成功

5bbf5a7c23779c33a62d98a30b0eda47.png

5. 模块删除对象

AT+MIPLDELOBJ=0,3303 OK

6. 模块请求注销

AT+MIPLCLOSE=0 OK

+MIPLEVENT:0,15

7. 删除基础通信套件

AT+MIPLDELETE=0 OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值