智能水温控制系统

我要开发同款
蒙学长2022年07月18日
434阅读

作品详情

基于STM32水温控制系统

摘 要
随着计算机应用技术与计算机通信技术的快速发展,人类的生活水平有着显著的巨大变化。大数据和云计算物联网进入我们的生活。
智能控制是自动控制发展的高级阶段,他是一门自动化控制与计算机等高度集成的综合学科,一门新兴的边缘交叉学科。智能控制硬件方面是由单片机微控制器、传感器、执行器构成,软件方面是通过逻辑判断、智能算法结合组成。利用传感器、执行器、单片机功能模块互相协作,传感器主要获取环境数据转交给单片机进行分析,通过分析后的数据进行执行器智能处理。
此设计采用STM32F103微控制器与其他外部设备相结合。外部设备包含直流5V加热棒、Water Sensor水位传感器、光敏电阻、人体红外传感器以及DHT11温湿度传感器等模块,合理分配STM32F103微控制器的IO口。由于传感器在获取数据时,会出现一定的数据误差与外界产生的波动,以及数据突变,运用滤波算法可增加数据的稳定性。此设计致力于完善或取代现阶段的传统加热器。

关键词:智能家居;单片机;水温控制;传感器;

















Based on STM32 water temperature control system

Abstract
With the rapid development of computer technology and communication technology, the living standards of human beings are changing with each passing day. Intelligent control is the advanced stage of the development of automatic control. It is the highly integrated and integrated of automatic control and computer and other disciplines.
Intelligent control hardware is composed of microcontroller, sensors, actuators, software is composed of logical judgment, intelligent algorithm. The graduation project according to the design task and the actual operation of the scheme design and demonstration, and design the corresponding hardware circuit. The sensor, actuator and microcontroller function modules cooperate with each other. The sensor mainly obtains environmental data and transfers it to the microcontroller for analysis. The intelligent processing of the actuator is carried out through the analyzed data.
This design uses STM32F103 microcontroller to combine with other external devices. External equipment includes DC 5V heating rod, Water Sensor, Water level Sensor, photosensitive resistance, human infrared Sensor and DHT11 temperature and humidity Sensor modules, reasonable allocation of IO port of STM32F103 microcontroller, effective use of intelligent algorithm to achieve intelligent Water temperature system, committed to improve or replace the traditional heater at the present stage.
 
Keywords:Smart Home;MUC;Water Temperature Control;Sensor;

前 言

经过大学四年的理论学习与实际操作,深度的学习了物联网(Internet of Things)知识,了解了物联网是由硬件、软件相结合来实现的。物联网是现阶信息技术发展的一种新兴产业,信息技术的组成部分,是国家战略的目标之一[1]。物联网的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较为热门的行业[2]。
物联网背景下的智能家居是物联网现阶段的一个关键组成部分。智能家居目的是可以对室内、室外不同的场景变化进行实时数据监测、数据处理、数据可视化、数据安全、电器安全为目标,替代传统家居,创造一个更舒适,更健康,更智能的生活,STM32作为嵌入式工程师入门级微控制器,是嵌入式工程师技术成长的重要学习路线。选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有37个自定义管脚,性能是DSP的66%、多串口、多ADC、定时器多、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做智能家居的小产品[3]。
完成本次设计意义一是巩固在校期间学习的硬、软件专业知识,扩充课外专业知识,促进知识向能力的转化。二是设计属于自己的作品,为了今后职场考验的锻炼,面对未来的工作有了底气和骄傲。三是希望自己的作品能过进入市场,走到人们的身边,给人们提供一个更舒适,更健康,更环保,更节能,更智慧的科技居住环境。













1 系统概述
1.1 选题依据
物联网是新产业,物联网的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较热门的信息技术行业[4]。
物联网背景旗下的智能家居解决方案可以对室内、室外不同的场景实现实时数据监测、数据处理、电器管理以及电器控制,以智能化、数据可视化、安全为目标,代替传统家居,实现一种全新的智能科技生活方式。

1.2 选题目的
智能水温控制系统是在传统家居的热水器上进行延升而实现的。利用STM32F103微控制器为基础结合智能控制技术,智能控制为目标实现的,完善传统热水器的不足,功能单一、数据不能可视化、人为控制、干烧等一系列问题。

