葛金鑫,杨慧中

(江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122)

0 引 言

随着智慧城市概念的提出与近几年的迅速发展,各大、中型城市的市政设施管理变得越来越信息化和智能化[1⁃3]。窨井作为城市排水管网系统上的重要节点,对其内部水质、水位和井盖状态进行准确检测和定时监控,对整个城市的排水设施信息化管理意义非凡。但窨井内部环境复杂,空间封闭狭小,传统水质监测中以ZigBee、WiFi 等短距离通信方式结合GPRS、4G 等[4⁃7]长距离通信方式的方法,由于能耗和信号覆盖等问题,很难应用到窨井的水质监测中。近几年出现的低功耗广域网(LPWA)和NB⁃IoT(Narrow Band Internet of Things)技术,正好解决了这一问题。

NB⁃IoT(窄带物联网)技术是万物互联的一个新兴技术,其低功耗、广覆盖、大容量、大连接等优势,使之可以与嵌入式技术相结合,广泛应用于如环境监测、智能抄表等诸多领域[8⁃10]。此外,NB⁃IoT 的覆盖能力较GPRS有20 dB 的增益[11],尤其适合窨井等水质远程监测的通信场景。 本文选用意法公司Cortex⁃M4 内核的STM32L452 低功耗系列芯片为主控芯片,结合自主设计的各类外设电路,实现了窨井水质、水位和井盖状态数据的低功耗采集和处理,利用NB⁃IoT 通信模块完成了采集数据的远程传输,最终基于电信IoT 平台通过HTTPS 协议完成了数据的展示和管理。

1 系统总体方案设计

根据窨井内部环境和结构特点,采用嵌入式系统、NB⁃IoT 通信技术和低功率传感器相结合的方式,实现窨井内各参数的低功耗采集和远程传输。微控制单元采用的STM32L452 芯片是意法半导体公司针对低功耗应用场景设计的。其在相同主频下,与F 系列性能相当但功耗更低。又因为芯片的多种低功耗工作模式能够与NB⁃IoT 通信模块的PSM(Power Saving Mode)模式和eDRX(extended Discontinuous Reception)模式协 同 作用,实现数据采集终端,工作时低功耗,休眠时几乎无功耗。窨井水质监控系统结构如图1 所示。该系统采用三级结构设计:第一层为数据采集层;第二层为数据中转层;第三层为人机交互层。

图1 系统总体设计框图

1)数据采集层。数据采集层主要由电源管理模块、嵌入式微控制单元、NB⁃IoT 通信模块、传感器接入模块及各类传感器组成。基于STM32L452 的嵌入式微控制单元是整个数据采集层低功耗运行的核心,其通过电源管理模块完成各模块工作时的省电管理;通过接入模块连接传感器,接收来自传感器的温度、液位、电导率和井盖状态数据;数据由NB⁃IoT 通信模块上传数据中转层。

2)数据中转层。数据中转层是一种基于NB⁃IoT 协议的信息传送平台[12],由NB⁃IoT 基站、电信核心网和电信物联网开放平台组成。NB⁃IoT 中的数据通过CoAP通信协议上传电信物联网开放平台,平台与人机交互层通过HTTPS 通信协议进行信息交互;数据中转层在数据采集层与人机交互层之间起信息传送的作用,也可以实现对NB⁃IoT 设备上传数据的保存和统一管理。

3)人机交互层。人机交互层主要由第三方云服务器、移动端、Web 端和本地展示系统组成,是基于电信物联网开放平台以HTTPS 协议调用开放接口开发而成,能够实现对NB⁃IoT 设备的业务管理,包括业务发放、业务控制和数据呈现等。

2 系统硬件设计

数据采集终端的硬件结构如图2 所示。以意法半导体公司STM32L452CEUx 低功耗芯片为微控制单元的嵌入式系统和上海移远通信公司BC95⁃B5 模组为基础的NB⁃IoT 通信模块组成,两者之间通过USART 串行通信方式进行数据传输。数据采集终端的工作电压范围为3.3~5 V,由于终端整体放置于井下,采用供电电压为3.6 V 的大容量一次性锂亚电池,配合电源管理模块完成各模块的不同电压供电。

图2 数据采集终端硬件结构图

2.1 微控制单元

