基于STM32单片机的智能水阀控制系统

2024-07-22 00:00:00吴宇哲赵庆陈斯宇张甜付鹏程
科技风 2024年16期

摘要:本文设计了一套基于STM32单片机的智能水龙头控制系统。该系统集成了红外线人体探测、数字温度传感器、舵机驱动的混合水阀、OLED显示屏等模块,实现了水温智能控制、水流自动断水等功能。该系统采用STM32F407作为控制核心,时钟频率高达168MHz,具备强大的处理能力,可执行复杂的温控算法。温度传感器采用DS18B20数字传感器,直接输出水温数值,确保了测量精度。混合水阀使用舵机调节冷热水流量比,快速响应,能有效控制水温。红外传感模块探测人体信号,实现自动断水控制。测试结果表明,系统响应迅速,停水时间是出水时间的一半左右,达到良好的控温效果和智能节水效果。本系统为公共场所提供了一种节水、节能、智能化的水龙头解决方案。

关键词:STM32;智能水龙头;水温控制;红外检测;即用即停

一直以来,医院、饭店等公共场所的水龙头多为手动开关模式,容易损坏,长期不用易生锈,且无法精确控制水量和水温,造成水资源浪费严重。同时,还存在一定的疾病传播风险。鉴于上述问题,本研究旨在设计一套智能水龙头控制系统,用于公共场所,以实现准确的水温控制、水量控制和用户体温检测功能,还引入废水循环系统。该系统能够有效减少公共场所的用水量,提供更优质的用水体验,并降低疾病传播风险。

1系统总体设计方案

图1系统总体设计方案

本设计的核心是采用STM32F407VGT6芯片作为控制核心,负责整个系统的智能控制。结合红外线人体探测模块、温度传感器、OLED显示屏等部件来实现智能水龙头的功能。

1.1控制核心

采用STM32F407系列32位ARMCortexM4核微控制器,最高主频可达168MHz,拥有210DMIPS的强大处理能力,可满足系统的数学运算和控制算法执行需求。内置FPU提高了浮点运算效率。

1.2传感器模块

红外线人体体温传感器:采用MLX90615模块,可非接触测量人体表面温度,以便系统根据体温来调节出水温度。

水温传感器:使用数字温度传感器DS18B20,直接以数值形式输出检测到的水温,精度高。

人体感应模块:使用HCSR501人体红外感应模块,当检测到人体存在时触发系统开始工作。

1.3OLED显示屏

采用0.96寸OLED智能显示屏,通过I2C串行接口与STM32连接,用于显示工作状态、水温参数及用户体温等信息。OLED屏采用自发光的有机发光二极管技术,具有响应速度快、对比度高、视角宽等优点,支持中英文显示,菜单化操作,交互性强。内置DDRAM图像存储器,可实现显示内容的快速刷新。工作温度范围广,可适应室内外环境。该显示屏为用户提供了直观的系统运行状态界面。

1.4输出模块

输出模块主要包括舵机驱动的混合水阀和控制总水流的电磁阀。混合水阀采用封闭式舵机驱动,根据PID算法计算的角度进行饱和控制,快速调节冷热水流量比例,实现精确控温;电磁阀则直接由STM32的GPIO信号控制,响应速度快,在0.05秒内可完成断水。两者的配合使用可保证系统在准确、快速地调节水温的同时,智能地控制水量,避免不必要的浪费,满足了对水量与温度闭环控制的需求。

1.5PID控温算法

本系统采用PID控温算法来实现精确的水温调节,该算法根据水温传感器DS18B20的实时反馈值,经过比例、积分、微分运算后输出控制舵机的角度。其中,比例项P提高系统动态响应速度,积分项I可消除稳态误差,微分项D可增加系统稳定性。通过调优PID的参数,可获得系统良好的静态与动态性能。而采用增量式PID和滤波器的方法,则可进一步提高系统的抗干扰能力和稳定性。配合定期自整定和在线自校正,PID算法的应用显著增强了智能水龙头的温控精度和速度。

1.6废水模块

收集废水,经过滤后提供循环使用。废水模块采用了一体化设计,占地面积小,不仅工艺新颖,操作维护简单,所采用的耐腐蚀材料的使用寿命还可以长达20年以上。

1.7模式选择

1.7.1普通模式

(1)系统默认启动后进入该模式。

(2)红外传感器检测到用户接近时,打开电磁阀。

(3)水温传感器实时检测水的温度。

(4)MCU根据用户体表温度和设定温度范围,计算混合水阀的开度比例,控制冷热水流量比例,使水温保持在设定范围内。

(5)用户离开后,红外传感器发送信号,MCU关闭电磁阀,水阀回到关闭状态。

1.7.2儿童模式

(1)可通过语音或按键手动切换至该模式。

(2)系统自动将水温控制在更低温度,例如35℃左右。

(3)避免儿童使用时被高温烫伤。

(4)其他流程同普通模式。

1.7.3高温消毒模式

(1)系统可以在夜间或长时间无人使用后,自动进入该模式。

(2)打开热水阀,控制水温升至60℃左右对管道进行消毒。

(3)设置一个计时器,例如消毒10分钟后关闭热水阀,恢复至普通模式。

1.7.4节水模式

(1)可通过语音或按键切换至该模式。

(2)设置单次出水量阈值,例如最大出水体积为1升。

(3)水流传感器实时检测出水量,当累计达到阈值时,MCU切断电磁阀。

(4)或者根据统计设置日最大用水量,超过后进入停水状态。

