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表示通用传感器,具体可以看官方文档的这里-见下图。红线以下都是经常使用的对象,温度、湿度、压力等,都是物联网常见的参数。
Instance ID:实例id,instance代表着这个object的不同实例。通过object id和instance id可以确认到一个指定的object实例;比如一个物联网设备检测多个温度,就需要创建一个对象的不同实例。这个据我了解有些模块不支持。
Resource ID:资源id,每个object下可以有多个resource属性数据。比如温度传感器这个实例,其所对应的单位、最大最小值,温度等数值可视为其resource属性。比如你上传一组数据包括单位,最大值最小值,传感器值等等,就能在平台上可视化各种炫酷的图形,统计表格等等,当然这个要物联网平台支持。5700为传感器值,这个是最常用的值而且OneNET平台支持显示sensor value。
总结一下就是我们通过object id区分对象的类型,温度、湿度还是气压等等,通过不同的instance id来区分同一个对象不同的实例,voltage_0、voltage_1、voltage_2等等,用resource id来区分一个具体对象实例的不同属性,比如加速度计的X_value、Y_value、Z_value,等等,这样就可以确定上传的每条数据对应的意义。
实战篇
这里举个移远BC20连接OneNET物联网平台时候AT核心指令语句。
- 向通信套件添加object组
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,操作计数,指示可执行资源的计数。
发送一个数据
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: 0OK
AT+MIPLADDOBJ=0,3316,1,"1",1,1OK
AT+MIPLOPEN=0,86400OK+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,0OK
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.8,0,0OK+MIPLDISCOVER: 0,47105,3316
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.8,0,0OK+MIPLDISCOVER: 0,47105,3316+MIPLDISCOVER: 0,47105,3316
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,18.8,0,0OK
AT+MIPLNOTIFY=0,112638,3316,0,5700,4,4,20.8,0,0OKAT+MIPLDELOBJ=0,3316OK
AT+MIPLCLOSE=0OK+MIPLEVENT: 0,15
AT+MIPLDELETE=0OK
互相学习,如有问题,欢迎交流!!!
NB IoT LWM2M Object or/and Resource Identifier: (Object ID) or (ResourceID)相关推荐
- a different object with the same identifier value was already associated with the session
当出现a different object with the same identifier value was already associated with the session时,一般是因为在 ...
- a different object with the same identifier value was already associated with the session:
hibernate操作: 实例化两个model类,更新时会提示 a different object with the same identifier value was already associ ...
- No resource identifier found for attribute 'showAsAction' in package 'android'
运行一个项目时在一个menu.xml文件item属性android:showAsAction 报错 No resource identifier found for attribute 'showAs ...
- Android调试错误-No resource identifier found for attribute 'showAsAction'
今天在研究有米广告技术时,第一次编译他们提供的Android示例工程,结果出现如下错误: [2014-11-29 11:28:25 - com.youmi.android.offerdemo.Youm ...
- 关于出现org.hibernate.TransientObjectException: The given object has a null identifier: 错误的解决方法
关于出现org.hibernate.TransientObjectException: The given object has a null identifier: 错误的解决方法 参考文章: (1 ...
- a different object with the same identifier value was already associated with the session解决方案
a different object with the same identifier value was already associated with the session解决方案 参考文章: ...
- Error:(108) No resource identifier found for attribute #39;style#39; in package #39;android#39;
Error:(108) No resource identifier found for attribute 'style' in package 'android' 解决方案: 这是错误的写法: a ...
- org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit
错误信息: org.hibernate.TransientObjectException: The given object has a null identifier: com.gxuwz.chec ...
- a different object with the same identifier val...
2019独角兽企业重金招聘Python工程师标准>>> a different object with the same identifier value was already a ...
最新文章
- mysql的条件替换_MySQLwhere条件替换疑问?
- stm32学习之新建工程
- 新学语言python和JS
- windows bat 设置ip_A6v5.1网络版安装与防火墙设置
- 辞去美国终身教职!顶尖学者,加盟“双一流”高校
- varnish的了解与常用配置使用
- Kotlin 丢失了一些 JRE 类
- 电动自动吞吐式IC卡RFID读写器EMV模块HX150进卡命令
- 软件工程复习之rup
- 对话斯坦福商学院教授:颠覆大公司的不是技术,是商业模式
- 学习java和html必须要知道的英文单词(入门单词,包括C#)
- 即时通讯,2022即时通讯IM厂商介绍
- 深度学习:乳腺检测abnormality detection in mammography +CAM
- 国内的服务器的优势就是,国产服务器有哪些优势?其优势主要表现在哪?
- 形式主语 it 练习题
- 情感分析动力学知识框架(晏殊几何学情锚讲义)
- java游戏越狱_透露越狱第三季里可以帮助Michael越狱的java程序(转载)
- Redis server went away报错解决
- 【风力发电机组】基于simulink风速模型仿真
- 39岁研究生毕业14年的经验和教训