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

news/2024/5/9 2:14:12/文章来源:https://blog.csdn.net/Boantong_/article/details/127419705

文章目录

  • 前言
  • 一、测试准备
    • 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.luyixian.cn/news_show_218649.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

半乳糖-人血清白蛋白 Gal-HSA,Gal-PEG-HSA 半乳糖修饰人血清白蛋白

产品名称:半乳糖修饰人血清白蛋白 Gal-HSA 用途:科研 状态:固体/粉末/溶液 产品规格:1g/5g/10g 保存:冷藏 储藏条件:-20℃ 储存时间:1年 温馨提醒:仅供科研,不能用于人体…

supervisor管理prometheus进程

一、supervisor简单介绍 二、supervisor安装 三、supervisor部署应用 四、supervisorctl常用指令 五、supervisor测试 一、supervisor简单介绍 1、 概述 supervisor是一个Python编写的进程管理工具,可以方便启动、重启、关闭、单个或多个进程,可以简…

中国数字视听行业全景调研与投资趋势预测报告

数字视听和视听技术的概念 传统视听技术既包括视觉技术,也包括听觉技术,即模拟信号,包括录音录像、摄影等。随着时代和科技的发展,先进的计算机技术在检察系统和办公业务中得到广泛应用,传统的视听技术也逐渐向数字化方…

硬件开发趋势与技术探索

LiveVideoStackCon 2022 音视频技术大会 北京站将于11月25日至26日在北京丽亭华苑酒店召开,本次大会将延续【音视频无限可能】的主题,邀请业内众多企业及专家学者,将他们在过去一年乃至更长时间里对音视频在更多领域和场景下应用的探索、在实…

CSS3 1 CSS3 响应式布局 1.3 Grid 布局

CSS3 文章目录CSS31 CSS3 响应式布局1.3 Grid 布局1.3.1 Grid 布局简介1.3.2 开启grid 布局1.3.3 排列元素1.3.4 对齐方式1 CSS3 响应式布局 1.3 Grid 布局 【【迄今为止最易懂】2分钟掌握 CSS Grid 布局】 https://www.bilibili.com/video/BV18p411A7JB?share_sourcecopy_w…

YOLOv5、v7改进之三十八:引入RepVGG模型结构

前 言:作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv7的如何改进进行详…

【微服务】微服务万字实战,带你了解工程原理

微服务实战1、前期准备1.1 技术选型1.2 模块设计1.3 微服务调用2、创建父工程3、创建基础模块3.1 导入依赖3.2 创建实体类4、创建用户微服务4.1 创建shop-user模块4.2 用户微服务启动类4.3 创建配置文件5、创建商品微服务5.1 创建shop_product模块5.2 商品微服务启动类5.3 创建…

【自学CSS笔记第7篇】——CSS三大特征(这一篇就够了)

其实,我清楚的知道什么是对的什么是错的,什么该做什么不该做,然而懒惰的天性驱使我们每每做出错误的决定,结束后我又再一次重复着厌倦和懊恼。 目录 CSS的三大特性总览: 层叠性: 继承性: 优先级&#x…

链路状态路由协议 OSPF (二)

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.Router ID 1.什么是Router ID 2.获得Router ID方法 二.DR和…

Libevent库的学习

目录 Libevent 概述 Libevent 使用模型 使用Libevent的基本流程: libevent 的核心,event 事件 1. 创建一个事件event 2. 释放event_free 3. 注册event 4. 信号事件 5. 销毁event_base Libevent 结构图 使用libevent库去实现tcp服务器 Libev…

【目标检测】【边界框回归】Bounding-Box regression

最近开始看目标检测的论文,第一篇为R-CNN论文,是两阶段目标检测的开山奠基之作。论文中的损失函数包含了边界框回归,且在R-CNN论文里面有详细的介绍。 一、为什么要做边界框回归? 对于上图,绿色的框表示Ground Truth&…

【VIO】第2讲 基于优化的IMU

第2讲 基于优化的 IMU 与视觉信息融合 1.最小二乘问题求解 (1)最小二乘基础概念 ​ 1 定义:找到一个n维的变量 x∈Rnx \in R^nx∈Rn ,使得损失函数 F(x)F(x)F(x) 取得局部最小值: F(x)12∑i1m(fi(x))2F(x) \frac{1…

Word控件Spire.Doc 【文本】教程(5) ;从 Word 文档中的文本框中提取文本

文本框的目的是允许用户输入程序要使用的文本信息。也可以从文本框中提取现有的文本信息。以下指南重点介绍如何通过Spire.Doc for .NET从 C# 中 Word 文档的文本框中提取文本。 Spire.Doc for.NET 最新下载(qun:767755948)https://www.evget.com/produ…

3、Java对象相关

目录JVM内存分配机制对象的创建对象大小与指针压缩java对象的指针压缩指针压缩的原因分代回收机制分代GC分类对象内存分配栈上分配逃逸分析标量替换标量与聚合量Eden区分配大对象分配老年代分配对象动态年龄判断老年代空间分配担保机制对象的内存布局对象的访问定位对象内存回收…

WebDAV之葫芦儿·派盘+一刻日记

一刻日记 支持webdav方式连接葫芦儿派盘。 是一款强大的记录软件,通过平台可以随意的记录重要的事情,让用户在平台里能获得更多的帮助,实时的解决你的记录需求,让你可以更好的进行使用;在使用的过程中,用户可以记录当天重要的事情,把你的感想更好的记录在平台里,让用…

js-键盘事件

onkeydown:按键被按下 onkeyup:按键被松开 事件绑定的对象:键盘事件一般绑定给可以获取焦点的对象或者document对象 焦点:光标在闪的:比如input标签 如果一直按按键不松手,按键会一直被触发 当:onkeydown连续触发时…

后端php项目和数据库启动

有两种方法可以启动 1.使用小皮面板 ①启动php项目开启后端网站 可去官网下载 下载后就能使用了 官网地址:小皮面板(phpstudy) - 让天下没有难配的服务器环境! 下载完成后打开 php项目需要启动apache 创建一个php项目的网站 注意这里要写public 点击…

亚马逊云 RDB数据库故障转移(多可用区)

RDB关系数据库(Relational Database,RDB) 创建名为VPC for RDS的vpc 两个可用区,两组公内网创建安全组创建RDS数据库实例用的数据库子网组创建RDS数据库实例创建数据库连接RDS数据库实例并给数据库test添加数据 1.创建安全组2.创建用来连接数据库实例的EC2选择vpc for rds那…

MyBatis 环境搭建配置全过程【IDEA】

文章目录一、MyBatis 介绍二、MyBatis 环境搭建1.MyBatis 下载2.配置 jdk 版本3.创建 Maven 工程4.IDEA 连接数据库5.项目文件构架6.引入相关依赖7.命令行创建数据库8.数据库配置文件9.核心配置文件三、入门测试程序1.创建表准备数据2.创建 POJO 实体3.创建映射文件4.修改核心配…

將一個react+nodejs聊天軟件前後端項目進行docker打包並運行

文章目录1概述2将react前端打包入docker2.1打包react项目2.2nginx配置2.3创建Docker镜像2.4打包和运行2.5上传dockerhub3将nodejs打包入dockerDockerfile文件.dockerignore 文件打包和运行上传dockerhub1概述 https://gitee.com/chuge325/practise–chat-app-react-nodejs.git…