基于STM32L452CEUx 低功耗芯片的微控制单元采用Cortex⁃M4内核,实现了一整套DSP指令和内存保护单元,可增强应用程序的安全性。芯片拥有高达512 KB 的闪存、160 KB SRAM、4 个SPI 闪存接口、1 个12 位的快速ADC、1 个DAC 通道、1 个低功耗RTC、7 个通用定时器、3 个USART、1 个UART、2 个看门狗等单元,可实现多种采集需求。提供低功耗运行模式、两种睡眠模式、三种停止模式、两种待机模式和关断模式等九种省电模式,可有效保证系统的低功耗,使丰富的功能能够很好地满足设计需求[13]。

基于上述器件完成了电源管理模块、串口模块、调试接口模块、NB⁃IoT 通信接入模块和传感器接入模块的设计,实现低功耗数据采集、处理、保存等功能。

2.2 NB⁃IoT 通信模块

移远BC95⁃B5 模组共有94 个管脚,包括1 个ADC、2 个USART、1 个外部USIM 接口和1 个射频接口等。基于以上器件完成天线射频模块、SIM 卡座模块和ESD 防护模块等设计。最终,结合微控制单元和NB⁃IoT 通信模块完成低功耗采集终端设计,实现数据向数据中转层的传输。

2.3 数据采集终端实物图

基于上述各模块特点和硬件结构设计,接入温度、电导率、液位传感器和行程开关变送器后,在防水塑料盒中合理布局,设计出如图3 所示的采集终端实物。优越的低功耗特性(无需外接电源)、稳定的信号覆盖和良好的防水、防尘能力,使得终端可以整机安装于井壁上,在无人管理的情况下运行较长时间。

图3 数据采集终端实物

3 系统软件设计

系统软件部分主要包括数据采集终端的软件、电信物联网开放平台设备接入的软件以及人机交互的软件。

3.1 数据采集终端的软件设计

数据采集终端使用一次性锂亚电池供电,电池使用寿命的长短决定了整个终端的运行时间。为了实现超低功耗,硬件的正确选型必不可少,软件的合理设计也同样重要。因此,终端软件设计遵循即开即用、不用关闭、短时间工作、长时间休眠的原则。为了克服实际应用中出现的基站维护升级、信号屏蔽等干扰终端正常工作的情况,软件设计中加入了自检测信号,强制休眠算法,极大地增加了系统的使用寿命。图4 为数据采集终端工作流程。

图4 终端软件工作流程

图4 中,微控制系统上电后完成电源管理及各模块的初始化;NB⁃IoT 模块发送AT 指令给数据中转层完成打开射频、网络附着、网络注册等发送数据前的网络连接工作;连接微控制单元的各类传感器,进行数据的采集和传输,系统将接收的数据进行滤波处理并按一定规则存储;接着系统通过USART、DMA 方式与NB⁃IoT 模块进行数据传输,NB⁃IoT 通信模块发送AT 指令与数据中转层完成CoAP 通信协议的建立,最终将之前存储在数组中的数据发送给数据中转层。

上述过程中通过发送AT 指令完成的步骤,对AT 指令的返回信息进行解析,判断基站是否接收指令成功,如果电信物联网开放平台有下发命令,也会通过返回信息给出。此时提取出下发命令信息写入微控制单元的FLASH 中,每一次数据采集结束时,系统都会判断平台是否下发命令,“是”则写入新命令,“否”则执行之前的命令。进入停止模式前先校对控制系统的时间,然后再设置闹钟中断。

上述所有功能,在工作完成后马上关闭以省电。闹钟中断唤醒系统后进行软复位,回到起点。前述算法在图4 流程图中已有呈现。

具体思路为:终端向基站发送联网AT 指令,并对返回数据解析,判断是否联网成功,“是”继续向下执行,“否”判断联网次数;判断联网次数是否大于3,“否”重复上述过程,“是”自动发送获取基站信号AT 指令,对返回数据解析;获取基站当前信号强度和信噪比两个数值,判断是否达到NB⁃IoT 模块工作要求,“是”终端软复位,重复上述过程,“否”终端进入10 min 休眠时间;唤醒后重复上述过程,如果信号还是达不到NB⁃IoT 模块工作要求,终端休眠时间加10 min,重复上述过程;当休眠时间增加到1 h,终端按1 h 时间间隔唤醒,重复上述过程。

此算法的加入极大地增加了终端在较差信号环境下的使用寿命,为应用于特殊环境下的低功耗监测终端处理信号不佳的问题提供了方案。

3.2 平台设备接入软件设计

