液面监测自动报警系统的设计与应用
2022-02-14唐向红
杨 志,林 川,唐向红
(贵州大学 计算机科学与技术学院,贵州 贵阳 550025)
在现实的液面监测监控中,某些领域的液面监测工作尤为重要。例如:医疗领域,不当的输液液面监测可能造成空气栓塞,进而危害生命[1-2];工业生产领域,无法实时监测储存容器的液面变更情况,可能会导致有害液体泄露,造成严重的安全事故[3-4];江河防汛领域,及时发布水位变化信息,便于防汛防洪工作的预防和开展[5-7]。
目前,液面监测主要有基于差压式液位测量、基于超声波法测量、基于光纤液位测量、基于激光液位测量,以及基于雷达波法液位测量等监测方法[8-13]。然而,这些测量方法需要直接接触被测液体,或者需要通过相关射线来进行液面监测。这样,在一些特殊场景(如输液时)很可能会污染被测液体,不仅缺乏安全性,而且不具备通用性。
在生产生活中,由于液体位置控制不当造成的生命财产损失时有发生。传统的液面监测工作主要由人工完成,其数据计算及整理等工作不仅繁琐,且存在误差大、自动化程度低、效率低下等弊端。显然,能够安全有效地对危险液体进行实时监测是必要的。随着信息化技术的不断发展,“互联网+”与各行各业的深度融合,数字化、智能化、安全化的液面监测自动监管平台[3-4,6-7]已经成为了一种必然的发展趋势。
因此,本文基于“互联网+安全监测”的理念,引用物联网(internet of things,IoT)技术,采用新型电容感应式液位测量[14]的方法,设计一个智能化的液面监测自动报警系统。该系统可以实现日常生活中具有安全性要求的相关液体液面的监控、监测及预警。
1 设计思路
本文设计的液面监测自动报警系统分为硬件端和软件端两个部分。硬件端以STM32处理器[15]作为控制中心,保障非接触式液位传感器模块[14]、Wi-Fi数据传输模块、液晶显示屏模块、复位模块等系统模块的正常运行;软件端由STM32处理器程序、云端服务器程序、安卓手机终端App、A9嵌入式开发实验箱终端App(以下简称“A9实验箱终端App”)这4个部分组成。
液面监测自动报警系统的原理是通过非接触式耦合电容液位传感器[14]监测液体液面信息。监测的液面信息实时发送给STM32处理器,当被测液体的液面低于液位传感器的最低检测位置时,STM32处理器发出中断指令,将液面信息由Wi-Fi模块传输到云端服务器程序,用户可以通过安卓手机终端App、A9实验箱终端App及时接收液面报警信息并实时反馈给相关人员。液面监测自动报警系统的工作流程如图1所示。
图1 液面监测自动报警系统的工作流程
2 硬件设计
液面监测自动报警系统的硬件端主要由STM32处理器[15]、2个非接触式液位传感器[14]、Wi-Fi数据传输模块、液晶显示屏模块及复位按键模块构成,如图2所示。
图2 液面监测自动报警系统硬件端模块
2.1 STM32处理器
本系统的硬件模块的控制核心是STM32F103RCT6微控制单元[15],开发板型号为ALIENTEK MiniSTM32 V3.0单片机处理器[15],简称STM32处理器。开发板资源图如图3所示。
图3 开发板的资源图
系统使用的开发板的资源及其功能如下所述:
RESET按键:其连接复位电路,以便在必要时对STM32处理器进行复位;
PA2和PA3:信号发送和接收串口,与Wi-Fi模块的RXD和TXD分别连接,实现串口通信,进行数据传输;
PC11:连接液位传感器1的输出端口,接收传感器1监测的液体液面信息,同时将液面信息转发给STM32处理器;
PC12:连接液位传感器2的输出端口,接收传感器2监测的液体液面信息,同时将液面信息转发给STM32处理器;
GND:接地;
VCC:接5 V电源;
VOUT1 & VOUT2:提供3.3 V和5 V电源,为Wi-Fi模块和液位传感器供电;
USB_232接口:实现串口下载代码、供电、串口通信3位一体的功能;
OLED & LCD共用接口:接入TFT-LCD液晶显示屏。
在考虑系统整体稳定性、系统整体性能、系统响应时间等要求的前提下,将STM32处理器与C51单片机详细比较后,选择STM32处理器作为本次设计的硬件模块的控制中心。
2.2 非接触式耦合电容液位传感器
本系统共使用2个XKC-Y26-V非接触式耦合电容液位传感器[14]。在本系统中使用的液位传感器的接口及其功能如下:
非接触式耦合电容液位传感器2:VCC接5 V电源,GND接地,M接5 V电源,设置传感器的工作模式为高电平信号输出;OUT接STM32处理器的PC12引脚,完成将液面监测信息以脉冲形式发送给处理器的功能。
2.3 Wi-Fi模块
本系统采用ATK-ESP8266 Wi-Fi模块作为STM32处理器程序与云端服务器程序之间的数据传输芯片,其外围接口如图4所示。
图4 Wi-Fi模块的外围接口
系统中使用的Wi-Fi模块的接口及其功能如下:
GND:接地;
VCC:接3.3 V电源,对Wi-Fi模块进行供电;
TXD:连接STM32处理器的PA3引脚,实现Wi-Fi模块与处理器之间的串口通信,方便数据传输;
RXD:连接STM32处理器的PA2引脚,实现Wi-Fi模块与处理器之间的串口通信,方便接收数据。
“你让我怎么说?”刘丽芳情绪瞬间变得激动,“都是你丈夫做的好事!深更半夜去我家干嘛?偷点东西也就算了,为什么还要欺负我?”
2.4 液晶显示屏模块
本系统使用2.8寸TFT-LCD液晶显示屏作为硬件端的显示界面。
2.5 复位按键
本系统使用STM32处理器的RESET按键,其连接单片机的复位电路,以便在必要的时候对系统进行重置和复位。
3 软件设计
本系统的软件端主要由STM32处理器程序、云端服务器程序、安卓手机终端App和A9实验箱终端App构成。液面监测自动报警系统软件端的程序框架如图5所示。
图5 液面监测自动报警系统软件端的程序框架
3.1 STM32处理器程序
运行于STM32处理器上的主控程序即为液面监测自动报警系统硬件端的控制程序。该主控程序主要实现对数据传输、硬件端的显示界面、液位传感器等多个模块的控制及数据分析处理。
3.2 云端服务器程序
云端服务器程序的关键代码包含:接收Wi-Fi模块Socket请求的线程代码;接收安卓手机终端App相应端口的Socket请求的线程代码;接收A9实验箱终端App相应端口的Socket请求的线程代码;云服务器程序接收并处理STM32处理器程序发来的液面监测信息的线程代码;云端服务器程序将处理后的液面监测信息存入消息链表的线程代码;云端服务器程序将液面监测信息分发给安卓手机终端App、A9实验箱终端App的线程代码。
3.3 终端App程序
安卓手机终端App和A9实验箱终端App为客户端接收、分析和处理液体液面信息的主控程序,同时这两个终端App还实现了显示液面报警信息的功能。
4 系统集成与测试
4.1 系统软硬件集成
系统硬件模块的集成情况:STM32处理器、XKC-Y26-V液位传感器1、XKC-Y26-V液位传感器2、ATK-ESP8266 Wi-Fi模块、2.8寸TFT-LCD液晶显示屏、复位按键电路均已集成到系统中。
系统软件程序的集成情况:STM32处理器程序、云端服务器程序、安卓手机终端App、A9实验箱终端App均已集成到系统中。
4.2 系统测试
系统测试以液面监测自动报警系统在医疗领域输液报警方面的应用为例展开,测试情况如下:
1)对下载好STM32处理器程序的开发板供电,处理器的电源指示灯亮并加载相关配置文件;液晶显示屏显示相关配置文件并正常启动,表示处理器及液晶显示屏处于正常的工作状态。
2)液位传感器正常工作,如图6所示。对2个非接触式耦合电容液位传感器供电后,液位传感器的红色指示灯发亮,表示液位传感器正在监测液体液面信息。
图6 液位传感器
3)液位传感器和Wi-Fi模块正常传输液体液面信息,如图7所示。当液体液面低于液位传感器的最低检测位置时,液位传感器的红色指示灯熄灭,处理器的红色指示灯熄灭,显示屏发送数据栏显示“1,1”或“1,2” ,将液面监测信息实时地发送给云端服务器程序。其中,“1,1”代表液位传感器1的液面监测信息,“1,2”代表液位传感器2的液面监测信息。
图7 液位传感器和Wi-Fi模块传输的液体液面信息
4)安卓手机终端App正常工作,如图8所示。当安卓手机终端App收到云端服务器程序分发的液面信息时,手机震动且屏幕上的红色文本显示液位传感器1监测的液体液面信息,即“1号病房1号床位输液完毕!请进行换液!”,表示安卓手机终端App正常接收液面报警信息并显示提示信息。
图8 安卓手机App界面
5)A9实验箱终端App正常工作,与安卓手机终端App正常工作一致。当A9实验箱终端App接收到云端服务器程序分发的液面信息时,屏幕上红色文本显示监测点(1号病房1号床位)的液位信息,即“1号病房1号床位输液完毕!请进行换液!”。
5 结语
本文基于“互联网+安全监测”的理念,引用物联网技术设计了一个液面监测自动报警系统,并实现了其在医疗领域的初步拓展应用。该系统响应及时,运行较为稳定,可扩展性强(可以接入多个液位传感器)。此外,该系统可以针对液体液面进行较为准确的非接触式监测,以及实时的数据分析和处理,在一定程度上解决实际生活中部分场景下具有安全性和时间性要求的液体液面监测的问题。