【安信可NB-IoT模组EC系列应用笔记⑧】用NB-IoT模组EC系列了解LwM2M协议并接入云平台

news2024/12/28 20:45:24

文章目录

  • 前言
  • 一、测试准备
    • 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,不然我们会配置失败,比如需要发送的对象属性为:58245825582658275828

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=5824Duration In Min=5825Criticality Level=5826Avg Load Adj Pct=5827Duty 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个属性58295830。指令为:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.uniapp全局状态管理

概念:把多个组件之间共享数据抽离出来,通过一个“单例模式”进行管理 工具:具备全局状态管理的库 Vuex:全局状态管理中的库 步骤: 1.建立Store文件夹 2.建立index.js文件 3.在main.js中注册Vue插件 4.测试Vuex是否导入成功 …

面试面麻了,别再为难软件测试人员了···

前言 有不少技术友在测试群里讨论,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些测试工程师了。 这不,为了帮大家节约时…

基于单片机的双足仿生运动机器人的设计

目录 1 概述 1 1.1 研究背景及意义 1 1.2 机器人的应用领域及发展现状 1 1.2.1 应用领域 1 1.2.2 发展现状 1 1.3 双足机器人设计要求 2 1.3.1 硬件部分 2 1.3.2 软件部分 2 2 系统方案设计 3 2.1 主控芯片选择 3 2.2 机器人自由度选择 3 2.3 驱动方案选择 3 2.4 双足机器人的步…

00后表示真干不过,部门新来的00后测试员已把我卷崩溃,想离职了...

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&#x…

web安全之信息收集

💪💪 web安全之信息收集1.网络入口/信息1.1网络拓扑信息1.2 IP信息1.3线下网络2.域名信息2.1Whios2.2搜索引擎搜索2.3. 第三方查询2.4. ASN信息关联2.5. 域名相关性2.6. 网站信息利用2.7. HTTPS证书2.8. CDN2.9. 子域爆破3.端口信息3.1常见端口3.2端口扫…

具有现代设计和最新Bootstrap版本的数字市场HTML模板

DegMark是具有现代设计和最新Bootstrap版本的数字市场HTML模板。凭借优秀的设计很容易创建虚拟商品交易网站,比如图片素材在线交易,视频文件交易,代码交易等虚拟商品交易。 主要特色 Bootstrapv5 移动响应 FontAwesome图标 jQuery增强 …

metaRTC Visual Studio编译指南

概述 metaRTC windows版本提供qt和vs2019两种编译支持,vs2019编译工程支持从metaRTC6.0版本开始,qt编译在B站有视频教程。 metaRTC5 windows版编译教程_哔哩哔哩_bilibilimetartc5编译教程,windows版本只支持msvc,下载所带第三方库为msvc20…

生物信息-快速序列比对-edlib包安装与使用方法-python和dll

安装 下载:https://github.com/Martinsos/edlib cd build && cmake -D CMAKE_BUILD_TYPERelease .. && make升级cmake https://cmake.org/download/ 下载tar.gz包,我这里下载的是: 拷贝到 /home/xxx/app 下解压&#xff…

初识C#事件

文章目录一 事件1 抛砖引玉案例1.1工具人下楼案例1.1.1 ToolMan.cs1.1.2 LazyMan.cs1.1.3 Program.cs1.1.4 测试结果1.1.5 升级到事件二 委托和事件的区别和联系一 事件 1 抛砖引玉案例 订阅和发布机制 比如说,我要下楼去吃饭,正常情况下我会问一下室友…

设计模式之适配器模式

设计模式之适配器模式 文章目录设计模式之适配器模式1. 定义2. 类型3. 场景4. 优点5. 缺点6. 适配器扩展6. 相关适配器模式7. coding7.1 被 适配者方法7.2 接口7.3 接口的实现7.4 适配者适配被适配者达到Target 目标7.5 类适配器的实现方式,其他的都不变8. 源码解析…

【Django】REST_Framework框架——序列化器serializers源码解析

一、序列化器类——Serializer 1、序列化器的作用 序列化器的使用分两个阶段: 1、在客户端请求时,使用序列化器可以完成对数据的反序列化(将字典格式的数据转化为模型对象)。 2、在服务器响应时,使用序列化器可以完…

网络原理——No.4 传输层_TCP协议中的延迟应答, 捎带应答, 面向字节流与TCP的异常处理

JavaEE传送门JavaEE 网络原理——No.2 传输层_TCP的连接管理 网络原理——No.3 传输层_TCP的滑动窗口, 流量控制与拥塞控制 目录延迟应答捎带应答面向字节流粘包问题TCP 中的异常处理(连接异常)TCP 和 UDP 的应用场景延迟应答 一种提高传输效率的机制, 又是基于流量控制, 来引…

Appinventor——蓝牙app(蓝牙遥控器、串口助手、温湿度显示、切换界面蓝牙依旧保持连接)

App Inventor由谷歌实验室开发,移交麻省理工学院,是一款图形化编程环境,不需要复杂的变成语言,采用搭积木的方式编程,只需将组件拖入即可,简直就是不爱编程党的超级福音 本文搭建了一个蓝牙app&#xff0c…

【CSS】CSS基础认知【CSS基础知识详解】

🌸大家好,我是花无缺,一枚热爱生活的新时代青年,感谢你的阅读🥰~ 👨‍💻个人主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专…

女朋友说她累了之后依然在线,于是20行代码写了个小工具康康发生了什么

近发现女朋友一到晚上总是很忙的样子, 每晚匆匆忙忙道过晚安就说自己累了去睡觉。 是我哪里做的不对吗… 睡就睡了,可是,QQ头像却会偶尔亮起来, 我非常担心,是不是账号被盗了呢? 然后,就想帮…

Django全家桶

Django框架从入门到高级 (一)Django入门 Web应用 详细地址见:https://blog.csdn.net/DiligentGG/article/details/126606099?spm1001.2014.3001.5501 Web框架本质 web框架本质上可以看成是一个功能强大的socket服务端,用户的…

Android专有GitHook完结篇,发布到npm

系列文章目录 Android打造专有hook,让不规范的代码扼杀在萌芽之中 Android打造专有hook第二篇,走进规范第一步 Android打造专有Hook第三篇,实战全量代码规范检查 Android打造专有Hook第四篇,实战增量代码规范检查 Hello啊各位…

【NLP】词向量

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

阿里巴巴面试题- - -多线程并发篇(三十)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

窥一斑而知全豹,从五大厂商看MCU国产化的机遇和挑战

👆👆👆 #电巢直播10月26日(周三)扫码参与 前言 近年来,MCU在各领域的应用大幅度增加。2021年全球MCU的总出货量仍旧增长12%,使去年全球MCU的交付量达到了309亿片的历史新高。根据IC Insights…