基于STM32的低功耗窨井液位采集与传输系统

2021-05-24 10:33李文雯时之媛陈宇灿王广文
物联网技术 2021年5期
关键词:浮球液位计液位

李文雯,时之媛,陈宇灿,王广文,赵 亮

(大连理工大学 电子信息与电气工程学部,辽宁 大连 116024)

0 引 言

智慧城市是利用工程、科技、节能减排等方式改善城市治理水平的方式,包括道路交通、电网、管网、桥梁等,将城市中普遍存在的资源与信息技术相结合,实现资源数字化,改善资源利用率,提高服务性能[1-3]。在城市智慧化发展进程中,我国城市排水管网系统的发展较为缓慢,随着全球变暖导致的强降雨天气增多,普遍存在由于暴雨导致的窨井内涝问题,对道路正常通行及人民生命安全产生不利影响[4]。因此,对窨井中的液位进行监测成为改善排水管网、减少城市内涝的重要手段之一。

液位监测多采用声波、电容等传感设备进行测量。李泽[5]等人设计了一种超声波液位测量系统,通过对声波信号进行连续采集,实现液位的自动在线监测;赵明[6]等人提出了一种使用电容式传感器测量液位的方案,将液位数据通过CAN总线发送至上位机;Konstantinos Loizou[7]等人通过研究现有液位测量技术提出了新型电容式液位测量系统,由于电容的固有非线性影响,测量性能与超声波性能相当。以上研究均是使用传感设备对液位进行定时采集,缺少针对短时间内液位突增的处理,导致系统数据反映不及时。Silviu C.Fole[8],Shu T[9],Vana Jelicic[10]等人提出的通过调整测量间隔,改变采集与传输速率并减少系统功耗的思路,与本文提出的液位采集与传输系统有相似之处。本文以STM32微控制器为核心,利用雷达液位计测量液位,加入2个浮球开关作为液位突增预警信号,从而动态改变采集时间。系统通过设计MOS关断电路在低液位时关闭耗能电路,满足低功耗需求。

1 系统设计方案

1.1 液位测量原理

(1)雷达液位计通过天线系统向液面方向发射短促的雷达脉冲,脉冲波遇到液面反射回来后被天线系统重新接收,将雷达脉冲从发射到接收所需的运行时间、输入的窨井高度通过STM32微控制器处理、计算后得到液位高度[11],液位计测量示意如图1所示。

图1 液位测量示意图

设雷达与液面间的距离为D,脉冲波的传播速度为光速c,雷达脉冲从发射到接收所需时间为t,得出雷达到液面的距离D为:

若已知窨井的高度为L,则窨井液位的高度H为:

(2)浮球开关是一种结构简单、使用方便的液位控制器件,无需提供电源,无复杂电路连接。当浮球开关被测介质浮动浮子时,浮子带动主体移动,同时浮子另一端的磁体将控制杆上的磁体开关动作,产生开关信号。

系统选用2个浮球开关分别放置于窨井井壁1/2位置、2/3位置,作为液位突增信号开关,用于判断液位所处位置是否需要启动预警,进而改变系统的工作模式,更改采集时间,提高系统的灵活性及数据采集的实时性。

1.2 整体设计方案

系统结构如图2所示。系统主要由STM32单片机、MOS关断电路、RS 485收发电路、中断触发电路等组成。雷达液位计采集液位值,输出4~20 mA信号,送入模拟量转RS 485采集模块进行信号转换后,通过RS 485收发电路与STM32单片机串口通信。使用浮球开关1、浮球开关2作为液位突增预警开关,动态改变数据采集时间,提高数据的实时性。系统中设计了MOS关断电路,当系统处于正常工作模式时,STM32单片机能够通过MOS关断电路关闭其他耗能电路及设备。GPRS DTU模块将STM32单片机处理后的液位数据、电池电压、故障码数据发送到上位机显示。

图2 系统结构

2 硬件电路设计

2.1 单片机最小系统电路

系统选用的控制器型号为STM32F103C8T6微处理器。STM32F103C8T6是基于ARM 的32位Cortex-M3内核的单片机,工作频率最高达72 MHz,内置64 KB程序存储器,3个通用16位定时器,具有丰富的I/O接口以及串行通信接口,工作电压范围为2.0~3.6 V,具有功耗低、速度快、性价比高等优点,可满足系统低功耗应用的要求。STM32单片机最小系统电路包括时钟源电路、复位电路、供电滤波电路。

2.2 MOS关断电路

