无线传感网

NB-IOT

作者:陈广
日期:2019-12-11


这段一直在弄RFID的书,但下学期课排下来了,突然发现这门课被排到了下下学期上,也就是说,下学期没有RFID上了。太坑了,我上的课基本被排到了秋季学期,春季学期课很少。等下明年秋季学期我不得不放弃一些课给别人上了,要把课排回来得等一年。顿时失去了写书的动力,想着可以放一放了。

物联网专业最核心的课程是无线传感网,现在可以腾出手来先弄弄这一块吧。之前搞6LowPan和低功耗无线WiFi,停了几年。几年后回过头来看,发现6LowPan居然无任何发展,有点郁闷。但这几年NB-IOT倒是如火如荼地发展了起来。那就以NB-IOT为切入点,先研究低功耗无线广域网,低功耗无线局域网这块再等几年看看。

另一方面来说,低功耗无线局域网有可能很难流行起来。因为NB-IOT和Lora的出现使得传感器可以直通云端,不再需要网关这个中间商。

  • 使用成本上,低功耗无线广域网只需在传感器上使用NB-IOT芯片就行了,而低功耗无线局域网不但要使用局域网通信芯片,还需要增加一个网关聚合传感器数据并上传云端。不单需要网关,还需要会Linux下C++编程的开发人员专门维护网关这一块,这也是成本。当然,NB-IOT每个点,每年都要向运营商交费,虽然费用不多,但如果传感器数量众多的话,这个成本也是惊人的。具体使用哪种方案,还是需要根据实际情况权衡。
  • 华为、阿里、腾讯和各大运营商都建立了自己的物联网云平台,针对的就是窄带物联网,使用NB-IOT可以进一步降低云端成本。当然,有实力的厂商肯定都会自己建云端服务器,21世纪最重要的资源是数据,肯定要掌控在自己的手里才行。

开发板的选购

第一件事当然是找NB-IOT开发板,了解了几天,发现了一个好东西,移远的BC26芯片。它基于联发科MT2625芯片平台研发,支持全频段,支持以及将要支持的协议有:UDP/TCP/CoAP/LWM2M/PPP/SSL/DTLS/FTP/HTTP/MQTT/HTTPS,够全能的,有些协议我都没听说过。连HTTPS都支持,太牛了。更重要的是它率先支持了 OpenCPU,也就是说,直接可以当成单片机用,对于简单的读取传感器数据,这足够了。之前我研究的 6LowPan 和低功耗 WiFi 芯片都是在内核中集成两个微控制器,一般的处理是集成一个 M3 或 M4,一个 M0 内核。我看了下 MT2625 芯片的资料,好象只有一个 M4 内核。支持 GPIO、UART、I2C、SPI、PWM 以及 ADC,对于读取传感器数据,这就足够了。不再需要专门弄一个单片机来控制传感器了。看来联科发在这个领域还是非常厉害的!网上没有联发科 MT2625 开发板卖,不知道联发科是不是和 ARM 一样,只卖设计,移远是否在这个芯片的基础上设计了自己的外设或外围电路,这个得专业人士来回答。不过可以想见,移远在这块芯片中集成了一个操作系统,要不也不会支持这么多的协议。用的是什么操作系统也不得而知。

开发板 1

不过,所有这些是在我买了开发板后才知道的。先上我买的开发板:

淘宝地址:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.15de2e8dx1cp2s&id=583285990286&_u=qhtvhlodd94

这块板底板是一块 STM32F103 单片机,上面插了一个BC26评估板,400 多大洋。当我拿回来研究后发现,STM32F103 只是通过 UART 口发送 AT 指令来控制 BC26 之后,就悔到肠子都青了。串口发数据我用上位机岂不是更方便?NB-IOT 主打低功耗,一块芯片能实现的功能我为什么要两个芯片呢?BC26 的最大亮点就是不仅是通信芯片,还可以当成单片机使用。其实只要单独买上面那小块 BC26 评估板就够了:

淘宝地址:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5908874549.35.5e76687fatnUvA&id=583282366803