1.7.5自定义模式

(1)APP中可设置温度范围、出水时间等参数。

(2)MCU根据APP的自定义参数运行。

(3)实现个性化使用需求。

1.7.6远程控制模式

(1)支持WiFi、4G等连接,可在APP远程查看系统状态。

(2)可远程发送控制指令开启/关闭水龙头。

(3)连接云平台实现远程监控和诊断。

2系统工作流程

(1)初始化阶段:上电后,STM32进行外设的初始化,包括OLED显示屏、红外测温模块、水温传感器DS18B20等的引脚初始化,以及中断功能的设置。

(2)主程序循环:不断检测红外人体感应模块的输出状态,当检测到人体靠近时,进入工作状态。

(3)获取数据:启动红外测温模块和水温传感器DS18B20进行数据采集,通过STM32的ADC取得人体表面温度和水温数据。

(4)PID计算:将采集到的温度数据输入PID算法,计算出控制舵机所需的角度值,再利用DMA传输加速运算速度。

(5)控制执行:设置PWM输出控制舵机转动到计算所得角度,以调节水温,同时打开电磁阀使水流出。

(6)信息显示:在OLED屏幕上实时显示当前人体温度和水温信息。

(7)断水控制:当红外感应模块检测到人体离开时,STM32关闭电磁阀,切断水流。

(8)数据保存:使用RTC实时时钟功能,将水温曲线等数据保存到STM32的内部Flash。

(9)低功耗:人体离开一定时间后,系统进入低功耗睡眠模式,降低功耗。

图2工作流程图

通过STM32的强大功能,实现了对整个系统的统一智能控制,使智能水龙头具有准确的温控、人性化的使用体验以及智能的节水控制。

3系统创新方案

(1)采用红外线非接触式人体温度测量,可以准确检测使用者体表温度,根据体温的差异主动调节出水温度,实现个性化服务。

(2)采用PID算法实现精准的温控系统,舵机控制混合水阀按照计算结果高效调节水温,使控温响应时间缩短。

(3)设置多种工作模式,如普通模式、消毒模式等,用户可以根据需要进行选择,拓展产品应用场景。

(4)引入废水收集及循环利用系统,提高水资源利用效率,实现环境保护和卫生间升级。

(5)采用OLED显示屏实时显示工作状态、水温等信息,交互性强,使用更友好。

(6)STM32控制核心,集成各种外设接口,通过智能算法实现系统的精确调控与优化。

通过以上创新设计,本系统显著提升了公共水龙头产品的智能化水平和使用体验,实现了对水资源的合理利用。

4系统仿真与调试

系统软件与硬件全部设计完毕之后以KeiluVision5为编程环境对编写的程序文件进行HEX格式的转换,然后在单片机上进行烧录,采用STLINK仿真器对各模块进行了仿真研究,对系统的运行效率和稳定性进行了观测,并对各模块做了优化和调整,最终观测到了系统的总体运行状态,从而达到了缩短时间、节水的效果。

4.1系统测试

系统测试是对完整集成后的系统进行测试的阶段,用来评价系统对具体需求规格说明的符合性,系统测试是在单元、组件和集成测试阶段之后进行的。系统测试所用的数据必须尽可能地像真实数据一样精确有代表性。可以使用真实数据或者使用真实数据的一个复制,复制数据精度必须尽可能地代表真实的数据。因此,为了检验系统的功能实现,对系统进行实际测试并上电后观察出水情况,对人体进入红外探测范围水龙头开始出水、人体走出红外探测范围水龙头停水所用的时间做了一个系统测试,下表是传感器检测水龙头出水停水的测试结果。

4.2优化方案

测试结束时,发现反应时间数值超出我们的理想值,我们对程序设计方面对停水和出水进行优化。方案如下:传感器感应到人体时,将结果反馈给控制芯片,从而控制水龙头。由于出水是一个持续高电平的过程,我们可以在结束过程中设置一个中断时间控制器,当输出由高电平转为输出低电平时,触发中断时间,实现自动停水,而无须将反馈发送到控制芯片。这样做相当于减少了一半的处理过程,从而缩短了时间,也达到了节水的效果。经调整之后,停水时间大大缩短,符合预期。

5结论

本研究通过分析公共场所用水的问题,从硬件与软件两方面进行设计。本系统不仅可以实现用水的即用即停,温度控制,而且可以实现废水循环,将洗手水进行废水利用,功能非常丰富。STM32系统工作稳定,可以更好地保障用户的体验感,显著地节约了水资源的使用,改善了公共卫生的普遍浪费水问题,有较大的推广应用价值。同时希望该系统能够在各个公共场所投入使用,实现温度检测数据的实时传输,以便后续迭代可提供给用户更舒适的洗手体验感。

参考文献:

[1]刘军.例说STM32[M].第2版.北京:北京航空航天大学出版社,2014.

[2]程建平.基于Porteus和Keil构建的虚拟仿真平台在嵌入式系统课程中的应用[J].信息与电脑(理论版),2021,33(07):240243.

[3]周治国,郑章媛,张建.一种嵌入式系统串行接口彩色屏幕动态画面显示方法[J].工业控制计算机,2020,33(08):2930+32.

[4]柳青.嵌入式系统中Modbus/TCP协议栈的设计和实现[J].机电产品开发与创新,2020,33(06):1214.

作者简介:吴宇哲(2002—),男,汉族,湖北武汉人,本科,现主要从事算法优化、电子信息方面研究。