NB-IoT模块

目录

一. NB-IoT模块实物图

二. BC20/NB-IoT模块产品规格

三. 指令顺序

1. AT判断BC20模组是否正常

2. ATE0返回OK,已经返回回显

3. AT+CSQ

4. AT_CEREG?

5. AT+CGATT?

6. AT+CGATT?

四. OneNet 连接

1.  AT 查看 NB(当前NB),云平台根据这两个数值,连接NB

2.  检测SIM卡的状态 AT+CPIN?

五. ONENET

1. ONENET网站链接:https://open.iot.10086.cn/console/product/own

2. 生成产品,添加设备

3. 传输数据

五. 最后完整结果

六. 如何移植

1.main 里面 更改AT指令连接OneNet和发送需要传输的数据的AT指令

2.添加 apply.c apply.h

3.添加 uart.c uart.h

七. 参考教学网址

八. 链接


一. NB-IoT模块实物图

二. BC20/NB-IoT模块产品规格

BC20 是一款高性能,低功耗,多频段,支持GNSS定位功能的NB-IOT无线通信模块,供电电压:2.1V-3.63V,典型值3.3V

丰富的协议栈:UDP/TCP/MQTT/HTTP等

内置GNSS芯片:支持BeiDu,GPS和AGPS。

窄带物联网,带宽有180KHz,能直接部署在GSM,UMTS,LTE网络,即2/3/4G的网络上,

芯片购买链接:QUECTEL移远B...-淘宝网 (taobao.com)

三. 指令顺序

1. AT判断BC20模组是否正常

2. ATE0返回OK,已经返回回显

3. AT+CSQ

参数

属性

分类

0 ->-113dbm或以下,1->-111dBm,2-30->-109至-53dBm,31->51dBm或以上,99->未知

整型。接收信号强度指示

0-7->RxQual 值,99->未知

整型。信道误码率(百分比)

4. AT_CEREG?

当<n>=0、1、2 或 3 且命令成功执行时:
+CEREG: <n>,<stat>[,[<tac>],[<ci>],[<AcT>[,<cause_typ
e>,<reject_cause>]]]<stat> 整型。EPS 注册状态。0 未注册,MT 当前未搜索网络1 已注册,归属网络2 未注册,但 MT 当前正在尝试附着或搜索网络以进行注册3 注册被拒绝4 未知(例如:超出 E-UTRAN 覆盖范围)5 已注册,漫游状态

5. AT+CGATT?

<state> 整型。PDP 上下文激活状态。
0 去附着
1 附着
<err> 整型。错误码。详细信息,请参阅第 12 章

6. AT+CGATT?

确认 PDP 激活状态,1-代表已激活 0-代表未激活(决定是否能上网)

四. OneNet 连接

1.  AT 查看 NB(当前NB),云平台根据这两个数值,连接NB

AT+CGSN=1+CGSN: 862177046278936(IMEI)OK
AT+CIMI460085667003776(IMSI)OK

2.  检测SIM卡的状态 AT+CPIN?

五. ONENET

1. ONENET网站链接:https://open.iot.10086.cn/console/product/own

2. 生成产品,添加设备