这个 128 大洋,物美价廉,居家旅行必备良品。需要注意的是单独买 BC26 评估板,还要买一个 USB 转 TTL,要不没法连接 UART 进行控制,板子上的 UART 口用于查看调试信息的。当然,如果不在乎钱,还是可以买整套开发板的,毕竟带有一整套视频,可以跟着视频学习,对于初学者来说,可以帮助你更快地入门。

开发板 2

我还另外买了一块 BC26 开发板,这块板将三个 USB 口都引了出来,还将 1.8V 电压转化成了 3.3V 电压,将来接电路就方便很多。而且不再需要单独的 USB 转 TTL,直接将其插入电脑就可以用了,相当方便,206 大洋。

淘宝地址:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.15de2e8dx1cp2s&id=567845100556&_u=qhtvhlo3c0d

开发板 3

当然,你也可以买移远官方出的评估板,150 大洋,不贵:

评估板接线指南

工具折腾完,开始研究 AT 指令,学 AT 指令很简单,不需要搭建开发环境,只需把线接好就可以开工了。

引脚分配图

首先准备 BC26 和一个 USB转TTL。接下来上硬件设计手册中的引脚分配图:

一共有三个串口:主串口、辅助串口、调试串口。要使用 AT 指令与 BC26 通信,应接主串口。

开发板 1 的接线

先上图:

下方是 BC26 评估板,上方是 USB 转 TTL。接线方法见下表:

USB转TTL引脚 BC26引脚
3.3V VCC+
GND VCC-
RXD RX
TXD TX

这里有点疑惑,一般接串口是一方发送端连另一方接收端,而一方接收端连另一方发送端。而这里是发送连发送,接收连接收。是不是评估板或 USB转TTL 电路板标错了?不管了,反正一种接法用不了就换一个信号线,电源线不要接错就没问题。下图是反面:

接好线后,将 USB 口插入电脑,安装 CH340 驱动后查看“设备管理器”确定串口号:

如上图所示,在我的电脑上使用的是 COM5,注意,不同的电脑串口号会不一样。打开任意串口调试助手,也可以使用我写的AT指令助手,按如下图所示进行设置:

按上图所示启动串口并发送命令即可。

我们首先发送第一个,也是最简单的一个 AT 指令:ATI,结果如下:

>>>>>>>>>>  ATI
ATI

Quectel_Ltd
Quectel_BC26
Revision: BC26NBR01A03

OK

出现OK字样,说明已经成功连接到了 BC26。恭喜你,已经可以开始进入 AT 指令的学习了。

开发板 2 的接线

第二块板真没什么好说的,直接插电脑 USB,这时会点亮一盏灯,按下评估板上的按钮,会点亮另一盏灯,这时就可以开始发送 AT 指令了,如果不认硬件,记得安装 CH340 驱动。

下面是设备管理器里显示的设备:

我这里需要连接 COM9,也就是 Enhanced COM Port。

按照之前的指示发送 ATI 指令,看看是否连接成功。

AT 指令助手

学习从 AT 指令入手,因为这块最容易,但突然手痒,决定自己做一个学习 AT 指令的工具,所以这段时间一直在做这个工具,已经初具规模。先上图:

超级炫酷啊!使用 WPF 制作,用了 MaterialDesignInXamlToolkit 控件库。这是第一次用控件库做东西,感觉还是相当漂亮的。我把命令手册里的每个命令作用及格式都列出来了,可以很方便地调用,这可是非常强大的功能!遗憾的是这滚动条太难看了,以后再想办法把它改细吧。

最激动人心的是,我把命令手册搬到了程序里面,初学者可以很方便地查询每条命令的功能及使用方法。还可以编写自己的命令手册,也就是说,只要是使用 AT 命令的芯片都可以使用这个工具。神器啊!编写文档使用的是 Markdown 格式,本想使用 WebBrowers 来显示文档,但发现无法调用 CSS 和 JavaScript,又不想花太多时间在上面,所以找了个现成的控件,支持代码高亮以及表格,这就够了。不支持图片,以后实在需要再慢慢说吧。

还可以边发命令,边查看文档:

大的功能基本实现完毕,还有个编辑多条命令按顺序发送功能,不确定是否会用到,所以现在停工,先学 AT 指令,在学习的过程中需要用到哪些功能再慢慢加上去。弄得差不多了再发到网上供大家使用。

;

© 2018 - IOT小分队文章发布系统 v0.3