基于STM32F103RCT6单片机的智能节水控制系统设计与应用
2024-05-30杜娟
杜 娟
(酒泉职业技术学院,甘肃 酒泉 735000)
0 引言
我国是人口大国,水资源匮乏,水污染严重,节约水资源势在必行,居民生活用水的节水需求更是迫在眉睫。居民生活用水主要包括家庭用水和公共场所用水[1]。公共场所主要包括商场和学校这类场所。本文以学校这类场所为主,讨论学校的卫生间用水情况,并针对现有情况,提出改进的智能节水控制系统方案。
学校现有的卫生间主要有坑位式卫生间和长槽式卫生间,坑位式卫生间多采用红外感应进行冲水控制,长槽式卫生间主要采用定时冲水。以上2种冲水控制方式均为独立式控制,控制系统简单,功能单一。若某个坑位的检测器或长槽的控制器出现故障,则可能出现不能冲水或冲水不停的情况,从而引发卫生间卫生环境差或水资源浪费严重等问题。
本文从功能、节能多方面考虑,研究了一种以单片机为控制核心,以传感器、电磁阀、水流量计、定时器、键盘、TFT1.8寸屏等器件构成外围电路的控制系统。该系统可在不同时间段自动开启不同的冲水模式,提高了节水效率。同时,该控制系统融入物联网技术,实现了网络监控界面开发和整个控制系统信号的汇集、传输,为相关人员做好系统数据监测、故障处理提供了便利。该系统具有节水效率高、智能化程度高、可联网运行、操作方便、控制方式多样等优点。
1 系统整体设计
基于STM32F103RCT6单片机的智能节水控制系统结构如图1所示。
图1 智能节水控制系统结构
该智能节水控制系统不再采用简单的数字芯片、模拟芯片进行系统控制,而是将STM32F103RCT6单片机作为核心控制芯片。智能节水控制系统设计包括相关硬件电路、软件程序、云平台的设计。
系统硬件电路主要包括单片机最小系统、电源模块、无线模块、时钟模块、按键模块、显示模块、水流量检测模块、继电器模块、电磁阀模块、人体检测模块等。系统软件程序的设计主要包括单片机内部程序的设计、云平台监控界面的设计。
该控制系统的最小系统主要有STM32F103RCT6单片机、时钟电路、复位电路[2]。时钟电路用来产生单片机工作时所必需的时钟信号,单片机在时钟信号的控制下,严格按照时序执行指令,使单片机能够准确有序地进行工作。复位电路可以让单片机完成系统的初始化,同时也可以在程序跑飞或者系统出现错误运行时,使单片机复位,重新运行程序。电源模块主要给控制系统提供不同电压的转换;无线模块主要实现控制系统和云平台相关数据的上传下达[3];时钟模块主要给整个控制系统提供精确的时间信号,可以使单片机在一年内不同的时间段里,完成不同的工作;按键模块主要实现系统4种工作模式的切换;显示模块主要显示控制系统的所有状态信息;水流量检测模块主要完成各条支路的用水量检测;继电器模块主要根据控制信号接通或断开相关的电磁阀;电磁阀模块主要控制冲水水道的通断;人体检测模块用来检测是否有人使用卫生间和是否向控制器发送信号启动电磁阀冲水。
在该控制系统的电路中,单片机STM32F103RCT6是整个控制系统核心,主要通过运行载入的程序,进行整个系统信号的监测、处理和传输,对系统的控制情况起着决定性作用。通过对整个控制系统的控制,完成对卫生间坑位是否有人的数据采集、是否启动电磁阀冲水操作、是否将相关数据上传到OneNET云平台上、将相关数据显示在显示屏上等操作。
2 系统硬件设计
本系统的硬件电路主要有单片机最小系统、电源模块、无线模块、时钟模块、按键模块、显示模块、水流量检测模块、继电器模块、电磁阀模块、人体检测模块等。
2.1 主要器件选择
2.1.1 单片机选择
考虑到整个系统设计所需要的端口、内部定时器、中断系统以及相关串行口等单片机内部资源,本系统选用STM32F103RCT6进行整个系统的信号采集、处理、传输。
2.1.2 时钟模块选择
时钟模块类型较多,主要有Wi-Fi智能授时时钟模块、DS1302/3231/1307实时时钟模块等。Wi-Fi智能授时时钟模块每天可以自动通过网络对时,价格昂贵,DS1302/3231/1307等实时时钟模块是自带电池的高精度计时模块,价格便宜。本系统选用DS1302实时时钟模块。
2.1.3 Wi-Fi模块选择
Wi-Fi模块类型较多,但适合做小系统联网的是ESP8266 Wi-Fi模块。该模块体积小、引脚少,可以兼容3.3 V和5 V单片机系统,内置TCP/IP协议栈,采用串口与单片机(或其他串口设备)通信,能够实现串口与Wi-Fi之间的转换[4],支持串口转Wi-Fi STA、串口转AP的模式,从而快速构建串口—Wi-Fi数据传输方案,同时可以免费接入各种云服务器。本系统选用ESP8266 Wi-Fi模块实现系统联网和数据的传输。
2.2 硬件电路接口设计
2.2.1 单片机控制系统接口设计
该控制系统中单片机与其他模块的接口如图2所示,主要包括单片机与电源模块、无线模块、时钟模块、按键模块、显示模块、水流量检测模块、继电器模块、人体检测模块接口的设计。
图2 单片机控制系统接口
2.2.2 电源模块接口设计
本控制系统是一套节水装置模拟系统,由3节3.7 V的锂电池提供12 V的直流电源,再由降压芯片降为5 V,分别向各部分电路提供电源。电源模块接口如图3所示。
图3 电源模块接口
2.2.3 无线模块接口设计
本控制系统具有联网功能,采用ESP8826 Wi-Fi模块实现系统联网。系统中水流量数据、电磁阀工作状态等数据均可上传到OneNET物联网平台的监控界面上,同时也可以通过操作OneNET物联网平台监控界面的开关控制电磁阀的工作状态。ESP8826 Wi-Fi模块与单片机的接口如图4所示。
图4 ESP8826 Wi-Fi模块与单片机的接口
2.2.4 时钟模块接口设计
该控制系统使用的时钟模块是DS1302实时时钟模块。DS1302实时时钟模块是一款自带电池的高精度计时模块,与单片机的接口如图5所示。DS1302与单片机之间可以采用同步串行方式进行数据的通信[5]。DS1302实时芯片与单片机接口如图5所示。
图5 DS1302实时芯片与单片机接线
2.2.5 按键模块接口设计
该控制系统使用的按键有6个,按键与单片机的接线如图6所示。按键模块主要是实现系统的自动冲水控制模式、手动冲水控制模式、远程控制模式、故障模拟模式的切换,可以完成各种模式下的具体控制。
图6 按键与单片机接线
2.2.6 显示模块接口设计
本控制系统显示的参数较多,故采用TFT1.8寸显示屏。在该显示屏上具体显示水流量传感器检测的瞬间水流量值和累计水流量值、Wi-Fi的联网状态、系统的工作模式、具体的时间、各个卫生间有无人情况等信息。显示屏与单片机的接口如图7所示。
图7 显示屏与单片机接线
2.2.7 水流量检测模块接口设计
本控制系统完成了一栋楼中的4个坑位相应的水路和1条总水路的水流量检测,采用YF-S201水流量传感器。系统共有5个水流量传感器,分别检测总水路上的水流量信息和4条支路上的水流量信息。水流量传感器与单片机的接口如图8所示。
图8 水流量传感器与单片机接线
2.2.8 继电器模块接口设计
本控制系统中5条水路的控制分别由5个继电器控制5个电磁阀的通断实现。单片机接收到人员使用完卫生间的信息或监控界面开关控制信息后,开启相应的继电器,控制相应的电磁阀通断,进而控制卫生间相应坑位是否冲水。水流量传感器与单片机接口如图9所示。
图9 水流量传感器与单片机接线
2.2.9 人体检测模块接口设计
本控制系统具有人体检测功能。该功能采用距离可调的对管反射型光电开关,可准确检测人员是否离开坑位,确定是否冲水。人体检测模块与单片机接口如图10所示。
图10 人体检测模块与单片机接线
3 系统软件设计
在本文设计的智能节水控制系统中,硬件电路的设计大大提高了卫生间冲水的效率,节约了水资源,而软件程序的设计也是非常重要的。该系统程序设计主要涉及了主程序、串行通信子程序、Wi-Fi联网子程序、MQTT物联网子程序、中断服务子程序、看门狗子程序、定时器子程序、数据上传子程序、按键扫描子程序、数据下发子程序、水流量检测子程序、人体检测子程序、LCD显示子程序、报警子程序、DS1302定时器子程序。从整体上来看,该系统主要按照系统联网—模式切换—功能实现的步骤完成任务,实现节水系统的智能控制。
3.1 主程序设计
主程序主要实现了各电路模块的初始化、键值的读取、控制功能的切换、数据的显示、电磁阀状态检测、人体检测、Wi-Fi网络连接检测和执行。主程序流程如图11所示。
图11 主程序流程
程序初始化主要完成单片机的初始化、串行通信初始化、Wi-Fi模块的初始化、连接云IoT平台MQTT服务器的参数初始化、继电器初始化、显示模块初始化、定时器和外中断初始化、DS1302时钟模块初始化等工作。
3.2 子程序设计
串口通信子程序、Wi-Fi联网子程序、MQTT物联网子程序的相互配合,使数据通过Wi-Fi网络上传到OneNET平台、操作从OneNET平台的监控界面上通过Wi-Fi网络下达到控制系统。
在中断服务子程序中设计了串口2接收中断函数、DMA1通道7中断服务函数等中断服务函数,可实时满足智能控制系统的各种需求。
定时器子程序主要设置了2 s、3 s、30 s的不同定时,可满足控制系统在不同工作下对定时器的需求。
看门狗子程序主要进行了喂狗的设置,保证控制系统出现意外的时候能自动复位,保证系统的稳定运行。
数据上传子程序、数据下发子程序主要进行了系统的水流量、电磁阀工作状态的上传、电磁阀工作状态的操作。
按键扫描子程序主要进行了控制系统功能的切换和电磁阀的通断控制。
LCD显示子程序主要进行了系统联网情况、实时水流量数据、累计水流量数据、系统工作状态、有无人员用水、故障系统的显示。
水流量检测子程序主要通过水流量传感器实现了实时水流量和累计水流量的检测。
人体检测子程序通过中断机制的应用,实时检测了人员使用卫生间的情况,根据需要启动冲水装置。
报警子程序主要设置了电磁阀超时冲水的报警,通过该设置可以实时监测电磁阀的工作状态是否正常。
在DS1302定时器子程序中,通过设置不同的时间段,实现不同时间段的不同冲水效果。使用密集时间段内感应短时快冲,密集时间段结束时长时冲洗,非密集时间段内感应正常冲水。
4 系统调试
本文设计的智能节水控制系统已完成实物模型的设计,调试包括硬件调试和软件调试。硬件调试主要是系统通电运行程序后,根据具体的现象,不断调整硬件电路的设计;软件调试主要是在编程的过程中,合理地调配、使用单片机内部资源,根据单片机运行程序后显示的现象,不断地调整参数的设置、程序的设计。最终将设计合理的程序下载到实物模型中,实现目标功能。
经测试,该智能节水控制系统能准确地检测到人员使用卫生间的情况、正确地开启关断电磁阀实现卫生间冲水控制、在设定的不同时间段内启动不同的冲水控制策略、在TFT显示屏上正确显示系统的各种参数、正确地切换系统的各种工作模式、实现控制系统和OneNET物联网平台之间的数据传输和信号控制。智能节水控制系统的控制功能符合要求,实物模型如图12所示。
图12 智能节水控制系统的实物模型
5 结语
基于STM32F103RCT6单片机的智能节水控制系统设计,对于改变传统的独立式感应冲水控制系统具有很好的应用效果。该系统集成度更高、智能化更强、精准度更高、节水效果更好,具有一定的实用价值。