1.3 选题意义
推进国内物联网建设政策,深化物联网的探索与研究,完善智能家居的重要指标,对国家基础建设和发展具有重要价值。同时结合物联网工程、电子信息工程、计算机应用技术学科的相关知识,从新的角度研究,为IT行业的发展提供理论基础,为IT行业进一步提供一定的参考价值。

1.4 国内外研究现状
物联网的发展在我看来,和其他高端领域不同。我国走在世界各国的前面,比如今年的一个新闻,德国引进我国的快递智能分件系统,有效提高了快递分件的效率,原来10个人干的活,现在只需要这么一台机器就可以解决。其实这套分件系统就是使用的物联网技术,在快递上有可识别的标签,传感器识别标签,然后信息交给电脑控制处理,再通过机械臂一一分流,整个过程不超过2秒,即节省人力又节省时间。物联网的到来,就是把万物相连,让每个事件都通过传感器获得信息,然后网络层传输数据,然后电脑处理信息,再由电脑下达指令给智能操作层,不需要人为操作,达到最高的效率[5]。

1.5 主要研究内容
本毕业设计主要硬件设计研究对象为电子产品的外观设计,电路布局设计,以及单片机的功耗问题。锂电池充电放电的电路设计、继电器的原理、加热棒的应用、HDT11温湿度传感器的采集、DS18B20温度探头、光敏电阻的模数转换、有源蜂鸣器的应用、发光二极管的应用、Water Sensor水位传感器的原理、人体红外传感器采集等研究以及数字集成电路原理与应用。
此毕业设计主要软件开发研究对象为STM32作为嵌入式编程,选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有32个自定义管脚,性能是DSP的66%、多串口、多ADC、多定时器、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做智能家居的小产品。

1.6 论文组织结构
本文主要从以下6个部分进行简述:
第一部分:主要叙述该系统的选题依据和目的以及意义。根据国内外研究现状分析该系统是否可行,是否能实现,以及设计思路。
第二部分:主要对该系统设计进行该系统的需求分析和系统性能情况以及运行的开发软件环境和开发硬件性能需求以及硬件型号需求。
第三部分:主要介绍该系统的总体框架,用图片的方式介绍系统结构和系统功能,还有工作流程和数据的传输。
第四部分:主要通过查阅该系统的相关的单片机微控制器和串口通信技术资料,结合自身所学知识,数据分析与实验操作,设计该系统需要用到的技术方案等,来进行叙述。
第五部分:主要描述该系统装置的硬件部分,包含PCB制图、总电路设计、通信电路设计,时钟树配置和引脚配置,有根据性、目的性的运用32个IO口引脚巧妙合理的结合该系统需要的功能模块进行分析配置。
第六部分:一方面描述该系统的系统设计内容与该系统装置使用说明和源代码分析实现。另一方面主要具体描述系统屏幕的两个界面、事件逻辑判断、数据指令、通信交互等应用层模块的介绍。






2 系统分析
2.1 总体需求分析
现阶段热水器的领域上,绝大部分传统的热水器仅支持手动控制,不仅数据不能可视化而且功能单一。根据调研了解,广大用户在使用传统热水器时,热水器基本上都是24小时处于工作的状态;若不及时开启情况下,有时候想用热水又用不上,这一问题从始至终一直是广大用户的烦恼之一。且传统热水器在使用不规范时还会产生漏电危害,干烧导致的驱动电路不稳定,从而引发的火灾等一系列问题。如何能够有效解决上述问题?
跟着国家政策走,从制造强国变为智造强国。智能家居旗下智能热水器孕育而生,智能水温控制系统是在传统的热水器上进行延升而实现的。利用STM32F103微控制器为基础结合智能控制技术,智能控制为目标实现的,完善传统热水器的不足,功能单一、数据不能可视化、人为控制、干烧等一系列问题。
根据实际的需求,智能水温控制系统装置应具有实时室内温度、湿度、光照强度,蓄水容器的水位高度等传感器以及热水装置、红蓝雾状灯、LED指示灯、照明灯、蜂鸣器、按键、可蓄直流电源、OLED屏幕显示、继电器等执行装置。
智能方面应具有一定的数据算法,通过数据算法与自动控制结合,能够对热水装置进行智能控制,安全、可靠且智能的使用。

