NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)

NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)

  

  LWM2M协议中Object ID-对象id和ResourceID-资源id具体含义和连接OneNET物联网平台时候AT指令语句中对应的参数修改。

编码规范官方网址
基于M5310模组实现NB设备接入OneNET实例

接入Onenet平台时主要AT指令语句
AT+MIPLADDOBJ=0,3303,1,"1",1,1              
AT+MIPLDISCOVERRSP=0,35748,1,4,"5700"
AT+MIPLNOTIFY=0,msgid,3303,0,5700,4,len,value,0,0

  


  
理论篇
  
  这里首先要理解三个参数含义,对象id,实例id,资源id,LWM2M规范定义了每个对象对应客户端的某个特定功能实体object。

Object ID:对象id,上传必须要对应的功能实体,其中常用的3303表示温度,3316表示电压,3317表示电流,3333表示UTC时间,3300表示通用传感器,具体可以看官方文档的这里-见下图。红线以下都是经常使用的对象,温度、湿度、压力等,都是物联网常见的参数。
NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)_第1张图片

Instance ID:实例id,instance代表着这个object的不同实例。通过object id和instance id可以确认到一个指定的object实例;比如一个物联网设备检测多个温度,就需要创建一个对象的不同实例。这个据我了解有些模块不支持。

Resource ID:资源id,每个object下可以有多个resource属性数据。比如温度传感器这个实例,其所对应的单位、最大最小值,温度等数值可视为其resource属性。比如你上传一组数据包括单位,最大值最小值,传感器值等等,就能在平台上可视化各种炫酷的图形,统计表格等等,当然这个要物联网平台支持。5700为传感器值,这个是最常用的值而且OneNET平台支持显示sensor value。
NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)_第2张图片
   总结一下就是我们通过object id区分对象的类型,温度、湿度还是气压等等,通过不同的instance id来区分同一个对象不同的实例,voltage_0、voltage_1、voltage_2等等,用resource id来区分一个具体对象实例的不同属性,比如加速度计的X_value、Y_value、Z_value,等等,这样就可以确定上传的每条数据对应的意义。

  


  

实战篇

   这里举个移远BC20连接OneNET物联网平台时候AT核心指令语句。

  • 向通信套件添加object组
    NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)_第3张图片
    AT+MIPLADDOBJ=0,3303,1,“1”,1,1 //创建一个对象,3303表示温度,具体见下方。
               ref, objId, insCount, insBitmap, attrCount, actCount

   -ref, is 0,创建的通讯套件实例id。
   -objId, 对象id,3316表示电压,3317表示电流,3333表示UTC时间,3300表示通用传感器。
   -insCount, is 1,创建实例的个数。
   -insBitmap,is “1”,必须要双引号,实例的位图,1表示有效。
   -attrCount,is 1,属性计数,它指示可读和/或可写资源的计数。
   -actCount, is 1,操作计数,指示可执行资源的计数。

  

  • 发送一个数据
    NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)_第4张图片
    NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)_第5张图片
    AT+MIPLNOTIFY=0,122179,3316,0,5700,4,4,25.6,0,0
              ref, msgId, objId, insId, resId, valueType, len, value, index, flag

    -ref , is 0
    -msgId ,信息识别码,MIPLOPEN返回的识别码
    -objId ,对象id
    -insId ,实例号
    -resId ,资源号
    -valueType ,数据类型,1表示字符串,2表示不透明数据类型,3为整数,4表示浮点数,5表示布尔数。
    -len ,数据长度,当数据为字符串时,len=字符串长度。数据为整数时,len可以是2,4或8,数据为浮点数时,其值为4。
    -value ,整数或者浮点是的时候,就是对应的文本数据。字符串时,为用双引号引起来
    -index ,数据的索引,是N-1到0的递减序列数,到零时,表示这是最后一个数了。
    -flag ,1表示第一个数据,2表示中间的数据,3表示最后一个数据。

这里分享一个BC20连接onenet指令

AT+MIPLCREATE                  //设备创建
AT+MIPLADDOBJ=0,3316,1,"1",1,0   //创建一个对象,1个实例,3303表示温度
AT+MIPLOPEN=0,86400           //注册请求,持续时间1天,此指令返回渐渐较长
AT+MIPLOBSERVERSP=0,101283(MIPLOPEN指令返回),1  //响应观察请求,必须3S之内响应
AT+MIPLDISCOVERRSP=0,35748(MIPLOBSERVERSP指令返回),1,4,"5700"  //创建一个资源对象
AT+MIPLNOTIFY=0, 101283(MIPLOPEN指令返回), 3316,0,5700,4,内容长度,内容,0,0 //发送一条数据
AT+MIPLDELOBJ=0,3316        
AT+MIPLCLOSE=0
AT+MIPLDELETE=0

这是我测试的记录

AT+MIPLCREATE

+MIPLCREATE: 0

OK
AT+MIPLADDOBJ=0,3316,1,"1",1,1

OK
AT+MIPLOPEN=0,86400

OK

+MIPLEVENT: 0,1

+MIPLEVENT: 0,2

+MIPLEVENT: 0,4

+MIPLEVENT: 0,6

+MIPLOBSERVE: 0,112638,1,3316,0,-1

+MIPLOBSERVE: 0,112638,1,3316,0,-1
AT+MIPLOBSERVERSP=0,112638,1 

OK

+MIPLDISCOVER: 0,47103,3316
AT+MIPLDISCOVERRSP=0,47103,1,4,"5700"

OK

+MIPLDISCOVER: 0,47103,3316
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.7,0,0

OK
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.8,0,0

OK

+MIPLDISCOVER: 0,47105,3316
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.8,0,0

OK

+MIPLDISCOVER: 0,47105,3316

+MIPLDISCOVER: 0,47105,3316
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.8,0,0

OK
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,20.8,0,0

OK

AT+MIPLDELOBJ=0,3316

OK
AT+MIPLCLOSE=0

OK

+MIPLEVENT: 0,15
AT+MIPLDELETE=0

OK

   互相学习,如有问题,欢迎交流!!!
NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)_第6张图片

你可能感兴趣的:(物联网,BC20,OneNET,object,id,resource,id)