MOS关断电路的主要作用是控制电路的启停,如在正常工作模式下,即液位低于窨井1/2以下,此时系统的采集传输频率较小,STM32单片机可输出控制信号通过MOS关断电路使系统中的耗能模块(如模拟量转RS 485采集模块、GPRS DTU模块等),降低系统能耗。MOS关断电路如图3所示,其控制信号由STM32单片机的PA7引脚(MOS-GPIO2)输出。

图3 MOS关断电路

当MOS-GPIO2输出高电平时,AOD4184 MOS管和AOD4185 MOS管均为导通状态,IN+引脚的12 V电压通过V-out引脚输出,模拟量转RS 485采集模块和GPRS DTU开启;当MOS-GPIO2输出低电平时,AOD4184 MOS管与AOD4185 MOS管均截止,V-out引脚无输出,模拟量转RS 485采集模块和GPRS DTU的供电被切断,停止工作。

3 软件设计

3.1 工作模式设计

为了应对暴雨、排水突增等导致液位上涨过快的情况,使数据采集更灵活、数据反馈更及时,系统设置了3种工作模式,分为正常工作模式、黄色预警模式、红色预警模式,这3种工作模式的系统唤醒时间即采集时间分别为6 h、5 min、1 min。由液位值与外部浮球是否动作决定系统是否进行模式切换,通过高优先级中断进行处理。

3.2 系统主程序设计

主程序流程如图4所示。系统上电后,进行初始化,SysTick系统嘀嗒时钟、RTC实时时钟、GPIO端口配置、串口初始化、MOS控制信号端口输出高电平,使RS 485收发电路、GPRS DTU模块、模拟量转RS 485采集模块开启,默认采集周期为6 h,即默认开机为正常工作模式,采集时间未到则系统等待上位机发送查询报文,系统处于待机模式,待到达采集时刻后唤醒。6 h内若无中断产生,则系统开启正常采集模式,上位机通过串口3发送查询报文,系统进行液位计电流、电压信号的采集,通过模拟量转RS 485采集模块转换信号后送入STM32单片机处理并存储,若电流小于4 mA,说明液位计出现故障,产生报文,对应位输出故障码00 01;反之,液位计工作正常,此时产生的报文为00 00。由于中断信号是由外部浮球开关是否动作产生,无中断产生说明液位未达到外部浮球开关所在预警位置,系统在2个浮球预警对应位输出报文00 00。此时,系统产生响应报文中的寄存器数据,包括电流值、电压值、浮球2指示、浮球1指示、液位计指示,通过串口2连接GPRS DTU模块发送至上位机。一个采集周期的数据采集发送完成后,STM32单片机对应MOS控制端口复位,输出低电平,MOS关断电路控制相应RS 485收发电路、GPRS DTU模块、模拟量转RS 485采集模块停止工作,减少能耗。系统进入停机模式,等待下一个采集周期唤醒或外部浮球开关中断唤醒。

图4 主程序流程

3.3 系统中断程序设计

系统默认为正常采集模式,即每6小时采集、发送数据一次,此时液位应处于窨井1/2以下。当液位继续上涨超过1/2黄色预警位置或2/3红色预警位置时,浮球开关动作,产生开关信号,上升沿触发,使系统进入中断。系统中断程序如图5所示。系统进入中断响应后,清除此中断的标志位,执行系统复位操作,重新初始化各配置,并保存系统参数。判断中断来源,若中断由外部中断线EXTI_Line6产生,则为PA6引脚所连的浮球开关动作,说明液位超过1/2位置,进入黄色预警模式,对应位输出浮球信号报文,设置RTC闹钟唤醒时间(采集时间为5 min),保存参数,转入初始化后的主程序,以间隔5 min进行周期性采集;若由外部中断线EXTI_Line7产生,则为PA7引脚所连的浮球开关动作,说明液位超过2/3位置,进入红色预警模式,对应位输出浮球信号报文,设置RTC闹钟唤醒时间(采集时间为1 min),保存参数,转入初始化后的主程序,以间隔1 min进行周期性采集。

图5 中断程序流程

4 系统测试及分析

系统的测试分为2类,即有液位计接入和无液位计接入,其中每类测试包含5组随机实验,每组实验包含1个完整的唤醒周期,即系统初始化、数据采集阶段、数据传输阶段和休眠阶段,通过分析系统在每个阶段的工作时间和电流消耗,进而分析系统的整体功耗。

4.1 实验测试

(1)有液位计接入

