APP下载

基于STM32的智能淋浴系统设计

2019-08-15汪思嘉汪思翔李昊育杨欢

物联网技术 2019年7期
关键词:PID算法节水

汪思嘉 汪思翔 李昊育 杨欢

摘 要:现有的淋浴系统智能化程度普遍不高,在节水设计方面的开发也是微乎其微。為了解决这样的问题,使淋浴系统更加适合快速发展的时代,在此设计开发了具有节水理念的智能淋浴系统。将STM32处理器、DS18B20水温传感器、红外人体感应探头、红外人体体温传感器、舵机混水阀搭载于现有淋浴之上,可检测人体体温,根据季节自动设置最佳水温,自动感应淋浴下是否有人,通过PID算法精准控温,OLED显示屏上实时显示水温。选择全自动感应模式后,5 s后达到预设温度的热水流出,可做到人走水断。淋浴底座装有废水回收装置,处理后的废水可正常用于马桶冲洗、拖地等。结果表明该系统应用后节水效果显著,并且易于推广。

关键词:智能淋浴;STM32;多传感器协作;舵机控温;节水;PID算法

中图分类号:TP277文献标识码:A文章编号:2095-1302(2019)07-00-04

0 引 言

随着科学技术的快速普及,人们生活向智能化方向发展,但能源的消耗不容小觑。一方面生活要更加便捷,另一方面能源要更加节约,这样才能真实推动我国可持续发展战略的深入实施[1]。淋浴作为家家户户必不可少的生活设施,不论是在生活还是在能源利用方面都占有相当的分量。现有的淋浴操作方式普遍较为传统,且水温控制十分不便,热冷水的交融比例不宜把控,给洗浴带来诸多不便[2]。另外,几乎所有的洗浴设施都将洗浴所用的废水直通下水道,很少二次利用,这就使得生活用水的利用程度不高,致使资源浪费。利用微型控制器将多传感器复合,以用于淋浴系统,并增添废水回收装置,可解决上述问题。

1 系统总体设计

为了解决现有淋浴系统面临的问题,本文设计一种基于STM32微型控制器的智能淋浴系统。系统总体结构如图1所示,包括装载于淋浴上的STM32F407VGT6处理器、红外人体体温传感器、DS18B20水温传感器、红外人体感应探头、混水阀及电源等模块。淋浴及其装载的传感器模块协同工作。首先,红外人体体温传感器捕捉到人体体温,结合当前季节自动设定最舒适的洗浴温度;DS18B20水温传感器实时检测水温温度;混水阀的旋转按钮由舵机控制,并使用工业控制中常用的PID算法快速精确地控制舵机的转角以控制混水阀中冷水热水的混合程度,达到快速调整混水阀使水温恒定的效果。当水温达到一定温度且红外人体感应探头感应到淋浴下方有人时,便立刻控制电磁阀出水,洗浴过程中也可手动设置调控水温。洗浴废水优先流入淋浴下方的废水收集容器,流入的洗浴废水经过简单处理可用于冲洗马桶、花卉浇灌、拖地等。

2 系统硬件设计

2.1 STM32F407VGT6处理器

本文设计的系统处理器采用Cortex-M4内核的STM32F407VGT6,最高主频为168 MHz,集成DSP和FPU指令。其168 MHz的高速性能使得数字信号控制器应用和快速的产品开发达到了新的水平,提升了控制算法的执行速度和代码效率。同时,提供1 MB 的FLASH,192 KB的SRAM,拥有单精度浮点运算单元,多重AHB总线矩阵和16通道DMA[3],支持程序执行和并行数据传输处理,具有非常快的数据传输速率,在多模块复用中也能快速应答。

2.2 传感器模块

2.2.1 人体体温传感器

非接触红外线测温探头可通过测量目标表面所辐射的红外能量来确定表面温度,淋浴过程需要获得用户体表温度数据以对水温做适当调节,本系统中采用的就是以上技术。Melexis公司推出一款非接触式红外传感测温仪[4-5],

该产品中集成对红外敏感的热电堆检测芯片和信号处理芯片MLX90325,可将其设计封装为非接触式测温模块GY-MCU90615。这是一款低成本的红外测温模块,其工作电压在3~5 V之间,具有功耗小、体积小等特点。通过STM32单片机读取采集到的红外温度数据,以串口通信方式输出。传感器模块串口的波特率可以设置为9 600 b/s或115 200 b/s,具有两种输出方式:连续输出和询问输出,能够适应不同的工作环境,不仅限于和STM32相连,还能与所有的单片机及电脑连接。将此体温传感器嵌入到淋浴显示屏旁边,保证传感器位置位于人体中上部,使得体温测量更合理。MLX90615红外传感测温模块内部结构如图2所示。