2.2 性能需求
该系统在功能模块上应达到如下需求:
智能水温控制系统装置方面应具有加热功能,可以使用该系统装置上的按键进行加热的开启和关闭,同时可以设置环境温度、水温、光照、水位阈值。装置的OLED屏幕上可以显示当前的水位值、水温值、温度值、湿度值、光照值、报警信息等数据。智能方面应可以根据用户在该装置上的按键设置的阈值进行判断,实现智能操作。例如,用户设置37℃水温,该装置通过DS18B20水温传感器探头获取水容器的水温,若未到达设置的湿度阈值,且蓄水池内有水的情况下,就会自动打开加热装置进行加热,等待水温至37℃时,则会自动关闭加热装置,实现智能控制效果。
该系统在性能功能上应达到如下需求:
智能水温控制系统装置方面应操作简单,电路布局合理并简洁,加热装置应耐用,电池蓄电能力高、复用性强,可用常见的充电器进行充电;OLED屏幕方面界面应布局整洁、易用、数据精确等,能够有效实时获取室内温湿度、水温、光照强度,水位高度,且能够及时上报、信息推送、智能控制等功能。
该系统主控单片机功能应达到如下需求:
单片机是整个智能水温控制系统的控制中枢,它控制每个子功能模块协调工作,进而完成整个智能水温控制系统的所有功能。本智能水温控制系统选用价格低廉且性能可靠的STM32F103单片机,它属于STM32F系改进增强型单片机,集成了向上或向下计数器和时钟输出等更多功能。STM32的另一个特点是可以工作于低功耗模式,可选择空闲模式和掉电模式。在掉电模式下,时钟停止,RAM数据不丢失,同时其他功能都停止;空闲模式下,虽然CPU停止工作,但RAM、串行口、定时器和中断系统仍能正常工作。STM32F103的这些特点成为了 众多嵌入式控制应用系统首选的单片机[6]。

2.3 运行环境
2.3.1硬件设备
开发PC机:AMD锐龙 R5 2600X 32G内存 2TB容量
主控单片机:具有STM32F103处理器以上
程序仿真器:ST-LINK/V2 - ST-LINK/V2。
外部设备:12*12*MM微动开关,5.8*6.8MM自锁开关,2路5V继电器,5V加热棒,直流红蓝雾状灯,RD-624人体红外传感器,5506光敏电阻,DHT11温湿度传感器,Water Sensor水位传感器,128*64蓝色OLED屏幕,3.3V有源蜂鸣器,发光二极管。
2.3.2程序开发
操作系统:win10
电路设计:Altium Designer 9
电路模拟仿真软件:CZ_OpenSpice
数据分析:串口调试助手
算法测试:Dev-C++
芯片设计:STM32CubeMX
STM32F103程序设计:Keil uVision5
取字模软件:PCtoLCD2002
程序底层驱动生成:STC-ISP






3 系统总体框架
3.1 模型结构
系统的模型结构如图3.1所示:

图3.1水温控制系统的模型结构图示

该系统结构分为三个逻辑层:
系统配置层:系统配置层主要根据功能需求对单片机的各个引脚IO口进行定义、单片机内、外部时钟、ADC模数转换、IIC、SPI、外部中断、串口等配置。这一层是用STM32CubeMX软件始化代码生成器来进行实现的,大大缩短了开发时间[7]。
业务逻辑层:其中有系统功能的实现和命令和逻辑,如温度、湿度采集、水位采集、光照采集、IO口输出、输入、信号解析、逻辑判断、中断处理、事件处理等工作任务。逻辑较为复杂时,只靠单片机内部的轮询方式远远不够,可以进行开启多个外部中断或多个定时器中断以及STM32F103内部的滴答定时器等功能同时处理多个功能模块。
数据通信协议层:数据通信协议层为业务逻辑层提供指令,这一层是运用串口通信和OLED屏幕通信作为解决方案文件实现显示任务。STM32F103作为主控单片机,主控单片机实时获取数据后通过串口发送给OLED屏幕。





3.2 功能模块简介
图3.2 系统的模型结构图示:


