树莓派微信小程序服务器搭建,之四-呕血制作-Lettuce IOT框架-移远BC35G+树莓派+华为OC+SpringBoot后台+微信小程序...

上一篇主要讲的是华为OceanConnect平台profile文件与编解码插件的开发与调试而这一篇将要讲如何使用window电脑调试NB-IoT移远BC35G模组。

移远BC35G模组的初次使用

移远BC35G模组,你可以看成是电脑的网卡。因为有了他,设备才能对外通信。NB-IoT的通信模组有很多种类,这里主要使用移远BC35G模组进行演示。

在演示一起,我们先看一下NB-IoT的工作原理。

word-6cca8717bf28ebbee853fead7aa91a08.png

每一个NB-IoT模组在使用AT指令入网了以后,都会得到一个运营商核心网分配的动态IP地址,而NB-IoT模组也会使用AT指令设置IOT平台的IP地址,当入网以后,NB-IoT模组就会向设置的IOT平台的IP地址发送登录请求,并且携带自己的动态IP地址,待IOT平台鉴权以后,便回复NB-IoT模组登录成功,这时双向通信就连接好了。

说到这里,必须要讲一个很重要的知识点。

都说NB-IoT是低耗能,一节电池用十年。那他是怎么保证低耗能的呢,这就要说到NB-IoT的两种模式了,PSM 状态/eDRX 功能。这里不说大的概念,就用例子来说明。

PSM 状态

老道士闭关修炼,他的弟子们有好多问题要请教老道士。但是无法确定老道士是否已经完成闭关了,不能打扰他。所以这些弟子就在这里等啊等,直到老道士跟弟子们说,“我完事了”,这些弟子才络绎不绝的跟老道士问问题。

NB-IoT进入PSM 状态时,平台给设备发送的指令只能属于等待阶段,直到NB-IoT模组向平台上报数据时,平台将缓存的所有指令下发。这种模式适合于实时性不高的设备,比如智能电表。

eDRX功能

自从上次闭关修炼出来以后,弟子们问了老道士3天3夜的问题。老道士想,不能这样的,这闭关一次积累的问题也太多了。于是老道士想出一个办法。他每隔一个周期闭关出来一次,给弟子们解答问题,然后再回去继续闭关。

NB-IoT想要开启eDRX功能,需要设置周期,多长时间以后唤醒一次,再隔多长时间以后继续进入PSM模式。这个模式较PSM模式实时性高的许多,但是命令上传还是要看设置的周期。

还有DRX模式,与eDRX类似。这些低功耗模式具体要看运营商支不支持。并不是NB-IoT模组内部控制的。

我们这个演示就将PSM 状态和eDRX功能全部关闭,以保证高实时性。

基础理论普及完成以后,我们开始激动人心的动手实践环节了!

首先你要拿到的准备好的移远BC35G模块,还有用于连接电脑USB的USB-TTL,还有一张NB-IOT的物联网专用卡。(有些地区没有覆盖NB网络,请使用前与当地运营商询问一下。我是在苏州用的电信的NB卡,测试没有问题的。联通也有NB卡,据说移动拿普通手机卡就可以接入NB网络,但是没有试过)

然后还有向移远BC35G模块的商家索要驱动,安装在电脑上。还需要准备串口助手SSCOM,请自行下载,我用的是5.13.1的版本。

接下来我们将物联网卡插到模块中

word-1eb16332f0576b00550b8b777f2f9d93.png

然后确定天线是连接好的。

word-8ccb1b11e9730be6dd46d4105f2e48c7.png

然后将杜邦线连接到有RXT,TXD,GND,VIN针脚的一侧。

word-013bc9ce3eee4924340bfb4c1b24cdd8.png

而杜邦线的另一半要连接USB-TTL的针脚上,请注意对应连接!!!

word-f693e946753328b52de042b7313ffd27.png

word-65ec3b8224762067533d06f890eebb70.png

高电平对应高电平,低电平对应低电平,输出对应输入,输入对应输出。

如果你的驱动安好了,就可以直接将USB插到电脑上了。

插上以后,模块亮红灯,标识电源已联通。打开串口助手。

word-0e8dec2aad912534c6a885f1eae7de2b.png

