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

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

移远BC35G模组的初次使用

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

在演示一起,我们先看一下NB-IoT的工作原理。
在这里插入图片描述
每一个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的版本。

接下来我们将物联网卡插入模块中
在这里插入图片描述
然后确定天线是连接好的。
在这里插入图片描述
然后将杜邦线连接到有RXT,TXD,GND,VIN针脚的一侧。
在这里插入图片描述
而杜邦线的另一半要连接USB-TTL的针脚上,请注意对应连接!!!
在这里插入图片描述
在这里插入图片描述
高电平对应高电平,低电平对应低电平,输出对应输入,输入对应输出。
如果你的驱动安好了,就可以直接将USB插到电脑上了。
插上以后,模块亮红灯,标识电源已联通。打开串口助手。
在这里插入图片描述
在端口号这里出现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,然后打开串口。
在这里插入图片描述
如果是这个样子的,就OK了

接下发发送AT
测试与通信模块交互是否正常。
在这里插入图片描述
如果返回OK,说明正常。
在这里插入图片描述
如果没有返回,或者显示正在打开串口,那说明杜邦线连接的不正常,检查杜邦线的连接情况。
接下来,我要讲一下AT指令。
AT指令用于通信交互的指令,说白了就是你跟通信模块说AT指令它听得懂。说编程语言它也无可奈何。

在这里插入图片描述
比如我们刚才执行的AT就是执行指令无参数类型,后面实践起来就会明白。

来我们实践一下
首先我们先查询一下这个模组的IMEI号
AT+CGSN=1
执行这个执行指令有参数的类别
在这里插入图片描述
这样就说明执行成功了。

接下来我们去华为OC平台
在在线调测中添加一个真实物理设备,名称随意,标识就是刚才返回的那个模组的IMEI号,选择不加密。
在这里插入图片描述
然后就会进到一个类似我们之前使用虚拟设备调试时的界面,这个界面先放着,之后会用到。

好了,现在我们开始入网操作了。
首先看一下模组厂商给的操作文档。
在这里插入图片描述
这个就是厂商推荐的入网流程,我们就按这个流程一步一步走。

  1. 手动入网
    AT+NCONFIG=AUTOCONNECT,FALSE
    返回OK
  2. 设置CDP服务器地址
    我们要设置华为OC平台的地址进去,这个地址请在华为OC平台中的对接信息里找。
    在这里插入图片描述
    选择那个Coap的服务器地址(Coaps是Coap的加密协议,我们这个演示没有加密。)
    AT+NCDP=IP,端口号
    例:AT+NCDP=49.4.12.13,5683
    返回OK
  3. 重启模组(软重启)
    AT+NRB
    这时看到一堆乱码
    在这里插入图片描述
    返回OK就是重启成功
  4. 查询一下刚才设置的地址是否正确
    AT+NCDP?
    如果返回刚才设定的一样的地址,说明设置成功
  5. 查询一下模组可用的频段
    AT+NBAND=?
    我的是返回+NBAND:(1,3,5,8,20,28)
    其中中国电信是5,移动/联通 8。
  6. 设置频段,我的sim卡是电信的,所以设置5.
    AT+NBAND=5
    返回OK
  7. 开启射频,这个就是好比大哥大把天线拉出来一样。
    AT+CFUN=1
    这个可能反应有些慢要等2-3秒
    返回OK
  8. 因为我们这个演示要求实时性,因此把PSM和eDRX都关闭
    关闭PSM
    AT+CPSMS=0
    关闭eDRX
    AT+CEDRXS=0,5
    都返回OK
  9. 开启网络附着,这个就好比我们在省流量时使用的开启蜂窝网络开关一样,开启这个就可以通讯了。
    AT+CGATT=1
    返回OK
  10. 查询网络附着情况
    AT+CGATT?
    返回CGATT:0表示没有网络附着
    返回CGATT:1表示已经网络附着
    这个比较慢,要等一会。作者也是不停的查询,不一会就为1了。
    在这里插入图片描述
    +QLWEVTIND:3表示与华为OC平台已经连接上了。
    然后我们进入华为OC平台刚才添加真实物理设备的那个页面
    可以看到消息跟踪里有消息滚出。
    在这里插入图片描述
    这说明我们的模组已经成功和华为OC平台连接上了!

如果5分钟以后,仍然入网失败的话:
入网失败的解决方案
在这里插入图片描述
如果循环尝试了多次仍然无法入网,那就考虑一下当前地区是不是没有NB网络覆盖。

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

在这之前,我们还需要设置2个参数
AT+CMEE=1
这个设置是当终端出现问题时自动上报(自动上报可以理解为控制台打印出来)
AT+NNMI=1
这个设置是当华为OC平台发送消息过来时,可以自动上报。
现在我们使用设备发送消息给华为OC平台
发送消息的格式为
AT+NMGS=数据长度,内容
例AT+NMGS=02,0001

还记得我们上节课使用虚拟设备调试吗,当时有个十六进制码流的位置,输入我们想数据上报的信息。
在这里插入图片描述
没错,这个信息就是我们用AT+NMGS发送的信息
首先0001,长度为2个字节
那就是2,0001
运行AT+NMGS=02,0001就是设备向平台上报灯的当前状态信息。0001怎么来的,请看上一节课的讲解,这里不再赘述。
现在发送
在这里插入图片描述
在华为OC平台可以看到
在这里插入图片描述
平台已经接收到了数据。
如果有同学出现了513,那就20秒以后重试一下,如果重试3次都出现问题,请按上面的“入网失败的解决方案”重试以后再尝试发送。

现在,平台下发开灯指令下去
在这里插入图片描述
可以看到
在这里插入图片描述
已经有数据上来了
如果没有数据上来请看一下命令状态是不是已送达
在这里插入图片描述
新消息标识是否设置为自动上报
AT+NNMI=1

接下来我们给这个命令回复响应
执行AT+NMGS=5,02004C0001
注意长度和mid,这里看不明白的请移步上一节课。
华为OC平台上返回
在这里插入图片描述
OK,移远BC35G模块就调测完成了。

最后还有一点很重要!
就是模组在断电时要释放RRC(RRC是运营商核心网与模组的连接)
AT+QLWULDATAEX=3,AA34BB,0x0001
并且关闭射频,保存今天入网的频点
AT+CFUN=0
建议执行完关闭射频以后20秒再给模组断电。

下一章节将讲解树莓派与移远BC35G模组的初始环境设置,及使用树莓派连接移远BC35G模组后与华为OC平台进行数据交互。
欢迎加入我们的QQ群一起讨论IOT的问题。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值