将液位计接入系统,测得系统在正常工作模式下电流消耗情况如图6所示。

图6 有液位计接入时的电流消耗波形

系统初始化,执行STM32处理器的初始化以及GPRS模块联网功能,如图6位置1所示,联网脉冲导致电流尖峰出现,此阶段平均时间为26 s,电流平均值为64.1 mA。

数据采集阶段,执行液位计数据采集功能,包括液位值、浮球信号和电池电压值,如图6位置2所示,此阶段平均时间为27 s,电流平均值为44.4 mA。

数据传输阶段,执行GPRS模块数据传输以及参数配置更新操作,如图6位置3所示。GPRS模块向云端发送数据时产生电流值尖峰,峰值平均值为106.3 mA,平均时间为2 s,之后电流下降,系统进入等待云端指令状态,进行参数配置更新,此状态只在正常工作模式下出现。正常工作模式下传输阶段平均时间为38 s,电流平均值为49.8 mA。

休眠阶段,系统进入休眠状态后,通过MOS电路关断耗能模块,系统进入低功耗状态,如图6位置4所示,电流平均值为 180.0 μA。

每组实验中各工作阶段的平均时间、电流峰值和电流平均值数据见表1、表2所列。

表1 不同阶段平均工作时间 s

表2 不同阶段电流值

(2)无液位计接入

断开液位计与系统的连接,测得系统在正常工作模式下电流消耗情况如图7所示。从图中可看出,系统数据采集阶段时间变长,平均采集时间为90 s,约为有液位计接入时的3倍,这是因为系统采用的液位计初始化时间约为30 s,若系统在连续3个周期都未收到液位计的响应,则系统输出故障码。此测试验证了系统能够正确处理液位计发生故障并上报的情况。

图7 无液位计接入时的电流消耗波形

4.2 功耗分析

记一次唤醒周期内每个工作阶段的平均时间分别为t1,t2,t3,t4,电流平均值分别为I1,I2,I3,I4。

正常工作模式下,系统唤醒间隔为6 h,其中系统初始化阶段t1为26 s,I1为64.1 mA;数据采集阶段t2为27 s,I2为44.4 mA;数据传输阶段t3为38 s,I3为49.8 mA;其余时间为休眠状态,t4为6 h,I4为180.0 μA。

正常工作模式下唤醒一次消耗的电能qn:

黄色预警模式下,系统唤醒间隔为5 min,前2个阶段与正常工作模式一致,数据传输阶段t3为2 s,I3为106.3 mA,此模式下休眠阶段t4为[5×60-(t1+t2+t3)] s,接近4 min,I4为180.0 μA。计算得到黄色预警工作模式下唤醒一次消耗的电能qy:

红色预警模式下,系统唤醒间隔为1 min,前3个阶段与黄色预警模式一致,此模式下系统休眠时间接近0。计算得到红色预警模式下唤醒一次消耗的电能qr:

假设一年中累计正常工作模式下的工作时间为350天,黄色预警模式下为10天,红色预警模式下为5天,则系统在一年内消耗的电能Q为:

代入数据计算:

5 结 语

本文以窨井液位为研究对象,设计了一种基于STM32的低功耗窨井液位采集与传输系统,通过使用雷达液位计采集液位值,并通过GPRS模块将液位值、电池电压、故障码上传到接收端或云端,使用MOS电路控制其他耗能电路的启停,同时为了能够灵活应对液位突增情况,选择使用浮球开关作为预警信号,改变采样周期,使系统能够在正常工作模式、黄色预警、红色预警模式下切换。通过两类随机实验,证明了系统能够稳定运行,并对电流的消耗情况进行分析,得到不同工作阶段消耗的电能,估算出在假设情况下,一年的耗能为12.01 A·h,满足系统低功耗的要求。后续准备在系统中加入趋势预测算法,使系统能够提前预测液位的增长趋势,提高系统的实用性。

猜你喜欢
浮球液位计液位
《在气流中悬浮定向自转的浮球会失重 自转速度越快失重越多》
气液分离罐液位计接管泄漏分析
核电厂缆式浮球液位开关选型及安装方式的改进
基于STM32燃气热水锅炉液位控制系统设计与实现
石油储罐液位开关的应用分析
电容式蓄电池液位计设计
雷达液位计在伊拉克南部油田的应用实践
不同配重的浮球覆盖下干旱区平原水库的节水效率对比分析
宝马530车冷却液液位过低报警
Endress+Hauser Deltabar FMD72电子差压液位计