图3.2智能水温控制系统的模型结构图示
工作流程为:
打开该系统装置电源开关,STM32F103主控单片机会自动进行系统初始化,各个IO口的输入和输出、SPI、ADC模数转换、PWM脉宽输出、串口通信、外部中断、滴答定时器、T1定时器等功能进行初始化。STM32F103单片机主控单片机初始化完毕后,LED通信指示灯进行200MS周期闪烁,同时与OLED屏幕模块串口对接,进行屏幕初始化,屏幕轮询显示STM32F103主控单片机的系统初始化滚动界面。
整个系统初始化完毕后,STM32F103主控单片机创建任务事件,首先通过DS18B20温度传感器为实时数据采集单元,同时对水位传感器和光照传感器以及人体红外传感器进行实时采集室内环境数据,且与设定存储的阈值进行比较,进行事件消息提醒,显示在屏幕上,并开启相应的指示灯作为提醒作用。采集数据的同时以500MS为周期,通过串口把数据发送给OLED屏幕模块,OLED屏幕模块通过串口接收到数据后,通过OLED屏幕驱动芯片进行屏幕显示。
同时,用户也可以直接使用该系统装置上的微动开关按键进行设置,设定室内温度、光照、水位、蓄水池水温完毕后,该系统装置的主控单片机数据与OLED屏信息同步,自动开启逻辑判断功能、智能事件处理。

















4 技术介绍
4.1 STM32与单片机简介
其实单片机就是一个简单的中央处理器,也是一个芯片,我们叫做CPU。我们可以对单片机进行编程,设定程序,给它任务让它在我们设定的规则下处理信息,然后输出信息,交给下一层,进行实际操作。STM32就是单片机的一类型号,它有低功耗,系统稳定,质量可靠,可编程程度高等优点,所以我选用STM32进行设计实现。

4.2 CAN外围收发电路
CAN收发器我采用的是TJA1050。本系统的CAN外围电路如图4.1所示,其中在芯片的S端口设置切换开关,用来选择正常/静默模式,发送接收端口直接与STM32的CAN控制器映射端口相连[8]。

图4.1CAN外围收发电路图示

4.3 串口通信简介
数据包结构:
①包头——每个数据包的前一段字符,就是数据包的头部分,它的作用是告诉接收方开始传输数据了,或者是进行数据,地址的匹配;
②地址——数据信息要传输到的目的地;
③包长度——指示整个数据包的长度;
④命令——指示本数据包的作用;
⑤参数——需要传送的数据与参数;
⑥校验——有一组或多组验证字符,就像我们登录某网页的时候,需要用验证码一样;
⑦包尾——告诉接收方,数据已经传输完毕,就相当于一种外包装,告诉你这个数据包已经传输完成了。

5 系统详细设计
5.1 基于STM32智能水温控制系统总体电路原理图
此系统装置采用STM32F103最小系统板与OLED屏幕驱动模块进行组合。采用2000mA可蓄5V电池供电,两者通过3,3V降压芯片进行降压处理,同时共VCC和GND,并配备两个10PIN口的接线端子共给两块单片机作为源代码的下载入口,以及两个MX232芯片作电平转换,作为两个单片机的串口通信向PC端发送数据,便于数据分析与调试[9]。
为了此系统装置的电路简洁,LED指示灯、微动按键开关采用共阴接线方案,此方案可以避免电流灌流、回吸等问题。每个功能模块在接入STM32F103最小系统板时,都合理的搭配电容、电阻、点解等元器件,如LED指示灯、蜂鸣器等执行器搭配下拉电阻;微动按键开关、信号输入模块搭配上拉电阻;水位、温湿度、水温、光照、人体等传感器将根据不同的应用效果,搭配上拉或下拉电阻。目的是消除人为对系统装置的抖动、减小数据误差、提高系统装置稳定性[10]。
智能水温控制系统总体电路原理图如图5.1 所示:

图5.1水温控制系统的电路原理图示






5.2 串口通信电路
STM32F103最小系统板与OLED屏幕相隔距离近,属于近距离串口通信,所以无需MX232芯片进行电平转换,共VCC和GND即可实现近距离串口通信[10]。若要和PC开发机进行串口通信则需要使用MX232芯片进行电平转换,且必须通过TTL仿真器作为数据中转处理、电平转换、接口更变为USB才能与PC通信[11]。
STM32F103与OLED屏幕串口通信电路如图5.2所示:

图5.2 STM32F103与OLED屏幕串口通信电路图示

