APP下载

基于Arduino NANO单片机的互联免接触式自动泵压消毒系统

2023-03-06李艳丽冯成龙李新达

物联网技术 2023年2期
关键词:闭环控制液位单片机

卢 渊,李艳丽,冯成龙,李新达

(荆楚理工学院 电子信息工程学院,湖北 荆门 448000)

0 引 言

目前广泛使用的传统的手动按压式产品,因其出液量不固定,极容易造成资源浪费。手动按压模式容易造成细菌残留,增大交叉感染的风险。公共场所放置洗手液的场合较多,经常出现消杀用品无法及时补充的情况,给用户带来不便。利用物联网技术设计全新的系统,实现免接触式自动泵压出液、实时数据监测上传、远程监控等功能,具有较高的实用性。

1 系统整体设计

本系统主要由3部分组成。数据采集板块通过超声波传感器实现人员距离的检测,并通过单片机控制泵压系统出液;单片机通过电阻式液位传感器测量瓶装液位的信息,并将数据通过4G通信模块将数据上传到物联网云平台[1-2]。产品整体框架如图1所示。

图1 产品整体框架

2 系统硬件设计

2.1 人体位置感应测量模块

综合系统的使用环境与检测性能,采用HC-SR04型号超声波传感器,系统通过2个该型号超声波传感器实现精准测量。超声波传感器的触发引脚trigger和回波引脚echo均需与单片机的数字引脚相连接。其中,trigger引脚必须给予10 μs以上的高电平才能发射超声波,需与单片机可输出PWM的数字引脚相连接[3-5]。

2.2 液位检测模块

本系统通过电阻式传感器实现对水位的实时监测。同电压下,不同液位高度的电阻不同,电流差异较大,将电阻式液位检测模块输出口与单片机模拟功能接口连接,从而实现单片机对液位信息的准确读取,后续通过实验即可确定液位与采集的数据之间的关系,实现液位的准确判断。电阻式液位传感器原理如图2所示。

图2 电阻式液位传感器原理

2.3 泵压出液装置

结合传统装置弊端,综合考虑后,本系统采用微型无刷水泵,通过PWM对微型水泵进行控制,改变泵出液速度,实现精准化出液。微型无刷水泵只需将水泵的正极与单片机实物PWM输出端口连接,负极与单片机共地端连接即可[6]。

2.4 4G通信模块

本系统可实现远程连接,通过4G模块将相关数据上传至物联网云平台,4G通信模块与单片机之间通过TTL通信方式连接,传输单片机数据与4G通信模块数据。通信模块与单片机接口电路如图3所示。

图3 通信模块与单片机接口电路

在使用该模块时,将串口波特率设置为115 200,8位数据,需有1位停止位,无需校验位。通过固件,将通信模块设置为TCP通信模式,通过专用命令,将服务器的IP和端口更改为建立数据库的服务器,并设置通信串口[7]。

2.5 单片机整体电路设计

本装置涉及硬件较多,为保障各模块正常运行,需有良好的硬件设计,系统整体电路如图4所示。

图4 系统整体电路

3 系统软件设计

本系统采用C语言开发,实现人员距离判断与人员是否使用本产品的判断,通过PID算法实现对微型无刷水泵转速的控制,实现系统定量出液。当液量无法满足产品正常工作需求时,向客户端发送报警信息,提醒工作人员加液,保障产品处于正常工作状态。同时,工作人员可通过手机客户端对产品剩余液量、工作状态进行实时查看。程序整体工作流程如图5所示。

图5 程序整体工作流程

3.1 人体距离检测模块程序设计

式中,高电平时间通过单片机I/O口与定时器结合实现距离换算。当位于系统正面的超声波传感器检测到人员距离系统小于20 cm时,单片机将进行10 ms定时中断,10 ms内产品前方人员距离数据变化在误差范围之内,单片机对中断内容予以执行。通过中断激活下方超声波传感器工作,当采集到的距离小于30 cm且趋于稳定时,系统跳出中断,继续利用正面人员监测模块收集数据,数据无异常后,系统将判定为人员将使用本产品,发送指令,确定执行[8]。