2.2.2 水温传感器

本文采用美国Dallas半导体公司的数字化温度传感器DS18B20,其采用导热性高的密封胶灌封,保证了温度传感器的高灵敏性,只有很小的温度延迟。该温度传感器支持“一线总线”接口[6],测量温度范围为-55~125 ℃,在测量温度-10~85 ℃的范围内,此传感器的测量精度在0.5 ℃范围内。所测环境(水体)温度直接以“一线总线”的数字方式传输,提高了系统测温的抗干扰性,在温差较大的环境中也能稳定的测温,满足了稳定性的要求。将水温传感器嵌于淋浴花洒的喷头处,用于实时监测喷口处的水温。

DS18B20数字温度计提供9~12位(可编程设备温度读数)数据。由于DS18B20是一条口线通信,所以STM32F407VGT6处理器与DS18B20只有一个一条口线连接。读写以及温度转换所需能量可以从数据线本身获得,不需外接电源。其结构如图3所示。

2.2.3 人体感应模块

HC-SR501是基于红外线技术的自动控制模块,灵敏度高,可靠性强,直流工作电压为4.5~20 V,输出电压为0~

3.3 V,工作温度[7]范围为-15~70 ℃。当人体进入其感应范围则输出高电平,人离开感应范围则自动延时,高电平关闭,输出低电平。其接口有电源VCC、模拟信号输出OUT、接地GND等。人体感应模块内部结构如图4所示。

2.2.4 OLED液晶显示屏

OLED液晶显示屏具有自发光、不需背光源、对比度高、厚度薄、反应速度快、使用温度范围广、构造及制程较简单等优异特性,被认为是下一代的平面显示器新兴的应用技术[8]。LCD都需要背光,而OLED是自发光的,对于同样的显示效果,OLED会更好一些。以目前的技术,OLED的尺寸还难以大型化,但是分辨率却可以做到很高。在智能淋浴设计中,使用0.96寸OLED显示屏来实时显示数据信息。

0.96寸OLED显示屏的接口方式包括:6800,8080两种并行接口方式,3线或4线的串行SPI接口方式,I2C接口方式等。在本文所设计的淋浴系统中,采用I2C接口方式。

3 系统软件设计

3.1 人体体温传感器

非接触测温模块(GY-MCU90615)具有6个引脚:电源引脚VDD、接地引脚GND、串行数据收发引脚TX和RX、两个内部使用引脚RST和SIM。在使用时,内部使用引脚RST和SIM不需要连接,设置为悬空状态;电源VDD与GND之间须加一个100 nF的电容用来去耦滤波;TX,RX引脚用于串行数据的发送和接收及读取传感器数据[9]。此传感器模块的通信流程如图5所示。

3.2 水温传感器

3.2.1 DS18B20温度传感器

在DS18B20温度传感器中,低温度系数晶振用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振所产生的信号作为减法计数器2的脉冲输入。在设计的智能淋浴系统中,当DS18B20计数门打开时,计数器1对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。

在测量水温前,首先将-55 ℃所对应的基数置入减法计数器1和温度寄存器中。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数。如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。数据传输时序如图7所示。

3.2.2 控制出水温度

準确控制出水温度,快速出水。混水阀的旋转由舵机控制,舵机的转角可由程序精准控制。当系统设定好出水温度,使用工业控制中常用的PID算法快速精确地控制舵机的转角以控制混水阀中冷水热水的混合程度,达到准确控温的目的[10]。PID控制原理如图8所示。

同时,增加补偿措施以补偿热水流经淋浴花洒到达人体表面过程中热量的损失。在洗浴结束后,存留于水管中的水将通过一个固定的通路流到冷水管,因此避免了下次洗澡时最开始一段冷水的浪费。

3.3 人体感应模块

HC-SR501红外人体传感器模块具有以下引脚:电源引脚VDD、接地引脚GND、信号输出引脚OUT。VDD与GND之间须加一个100 nF的电容用来去耦滤波。STM32F407VGT6控制核心检测OUT输出电平,当洗浴区域无人时,检测到低电平,电磁阀关闭;当洗浴区域有人时,检测到高电平,此时打开电磁阀门,可以进行洗浴。当人体离开洗浴区域后,检测到低电平,电磁阀自动关闭,达到人走水断的效果。