5.3 时钟树配置
此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了IIC、SPI、串口等通信协议,2个ADC采集和6个输入、15个输出引脚、2个定时器[12]。
ADC:用于模数转换光照强度和水位值。
IIC:使用串行总线通信协议读取DHT11温湿度传感器的采样值。
SPI:作用于OLED屏幕的数据交互和显示。
串口:用于两块单片机的串口通信以及PC开发机的数据分析。
输入IO口:用于人体红外传感器和微动开关按键输入功能(低电平为有人和按键按下,高电平为无人和按键抬起)。
输出IO口:用于LED灯、继电器、蜂鸣器的输出。
定时器:定时器设置为PWM输出功能,改变加热模块的输出电压操作。
STM32F103时钟树配置如图5.3所示:




图5.3 STM32F103时钟树配置图示

5.4 管脚配置
IIC管脚为:PB7、PB6
SPI管脚为:PD0、PD1、PA13、PA14
串口管脚为:PA2、PA3、PA9、PA10
ADC管脚为:PA0、PA1(ADC1中断查询,2个通道分别为Rank1、Rank2)
输入管脚为:PC13、PC14、PC15、PB8、PB13
输出管脚为:PA5、PA6、PA7、PB12、PB15、PA11、PA15、PB3、PB4、PB5
PWM输出管脚为:PAB
系统管脚配置如图5.4所示:





图5.4水温控制系统的引脚图示


5.5 算法分析实现
在数据的接收中,每秒都会获得很多数据,而我们不能把每个数据都采用或者说叫都展示出来,一秒钟在显示屏上变化50次甚至更多,那没有意义,我们就要想办法获得更接近真是数值的数据,排除数据的波动,这就是滤波法的意思。其中我们有中位值滤波法、算术平均滤波法、递推平均滤波法[13]。
5.5.1中位值滤波法
虽然温度、湿度等数据都是缓慢变化,但直接读入的数据依然不可直接作为有效数据,若当数据发生突变时,直接读入的数据会导致产生相应的事件错误,导致错误处理发生。
中位值滤波法就是一段数据按大小排列,取中间个数据作为有效数据,如果为两个数,则取这两个数的平均数。
中位值滤波法如图5.5所示:






图5.5中位值滤波法图示


5.5.2算术平均滤波法
光照传感器的硬件结构是通过电阻的阻值的变化而变化的,所以光敏电阻很灵敏,读入数据时产生的波动非常大,不能因为发生突发事件(光照传感器突然被人遮住),产生的错误逻辑判断,导致之后执行事件错误,引发的元器件损坏。
算术平均滤波法,就是把这一段数据全部加起来,然后除以数据的个数,取得他们的平均数,然后以这个平均数作为有效数据[14]。
算术平均滤波法如图5.6所示:



图5.6算术平均滤波法


5.5.3递推平均滤波法
递推平均滤波法其实就是算术平均滤波法的升级,当一段数据已经完成了算术平均的计算和有效值的取用,接收到了新的数据时,重新进行算术平均计算会数据会不准确,这时候我们会采用递推平均滤波法。在前一段算术平均计算完的基础上去掉第一个数据,加上新收到的这个数据,如果接收到的是多个数据,那就去掉前面多个数据,然后进行算术平均。当再出现新的数据,再进行相同的操作,一直推下去,这就是递推平均滤波法了[15]。
递推平均滤波法如图5.7所示:


图5.7算术平均滤波法









6系统实现
6.1 系统设计内容介绍
1.智能水温控制系统电源接通开机状态下,水温控制系统进行时钟频率、GPIO、串口、IIC、ADC、SPI、定时器、按键、传感器、OLED屏幕等系统初始化,OLED屏幕显示当前环境数据界面。
2.通过手动按下按键可以进行加热器模块的开启和关闭;OLED屏幕数据界面、阈值设置界面切换;蜂鸣器发声和勿扰模式以及系统手动、智能模式的切换功能。
3.智能水温控制系统通过STM32F103单片机实时读取和处理传感器获取的值,同时与OLED屏幕数据同步,进行实时显示当前温度、水温、光照、湿度值、消息事件、任务事件等数据,进而实现数据可视化。
4.当STM32F103单片机没有读取到智能水温控制系统装置其任何传感器发送的数据时,自动判定该传为异常或视为损坏,产生相应的报警信息显示在OLED屏幕上,同时,亮起相应报警指示灯,有效及时提醒系统使用者,便于重新调试该系统。
智能水温控制系统如图6.1所示:

图6.1智能水温控制系统图示



6.2 系统使用说明
1)系统初始化说明:
智能水温控制系统接入电源时,并处于开机状态下,智能水温控制系统默认关闭所有LED指示灯
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论