智能井盖管理系统设计与实现
2021-08-20李澥方子昂陈弘诺陈文荣于尚智
李澥,方子昂,陈弘诺,陈文荣,于尚智
(广州大学华软软件学院,广东广州 510990)
目前,我国城市井盖数量庞大,如何对其进行实时安全监控已成为管理部门的一道难题。为了更好地保障公共设施安全,迫切需要采用新技术、新模式来加强针对井盖的安全管理[1]。井盖监控管理系统需要解决3 个主要问题:1)通信问题;2)功耗高问题;3)后期维护成本高问题。
在通信模块方面,现有的智能井盖系统大部分是基于NB-IoT 技术的设计。NB-IoT 技术的低功耗、低成本、广覆盖以及支持超大连接等优点,对传统的物联网通信模式有极大的提升和优化,得到业内的广泛支持,已成为当前物联网的主流技术[2-3]。
在微控制器方面,现有的智能井盖系统多采用STM32F1 或STM32L1 系列,尚未考虑系统供电问题和电池年自放电率问题[4-5]。这类微控制器和STM8L051 相比,其功耗与成本都相对较高。其中STM32F1C8 的运行模式功耗达到STM8L051F3 的2.07 倍,STM32L152R8 的成本更是达到STM8L051F3的4.34 倍。
针对以上问题进行探讨,设计了一套低成本、低功耗和易维护的智能井盖系统。
1 系统需求分析与总体设计
1.1 系统需求分析
以往的井盖管理系统有着不少亟待解决的问题。例如,不能及时处理井盖故障,无法确定井盖具体位置信息,设备寿命短和维护困难等。智能井盖系统重点需要解决以下问题:
1)系统响应时间。当井盖出现异常情况时,通信模块能够及时将数据上报至服务端,系统自动确认警情后,服务端可立即发送消息给离案发地最近的维护人员;
2)系统可靠性。系统井盖配置电源的使用时间一般为3~5 年。当井盖配置电源的电量不足时,系统可及时通知维护人员进行更换,减轻维护工作人员的工作量;另外,撬井检测功能可区分是否为维护人员正常操作,避免异常信息误报。
1.2 系统总体设计
文中所设计的智能井盖管理系统分为设备层、云端层和用户层,其系统拓扑图如图1 所示。其中,设备层主要负责传感器数据的采集和传输;云端层负责对数据信息进行接收、分析、整理、存储和分发;用户层将现场信息呈现在网页端,辅助现场管理人员开展工作,及时发送相应消息至维护人员的手机,提示维护人员需要处理的问题。
图1 系统拓扑图
2 系统设备层的实现
智能井盖系统的设备层由多个智能井盖终端节点构成。每个终端节点由电池供电;微控制器和传感器之间通过IIC 协议进行采集与控制,并与通信模块通过UART 协议封装的AT 指令进行数据的发送与接收;终端节点和电源之间通过ADC 采集电源剩余电压。终端节点设计图如图2 所示。
图2 智能井盖终端节点设计图
2.1 微控制器STM8
微控制器作为设备层的控制核心,主要功能是对数据的采集和发送。选型时主要考虑其功耗问题。只有微安级别的功耗才能维持3 至5 年的使用时间。选择意法半导体STM8L051 系列的原因是,其最低功耗模式仅为0.35 μA,动态运行模式也仅为180 μA;支持1.8~3.6 V 的宽电压,功耗低且功能满足要求[6-7]。STM8L051 电路图如图3 所示。
图3 微控制器STM8L051电路图
在电路设计上,在每个VDD之间添加去耦电容以降低噪声,并在VDD与VSS之间添加了磁珠以抑制高频噪声、尖峰干扰和吸收静电脉冲。ADXL345 三轴加速度计芯片通过IIC 协议与STM8 进行通信。NBIoT 模块与主控器通过UART 实现了控制指令及数据的收发,D2 可以防止电流倒流到通信模块,降低了MCU 的功耗,ENT0 接收通信模块的中断信号,控制与GPIO1 相连三极管的导通状态并可以对通信模块进行复位。
2.2 电源锂亚硫酰氯电池
锂亚硫酰氯电池的放电电压为3.65 V,放电曲线平稳,是目前一次性锂电池中放电电压最高的电池,其具有工作温度范围宽、年自放电率不大于2%、贮存寿命可达10~15 年等特性,且成本低廉[8]。这些特点较适合在智能井盖系统中使用。
如图4 所示,由电池的正极引出3 条线,一条VADC接到微控制器以检测电池电压,一条连接低压差线性稳压器输出3.3 V 给通信模块供电,一条连接低压差线性稳压器输出2.5 V 给微控制器和传感器供电。
图4 电源电路设计图
2.3 传感器ADXL345
ADXL345 是一款小而薄的超低功耗三轴加速度计,其分辨率最高为13 位,测量模式下功耗可低至23 μA,电压范围为2.0~3.6 V。ADXL345 可以在井盖的倾斜检测中测量静态重力加速度,通过比较任意轴上的加速度与用户设置的阈值,检测有无运动发生。低功耗模式支持基于运动的智能电源管理,能以极低的功耗进行阈值感测和运动加速度测量[9]。ADXL345 电路如图5 所示。
图5 传感器ADXL345电路设计图
在电源与地之间增加滤波电容,以去除干扰和噪声,在SCL 和SDA 线增加上拉电阻与微控制器,实现IIC 通信。在CS 端接入高电平设备使能,在ALT ADDRESS 端接地,进行设备的备用地址选择,设备通过两路INT 中断信号接入微控制器。
2.4 通信模块NB-IoT
NB-IoT 模块采用的是移远的BC28,它是一款高性能、低功耗、超宽工作温度范围的多频段NB-IoT 无线通信模块。结合NB-IoT的PSM 模式在参考信号接收功率为-128 dBm以下,假设模块每年重新上电一次,每天发送一次200 字节数据,且每天发起一次跟踪区的更新流程,则一年的总功耗仅为432.638 mAh[10-11]。
其中,PSM 模式的原理是允许设备在空闲态一段时间后,关闭信号的收发和接入层相关功能,使设备处于休眠模式,相当于部分关机,从而减少天线、射频和信令处理等的功耗消耗。在PSM 模式,设备不再监听寻呼,但还保持注册在网络中,因此,再发送数据时不需重新建立PDN 连接。
如图6 所示,VDD_EXT 实现了对于外部I/O 端口弱上拉的功能,并并联了一个旁路电容。在USIM接口使用了瞬态二级管进行静电保护,并串联了22 Ω的电阻来抑制电磁干扰。在VBAT电源前添加了47 uF的钽电容,以及100 nF、100 pF 和22 pF 的滤波电容,还增加了一个瞬态二极管来防止浪涌电压。
图6 通信模块电路设计图
2.5 设备层软件设计
智能井盖管理系统设备层的软件功能主要包括模块初始化、数据采集与发送、低功耗模式和异常处理等。设备层软件工作流程图如图7 所示。
图7 设备层软件工作流程图
软件设计的关键点在于:
1)对微控制器选用适当的工作频率,以低频率为主。具体场景在提供的6 种工作模式(运行、低功耗运行、低功耗等待、等待、活跃停止和停止)间切换,关闭暂时不需要的外围时钟、外设和FLASH,将没用的GPIO 设为浮空输入禁止中断模式,减少ADC测试次数,以便降低功耗。系统还可以通过EEPROM 保存设备参数和设置RTC 来实现一天一次的自动唤醒[12]。
2)对传感器设置较低的输出速率来降低功耗,且不影响系统运行(如12.5 Hz刚好可以在1 s内检测10 次数值),并采用自动休眠模式,设置静止和活动检测的加速度阈值和静止检测时需小于的加速度时间量。当井盖发生倾斜时,可以通过中断引脚来唤醒微控制器。将采集到的X、Y、Z轴加速度转换为倾斜角度问题,其中主要利用了基本三角恒等式计算,如式(1)~(3)所示。倾斜角度检测示意图如图8所示。
图8 倾斜角度检测示意图
式中,α和β分别表示水平面与加速度计x轴和y轴之间的夹角,γ表示重力矢量与z轴之间的夹角,x.out、y.out 和z.out 分别表示X轴、Y轴和Z轴的检测量[13-14]。
3)通信模块工作过程如下:启动模块→搜索网络→成功连接到网络→数据传输→进入eDRX 模式→进入PSM,如图9 所示。PSM 的主要目的是降低模块功耗,延长电池的供电时间,所以设置PSM 中的TAU 值(T312)较为关键。设置PSM 模式为12 h 唤醒一次,激活保持在线时间为4 min。
图9 通信模块PSM模式示意图
3 系统云端层设计
系统使用阿里物联网云平台和云服务器所组成的云端层,作为设备和用户层的中间件[15-16]。系统云端层如图10 所示。
图10 系统云端层设计图
设备层采用MQTT 协议与阿里物联网云平台进行消息通信。云服务器和阿里物联网云平台之间可以通过阿里云推送来主动接收设备上报的消息,并可以通过调用阿里云API 来控制设备层。在云服务器内部会有Python 编写的数据处理脚本对收到的设备消息进行解析并存入Mysql 数据库。如果是告警消息,则会调用短信服务来通知运维人员。网页服务器Tomcat和负载均衡Nginx将为用户提供图形化管理。
4 系统用户层设计
系统用户层通过网页来实现对用户与设备的图形化管理[17]。系统用户层流程图如图11 所示。
图11 系统用户层流程图
前端采用HTML、CSS 和Javascript 语言开发,使用了主流的Bootstrap 框架;后端采用Java 语言开发,使用了主流的Spring+SpringMVC+Mybatis 框架来实现用户数据的交互。
网页端主界面接入了百度地图,并在地图上标记每一个井盖所处的位置,根据井盖的状态改变标记点的颜色。当用户点击井盖标记点时,将以弹框的形式显示井盖的详细信息,并在下方显示井盖的历史记录和报警等信息。
5 结束语
经计算,所设计的整套硬件设备的成本最低不到45元,一年的平均功耗为688.31 mAh,一节4 000 mAh的电池可以用5.8 年,可基本满足智能井盖低功耗和低成本的需求。
测试结果表明,系统具有超低功耗、工作稳定、组网简单、实时性响应良好等特点,井盖的智能化、网络化和可视化管理可在一定程度上解决井盖监控管理和保障市民出行安全、提高管理人员的工作效率等问题,可对智慧城市建设起到积极的作用。