在端口号这里出现COM3 XXX的表示,USB已经连接成功。如果没有,请检查安装的驱动,以及USB-TTL。

因为每个人,每个电脑不一样,操作系统不一样,操作习惯等等都不同。很容易某些人就出现了问题。在这里我不能给你们出现的问题一一列举,我只能告诉我一个开发多年的经验。首先遇到问题要先冷醒,先按步骤逐一排查一遍。确定没有因马虎或者以前的习惯犯的错误。(这个概率非常高,作者回忆10有8,9都是因为这个而出的问题)。如果确定不是这个原因,那就要分析一下也许是哪个环节出现的问题。首先,我们要排除某些环节,这些环节不可能会导致这个错误,就拿刚才的这个举例子。可能有些同学就在想是不是通信模组出现了问题,比如NB卡不行,或者杜邦线连错了。其实“通信模组出现了问题”这是刚开始就要先排除的环节,因为你想一下,电脑现在是跟USB-TTL进行连接,在这个环节中USB-TTL与通信模块还没有建立数据交互,因此这个环节可以先排除。那么就剩下USB-TTL,驱动,串口助手的问题了。USB-TTL也先排除掉,因为如果我们假设USB-TTL有问题,那整个排错流程就都OUT了,所以我们要先假设它是正常的。那么就剩驱动,串口助手。驱动,这个好排查,第一插到USB到电脑时,是否和平时插U盘的声音一样,那个声音就是串口连接正常的声音。如果跟平时插U盘的声音不一样,那就是驱动的问题。如果听不出来,也可以到设备管理器中看有没有串口处有感叹号的,这都是连接不正常的标识。如果没有声音,或者设备管理器**和没插没有反应,那一定是USB-TTL有问题了。如果都没问题,那就看看串口助手版本,权限等等有没有问题。

如果确定了问题的根源,我们就好百度,或者在群里求助了。

如果没还没找到问题,就检查排除过的环节。

如果没还没找到问题,不妨干点别的,散散心。过一会回来,重新整理一下流程,思路会更清晰。

如果出现了com xx这个端口,那么选择这个端口,波特率选择9600,然后打开串口。

word-c9075fc9c0bbea3aeebaa78d04c25d2c.png

如果是这个样子的,就OK了

接下发发送AT

测试与通信模块交互是否正常。

word-e181744a321b9da275a4aeacb794018a.png

如果返回OK,说明正常。

word-0fe4b46279507bdb95d524c62a9d5a33.png

如果没有返回,或者显示正在打开串口,那说明杜邦线连接的不正常,检查杜邦线的连接情况。

接下来,我要讲一下AT指令。

AT指令用于通信交互的指令,说白了就是你跟通信模块说AT指令它听得懂。说编程语言它也无可奈何。

word-199fe26efe0bfaa844e7b9c9b5a96cc1.png

比如我们刚才执行的AT就是执行指令无参数类型,后面实践起来就会明白。

来我们实践一下

首先我们先查询一下这个模组的IMEI号

AT+CGSN=1

执行这个执行指令有参数的类别

word-1ffeca14b742757f939f43b780b66525.png

这样就说明执行成功了。

接下来我们去华为OC平台

在在线调测中添加一个真实物理设备,名称随意,标识就是刚才返回的那个模组的IMEI号,选择不加密。

26a9c848f964282d2a292da89b1c5ce2.png

然后就会进到一个类似我们之前使用虚拟设备调试时的界面,这个界面先放着,之后会用到。

好了,现在我们开始入网操作了。

首先看一下模组厂商给的操作文档。

word-a0d822c51667903b13d886fd9d60cc7b.png

这个就是厂商推荐的入网流程,我们就按这个流程一步一步走。

AT+NCONFIG=AUTOCONNECT,FALSE

返回OK

我们要设置华为OC平台的地址进去,这个地址请在华为OC平台中的对接信息里找。

word-80778347abed705afee457df9f84f6c4.png

选择那个Coap的服务器地址(Coaps是Coap的加密协议,我们这个演示没有加密。)

AT+NCDP=IP,端口号

例:AT+NCDP=49.4.12.13,5683

返回OK

AT+NRB

这时看到一堆乱码