4 储水容器设计

在淋浴系统的正下方,设计一个储水区域,并配备有简单的废水处理装置,对洗浴废水做简单的处理。此处采用二层过滤净化模式对废水进行进一步处理。第一层过滤由石英砂、陶瓷粒、麦饭石三种滤料构成。石英砂用于过滤悬浮胶体等颗粒杂质;陶瓷粒用于阻截悬浮物、胶体物及微生物等污染物质;麦饭石用于吸附对植物花卉有害的重金属、大肠杆菌。

第一层过滤从技术上来说是先过滤固体大颗粒与难溶物;第二层过滤由活性炭构成,活性炭用于去除色度、臭味、有机污染物、有毒重金属,防止废水中的有机物在废水二次利用中产生臭味。

经过这样简单处理,洗浴用水可用于冲洗马桶、花卉的浇灌、拖地等。

5 系统测试结果

系统在实验室模拟洗浴环境中进行测试。根据普通的太阳能热水器出水水温大约在70 ℃,将热水管中的水温定在70 ℃,冷水管用水采用不做处理的自来水,以此来给系统供水。用人体温度传感器采集手掌温度代替人体温度,自动设置洗浴水温。系统测试如图9所示。

测试过程中,各路传感器工作正常,各模块之间通信正常。系统在4 s内达到预定水温,检测到人体存在时,即可出水;当人离开洗浴区域时,便立刻停止出水,达到了人走水断的效果。洗浴所用废水,优先储存在下方的储水容器中,用于二次使用。

6 结 语

本文设计一种基于STM32微处理器的节能型智能淋浴系统。该淋浴系统搭载STM32F407VGT6处理器、GY-MCU90615人体体温传感器、DS18B20水温传感器、HC-SR501人体感应传感器,并辅由OLED显示屏实时显示水温,储水区简单处理洗浴废水并储存,用于二次使用。GY-MCU90615用于检测人体数据,并自动设置最适宜的洗浴温度,通过PID算法调节混水阀舵机开度,达到精准控温;同时增加补偿措施以补偿热水流经电子阀门到达人体表过程中热量的损失。当水温达到预定的温度且HC-SR501传感器检测到人体存在时,淋浴自动出水;检测不到人体时,自动停水,可达到人走水断的效果。测试结果表明,与现有的淋浴系统相比,本文设计的智能淋浴系统更智能、更方便,系统运行更稳定,并且可收集洗浴废水二次利用,实现了节水的目的。系统的设计达到了预期的效果。

在未来的改进中,本团队将会实现淋浴的无线通信。用基于Java 的可扩展平台Eclipse 实现安卓客户端对淋浴系统的无线调控,使得系统更加智能化。

参 考 文 献

[1]鞠金达,张婷婷,马万云,等.可控温节水淋浴器的设计[J].科技经济市场,2014(1):8-9.

[2]佚名.智能调温沐浴装置[J].科技资讯,2016,14(2):188.

[3]张英梅,傅仕杰. STM32的智能温室控制系统[J].软件,2010,31(12):14-18.

[4]张玲娜,李想.基于MLX90615传感器的人体非接触式红外测温系统设计[J].电子测试,2014(z1):19-21.

[5]王佳.基于MLX90615和STM32的多点红外温度测量系统设计[J].现代电子技术,2013,36(14): 146-148.

[6]余瑾,姚燕.基于DS18B20测温的单片机温度控制系统[J].微计算机信息,2009,25(8):105-106.

[7]王东,莫先.基于STM32和HC-SR501智能家居的智能照明系统设计[J]. 重庆理工大学学报(自然科学),2016,30(6):135-142.

[8]焦石,王琛,胡泽原,等.基于STM32的OLED显示屏驱动设计[J].电子世界,2018(12):127-128.

[9]王桌培.高精度非接触式体温测量网络化系统研究[D].南京:南京邮电大学,2018:44-48.

[10]贾诚安,叶林,葛俊锋,等.一种基于STM32和ADS1248的数字PID温度控制系统[J].传感器与微系统,2015,34(11):103-105.

猜你喜欢

PID算法节水
坚持节水
节水公益广告
节水公益广告
节水妙想