AT+MIPLCREATE
+MIPLCREATE: 0 //成功创建通信套件实例。
OKAT+MIPLADDOBJ=0,3311,1,"1",4,2 //添加 LwM2M 对象。
OK //成功添加对象,且将注册 ID 为 0 的实例。
/***0 通信套件的实例ID*3311 是LwM2M对象ID,若对象ID不存在,则返回错误*1 实例个数*"1" 实例位图,比如"4"就是"1101",ID 0,2,3注册,ID 1不注册*4 是属性的个数,可读可写的*2 是可执行的资源个数*/
AT+MIPLOPEN=0,86400 //向 OneNET 发送注册请求。
OK
+MIPLEVENT: 0,1 //开始连接到 Bootstrap 服务器。
+MIPLEVENT: 0,2 //成功连接到 Bootstrap 服务器。
+MIPLEVENT: 0,4 //成功连接到 OneNET 平台。
+MIPLEVENT: 0,6 //成功注册到 OneNET 平台。
+MIPLOBSERVE: 0,69234,1,3311,0,-1 //接收到订阅请求(3311/0)。
AT+MIPLOBSERVERSP=0,69234,1 //响应订阅请求,其结果码为 1。
OK+MIPLDISCOVER: 0,26384,3311 //接收到发现资源请求。
AT+MIPLDISCOVERRSP=0,26384,1,19,"5850;5851;5706;5805" //使用资源 ID 列表响应发现资源请求。
OKAT+MIPLDELOBJ=0,3311 //删除 LwM2M 对象。
OK
AT+MIPLCLOSE=0 //向 OneNET 平台发送注销请求。
OK
+MIPLEVENT: 0,15 //成功注销。
AT+MIPLDELETE=0
OK //成功删除通信套件实例

3. 传输数据

AT+MIPLNOTIFY=<ref>,<msgId>,<objId>,<insId>,<resId>,<valueType>,<len>,<value>,<index>,<flag>[,<ackid>]

<ref> 整型。OneNET 通信套件的实例 ID;范围:0-65535。
<msgId> 整型。消息 ID;出自 URC +MIPLOBSERVE。
<objId> 整型。LwM2M 对象 ID。
<insId> 整型。实例 ID;出自 URC +MIPLOBSERVE。
<resId> 整型。资源 ID;出自 URC +MIPLOBSERVE。
<valueType> 整型。<value>值的类型。
1 字符串类型
2 十六进制类型
3 整型
4 浮点型
5 布尔型(Boolean)
<len> 整型。<value>值的长度;单位:字节。
当<valueType>=1 时,该参数值为字符串类型<value>的长度,范围:0-1024。
当<valueType>=2 时,该参数值为十六进制字符串类型<value>的长度,范围:
0-512。
当<valueType>=3 时,该参数值可能为 2、4 或者 8。
当<valueType>=4 时,该参数值为 4。
当<valueType>=5 时,该参数值为 1。
<value> 数据。
当<valueType>=1 时,该参数值为带双引号的字符串类型格式。
当<valueType>=2 时,该参数值为十六进制字符串格式。
当<valueType>=3 时,该参数值为整型格式。
当<valueType>=4 时,该参数值为浮点型格式。
当<valueType>=5 是,该参数值为布尔型格式。
<index> 整型。消息序号。若待上报数据包含多条消息,则需要发送多次 AT 命令以完成
上报。例如,若待上报数据包含 N 条消息,则参数<index>需从 N-1 到 0 依次递
减,AT 命令按照<index>取值从大到小的顺序执行。<index>=0 表示数据中最后
一条消息。
<flag> 整型。指示消息,范围:0-2。
0 表示<value>中最后一条消息
1 表示<value>中第一条消息
2 表示<value>中中间消息
该版本仅支持<flag>=0。
<ackid> 整型。范围:0-65535。
0 上报的数据为不需要确认的消息
1-65535 上报的数据为需要确认的消息

五. 最后完整结果

ATOK
BC20模组正常
ATE0OK+IP: 10.5.14.209+IP: 2409:8d18:200:5bf3:17a2:38d5:e89a:1eeb
已经关闭回显+CSQ: 23,0OK
NB_Signal_Value=23+CEREG: 0,1OK
EPS网络注册成功+CGATT: 1OK
PS已附着OK
GNSS打开命令已发送+QGNSSC: 1OK
GNSS电源已打开+MIPLCREATE: 0OKOKOK+MIPLEVENT: 0,1+MIPLEVENT: 0,2+MIPLEVENT: 0,4+MIPLOBSERVE: 0,126521,1,3313,0,-1
hhh6
ttt6OK+MIPLDISCOVER: 0,60986,3313+MIPLDISCOVER: 0,60986,3313OKOK
AT+MIPLNOTIFY=0,126521,3313,0,5704,4,4,4,0,0OK
AT+MIPLNOTIFY=0,126521,3313,0,5704,4,4,4,0,0
//发送数据 4 到OneNet 云平台