word-8cc8d39ced431fd99fa054ec48a2cd1e.png

返回OK就是重启成功

AT+NCDP?

如果返回刚才设定的一样的地址,说明设置成功

AT+NBAND=?

我的是返回+NBAND:(1,3,5,8,20,28)

其中中国电信是5,移动/联通 8。

AT+NBAND=5

返回OK

AT+CFUN=1

这个可能反应有些慢要等2-3秒

返回OK

关闭PSM

AT+CPSMS=0

关闭eDRX

AT+CEDRXS=0,5

都返回OK

AT+CGATT=1

返回OK

AT+CGATT?

返回CGATT:0表示没有网络附着

返回CGATT:1表示已经网络附着

这个比较慢,要等一会。作者也是不停的查询,不一会就为1了。

word-defc8969dd575656211a3953aaa16acb.png

+QLWEVTIND:3表示与华为OC平台已经连接上了。

然后我们进入华为OC平台刚才添加真实物理设备的那个页面

可以看到消息跟踪里有消息滚出。

word-a640b1f41776feb8b8d583163ed6e58e.png

这说明我们的模组已经成功和华为OC平台连接上了!

如果5分钟以后,仍然入网失败的话:

入网失败的解决方案

AT+NRB

重启模组

AT+CFUN=0

关闭射频

AT+NCSEARFCN

清除这次选择的频点(就是换个地方重新入网)

AT+CFUN=1

开启射频

AT+CGATT=1

开启网络附着

AT+CGATT?

查询网络附着

如果循环尝试了多次仍然无法入网,那就考虑一下当前地区是不是没有NB网络覆盖。

连接OC平台成功以后,我们就可以尝试发送信息过去了。

在这之前,我们还需要设置2个参数

AT+CMEE=1

这个设置是当终端出现问题时自动上报(自动上报可以理解为控制台打印出来)

AT+NNMI=1

这个设置是当华为OC平台发送消息过来时,可以自动上报。

现在我们使用设备发送消息给华为OC平台

发送消息的格式为

AT+NMGS=数据长度,内容

例AT+NMGS=02,0001

还记得我们上节课使用虚拟设备调试吗,当时有个十六进制码流的位置,输入我们想数据上报的信息。

word-6e6c4196418fbe8179a6ed7adffd31f0.png

没错,这个信息就是我们用AT+NMGS发送的信息

首先0001,长度为2个字节

那就是2,0001

运行AT+NMGS=02,0001就是设备向平台上报灯的当前状态信息。0001怎么来的,请看上一节课的讲解,这里不再赘述。

现在发送

word-34d94e7508749a82e3b61402a6e57c5c.png

在华为OC平台可以看到

word-636c41ddb458e838cb13cea5f8bc2354.png

平台已经接收到了数据。

如果有同学出现了513,那就20秒以后重试一下,如果重试3次都出现问题,请按上面的“入网失败的解决方案”重试以后再尝试发送。

现在,平台下发开灯指令下去

word-9f5fc7c4a12a080945fab60541b3211f.png

可以看到

word-e5b61f8036dcd1b58b14b2420bace192.png

已经有数据上来了

如果没有数据上来请看一下命令状态是不是已送达

word-92ba59ffb22988f20683ce5d00b5814f.png

新消息标识是否设置为自动上报

AT+NNMI=1

接下来我们给这个命令回复响应

执行AT+NMGS=5,02004C0001

注意长度和mid,这里看不明白的请移步上一节课。

华为OC平台上返回

word-a6368698c6b0509ed8d951d6161d56cc.png

OK,移远BC35G模块就调测完成了。

最后还有一点很重要!

就是模组在断电时要释放RRC(RRC是运营商核心网与模组的连接)

AT+QLWULDATAEX=3,AA34BB,0x0001

并且关闭射频,保存今天入网的频点

AT+CFUN=0

建议执行完关闭射频以后20秒再给模组断电。

下一章节将讲解树莓派与移远BC35G模组的初始环境设置,及使用树莓派连接移远BC35G模组后与华为OC平台进行数据交互。

欢迎加入我们的QQ群一起讨论IOT的问题。

word-3abd58929668f190f6c48f8ce79f3fc9.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值