3.2 精准化出液

为避免液体浪费,本系统通过PID控制算法与液位检测模块共同作用,实现准确出液。

在本系统中,采用PID闭环控制算法,闭环控制具有更高的控制精确度,其中有类似于生物中的反馈调节,能够减小系统误差,提高系统整体精确度。在一套系统中闭环控制可以通过连接各类传感器对系统整体进行数据测量与监控,当数据产生误差时闭环控制就会根据制定的标准对系统进行数据的反馈纠正。算法如下:

式中:error为产品实际洗手液出量和目标洗手液出量的误差;0.01为系统最小增益系数,用来减小误差;kP、kI分别表示为P算法和I算法的增益系数。系统会根据H1的结果进行调整,来达到减小洗手液出量的目的。当长时间出液时,D算法会抵消一部分由P算法造成的过度响应影响(d(error)/dt=响应速度)。H2通过对累计的误差进行积分来降低产品长时间工作造成的累计误差。PID算法工作流程如图6所示。

图6 PID算法工作流程

3.3 系统缺液报警功能程序设计

当系统初始化后,系统自动将此刻数据记录为初始值,因本产品使用的PID算法,每次出液量固定,系统自动估算可以使用的次数,每使用一次,数据将会上传到云平台,显示系统剩余液量。当次数小于10次时,已无法保证正常运行,系统将通过4G模块向客户端发送报警信息,提醒工作人员及时更换、补充。报警功能程序流程如图7所示。

图7 报警功能程序流程

4 产品调试

将系统安装固定于墙面,走到距离系统正面50 cm处,系统不出液。走到距离系统10 cm处,下方检测处无触发,装置无误出液现象。将手伸入下方检测装置大于20 cm处,装置无误出液现象。手伸入正常检测范围,系统正常出液。系统方案设计无误,系统可正常工作。

因涉及远程数据传输,系统使用了云服务器与通信模块,前期需确保其配置无误,否则系统的整体功能无法实现。在本产品第一次对通信模块进行测试时,通信模块与服务器无法连接,向服务器发送测试信息,正常等待后,无法获得服务器返回的数据,通信系统搭建失败。检查系统后,最终锁定错误出现的原因在于通信模块配置时命令错误,给予复位引脚7 s以上的高电平,成功对通信模块进行了初始化,按照操作手册重新配置,成功收到服务器的响应数据,通信线路搭建成功[9]。

本系统为使出液量趋于固定值,采用PID闭环控制算法,通过PID实现对出液的精准化控制。PID闭环控制算法较为抽象,无法直接进行现象观察,本团队通过有、无PID闭环控制算法设计对照实验,通过实验数据,确定产品中PID闭环控制算法是否可以达到设计目标。实验数据见表1所列。

表1 有无PID闭环算法对照实验数据

通过表中数据可看出,使用PID闭环控制算法出液平均误差远小于未使用算法的数据,且使用PID闭环控制算法能够使每次出液量更加稳定、可靠。软件中的PID闭环控制算法发挥了作用,且效果良好[10]。

5 结 语

本文设计的基于Arduino NANO单片机互联免接触式自动泵压消毒产品克服了传统公共场所提供给用户使用的消毒产品浪费严重、重复利用率不高、无液时无法远程提醒的弊端,产品可以自动侦测人员信息,利用双重检测避免产品误碰、误触等问题。利用PID闭环控制算法实现液体准确出液,利用硬件+云服务+客户端的形式,实现数据实时查看,缺液及时提醒,降低工作人员的工作强度,提升普通用户使用体验。后续我们将对产品外观进行设计,力争实现产品功能的复用性,为商场、医院等公共场合减少开支。

猜你喜欢

闭环控制液位单片机
基于LMI的过渡态主控回路闭环控制律优化设计
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
适用于厚度在线测量的水压闭环控制系统
基于STM32燃气热水锅炉液位控制系统设计与实现
石油储罐液位开关的应用分析
智能车竞赛中的闭环控制算法应用分析
SSSC的双闭环控制策略及仿真分析
宝马530车冷却液液位过低报警