AT+MIPLNOTIFY=0,110915,3313,0,5703,4,4,8.584,0,0OK
AT+MIPLNOTIFY=0,110915,3313,0,5704,4,4,13.95,,0,0OK
AT+MIPLNOTIFY=0,110915,3313,0,5603,4,4,28.22,,0,0OK
AT+MIPLNOTIFY=0,110915,3313,0,5702,4,4,20.340,0,0OK

六. 如何移植

1.main 里面 更改AT指令连接OneNet和发送需要传输的数据的AT指令

2.添加 apply.c apply.h

3.添加 uart.c uart.h

(具体代码可查看gitee链接中的文件夹:NBIOT 程序)

七. 参考教学网址

第34集-云平台添加设备_哔哩哔哩_bilibili

八. 链接

王锦/NB-IoT (gitee.com)icon-default.png?t=N7T8https://gitee.com/didiao-hhh/nb-io-t

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

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

相关文章

从顺序表到链表再到队列和栈

1.顺序表 顺序表&#xff0c;简单的说&#xff0c;就是一种用结构体储存的数组。只是一般顺序表还有着记录存入数据个数size和数组总空间位置个数capacity 我们要定义一个顺序表的结构体&#xff0c;就要先确定顺序表的储存的数据&#xff0c;然后假设数组是固定长度&am…

链表的分类有哪些?

1、典型回答 链表 (Linked List) 是一种常见的线性数据结构&#xff0c;由一系列节点(Node)组成。每个节点都包含数据(element) 和一个指向下一个节点的指针 (next) 。通过这种方式&#xff0c;每个节点可以按照顺序链接在一起&#xff0c;形成一个链表。 线性数据结构是一种常…

ArcGIS学习(十五)用地适宜性评价

ArcGIS学习(十五)用地适宜性评价 本任务给大家带来的内容是用地适宜性评价。 用地适宜性评价是大家在平时工作中最常接触到的分析场景之一。尤其是在国土空间规划的大背景下,用地适宜性评价变得越来越重要。 此外,我们之前的任务主要是使用矢量数据进行分析。本案例是主讲…

Java中的 “==” 与 equals 的区别

Java中的 “” 与 equals 的区别 1.“” 在Java中有两大类数据类型&#xff0c;一类是基础数据类型共有八种分别是byte、 short、 int、 long、 float、 double、 char、boolean&#xff0c;另一类则是引用数据类型&#xff0c;例如String、Integer等等。 “ ” 作为比较运算…

切片上的健壮范型函数

在这篇博客文章中&#xff0c;我们将讨论如何通过了解切片在内存中的表示方式以及这对垃圾收集器的影响&#xff0c;更有效地使用slices包中提供的函数。我们还将介绍我们最近如何调整这些函数&#xff0c;使它们变得不那么令人惊讶。 借助类型参数&#xff0c;我们可以为所有…

C++之职工管理系统

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板&#xff0c;显示信息时&#xff0c;需要显示职工编号、职工姓名、职工岗位、以及职责。 普通员工职责:完成经理交给的…

自己写的whoami

一、代码 #include<stdio.h> #include<stdlib.h> #include<proc/readproc.h> int main() {struct PROCTAB *pt;struct proc_t *p;char *cmd;ptmalloc(sizeof(struct PROCTAB));pmalloc(sizeof(struct proc_t));ptopenproc(0x0028);while(readproc(pt,p)!NUL…

手撸dynamic源码详细讲解

本文源码解析基于3.3.1版本。只截了重点代码&#xff0c;如果需要看完整代码&#xff0c;可以去github拉取。 1 自动配置的实现 一般情况下&#xff0c;一个starter的最好入手点就是自动配置类&#xff0c;在 META-INF/spring.factories文件中指定自动配置类入口 org.spring…