电信IoT 开放平台的软件设计主要包括profile 文件的编写及编解码插件的编写等。平台设备接入流程如图5 所示。

图5 平台设备接入流程

在平台获取账号和密码后登录平台并创建应用,将获得的应用ID 和密码保存,以供后续人机交互系统的设计使用。在线编写profile 文件,完成后上传文件,此文件向平台说明接入设备所具备的服务能力、服务所具备的属性、下发命令种类以及命令参数。在线编写编解码插件后进行安装,由于NB⁃IoT 设备一般对省电要求较高,所以数据一般不采用json 格式,而是采用二进制或者tlv 格式。编解码插件的编写及安装可实现平台二进制消息转化为json 格式,方便后续人机交互系统的开发。

上述任务完成后只需注册、绑定设备即可实现设备数据的上传和更改设备采集频率命令的下发。

3.3 人机交互软件设计

人机交互平台的设计主要包括客户移动端、Web 端和本地展示系统,主要实现功能包括用户管理、命令下发、数据表现方式(数字显示或曲线)等。人机交互软件的数据和对应时间戳都是通过调用电信IoT 开放平台的API 获取,两者采用HTTPS 协议进行数据传输,安全可靠,采用Java 作为调用API 数据的编程语言。移动端软件开发采用HTML5 编程语言。

图6 为移动端人机交互界面。

图6 移动端人机交互界面

Web 端软件开发采用HTML5、CSS3 和JavaScript 编程语言,图7 为Web 端人机交互界面。

图7 Web 端人机交互界面

4 数据采集终端性能测试及分析

4.1 终端耗电量测试

耗电量测试是为了合理估计锂亚电池的容量,需记录终端完成一次工作和休眠时的电流大小及时长,再根据总时长计算得出总运行状态下电池的应有容量。运行状态下终端的总耗电量,可由式(1)计算:

式中:Calto为终端运行状态下的总耗电量;Caltw为终端工作时的总耗电量;Calts为终端休眠时的总耗电量,单位为A·h。

通过在微控制系统中串入电流表,得到终端工作时每次所需平均电流为75 mA,周期为22~30 s,以30 s 为工作周期。终端休眠时每次所需平均电流为66 µA,周期为450~3 600 s,以450 s 为休眠周期。总运行时长超过2 年,以800 天为目标。

终端工作时的总耗电量为:

式中:Iwork为终端工作电流,单位为A;Tw为终端工作周期,单位为h;nalt为总次数。

终端休眠时的总耗电量为:

式中:Isleep为终端休眠电流,单位为A;Ts为终端休眠周期,单位为h。

由此可知,终端运行状态下的总消耗量为:

根据工程经验电池深度放电系数[14]α为80%,则电池容量为:

式中:Caltp为工程应用中总耗电量,单位为A·h;α为电池放电系数。

最终,选取了能够使系统运行超过800 天,总容量为140 A·h 的ER321245 型锂亚柱式电池。

4.2 终端丢包率测试

终端丢包率是衡量无线传感终端数据传输性能的关键指标之一。试验时,数据采集层定时器以5 min 为采集数据间隔时间,共采集500 组数据包,利用本地数据库统计接收到的数据包并计算监测终端丢包率。另外,由开放平台向数据采集层下发100 组更改采集频率数据包,在平台统计下发送成功数据包数量并计算丢包率。

测试结果如表1 所示。

表1 各监测终端丢包率测试结果

表1 测试结果表明:2 号、3 号终端存在少量丢包率,对比各终端接收到的基站信号强度发现,由于这两口窨井的井盖是金属材质,相比水泥材质信号屏蔽效果更好,检测到的接收信号也较弱,由此可知丢包率与终端接收信号强度成反比。整体而言,各终端平均丢包率小于1%,通信较为稳定,能够满足窨井环境下数据传输需求。

5 结 语

结合嵌入式系统和NB⁃IoT 技术各自的优势,设计并实现一套窨井水质低功耗在线检测和远程监控系统。该系统利用多路传感器获取窨井内水质、水位和井盖状态信息,并通过NB⁃IoT 通信技术将信息上传电信物联网开放平台,基于平台完成Web 端和移动端人机交互平台的开发。实地应用效果表明,该系统运行稳定、功耗低、可靠性强、建设成本合理,能够有效地为城市排水设施水质监测和井盖管理提供保障,在实际项目应用中取得了良好的效果。