CentOS无法解析部分网站(域名)

我正在安装helm软件&#xff0c;参考官方文档&#xff0c;要求下载 get-helm-3 这个文件。 但是我执行该条命令后&#xff0c;报错 连接被拒绝&#xff1a; curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 # curl: (7) Fai…

使用 pg_profile 在 Postgres 中生成性能分析报告

前言&#xff1a; postgres数据库中拥有大量的辅助插件用于帮助DBA更好的分析数据库性能或整个集群&#xff0c;包括索引、I/O、CPU和内存等&#xff0c;pg_profile是基于PostgreSQL标准统计信息视图的诊断工具&#xff0c;它类似于Oracle AWR架构&#xff0c;和Oracle一样&am…

threejs简单创建一个几何体(一)

1.下包引入 //下包 npm install three yarn add three//引入 import * as THREE from three2.创建场景,摄像机 // 1.创建场景const scene new THREE.Scene()// 2.创建摄像机//第一个参数是视角,一般在60-90之间,第二个参数是场景的尺寸,一般取显示器的宽高,第三个参数是开始位…

下载chromedrive,使用自动化

1、先看一下自己浏览器的版本 2、访问 https://googlechromelabs.github.io/chrome-for-testing/

射影几何 -- 摄像机几何 1

三维计算机视觉的主要任务是利用三维物体的二维图像所包含的信息&#xff0c;获取三维物体的空间位置与形状等几何信息&#xff0c;并在此基础上识别三维物体。 摄像机关于空间平面的投影是平面到平面的一个二维中心投影变换 对于空间物体&#xff0c;由于摄像机将三维物体表面…

单例模式( Singleton)——创建型模式

单例模式——创建型模式 什么是单例模式&#xff1f; 单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。简单来说如果你创建了一个对象&#xff0c; 过一会儿后你决定再创建一个新对象&#xff0c; 此…

中国京津冀太阳能光伏推进大会暨展览会

能源是国民经济发展的重要基础之一。随着国民经济的发展&#xff0c;能源的缺口增大&#xff0c;能源安全及能源在国民经济中的地位越显突出。我国是世界上少数几个能源结构以煤为INVITATION主的国家之一&#xff0c;也是世界上最大的煤炭消费国&#xff0c;燃煤造成的环境污染…

Linux操作系统——常见指令(1)

今天分享一下Linux操作系统常见一些指令。今天介绍 ls pwd cd touch mkdir rmdir rm这几个指令。 ls指令 语法 ls 选项 目录或者文件 功能 对于目录&#xff0c;该命令列出该目录下的所有子目录和文件&#xff0c;对于文件&#xff0c;将列出文件名以及其他信息。 我们常用…

【单调栈】代码随想录算法训练营第六十天 |84.柱状图中最大的矩形(待补充)

84.柱状图中最大的矩形 1、题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱…

将SQL数据库转换为Mysql数据库

一、准备工作 1、SQL server安装包与已经有数据的mdf、ldf数据库文件&#xff1b; 2、.net Framework安装包&#xff1b;&#xff08;用于支持SQL Server安装的组件&#xff09; 3、MySql安装包&#xff1b;&#xff08;用于目标数据库的环境安装&#xff09; 4、navicat安装包…

基于SpringBoot的“家乡特色推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“家乡特色推荐系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 文章分享界面…

WeiPHP Notice/index接口处存在RCE漏洞

产品介绍 WeiPHP是一款基于PHP开发的开源微信公众号开发框架。它提供了丰富的功能和易于使用的接口&#xff0c;使开发者能够快速构建和管理微信公众号应用。WeiPHP支持自定义菜单、消息管理、用户管理、素材管理、支付接口等功能&#xff0c;同时还提供了插件机制和模块化开发…