基于stm32的室内温度控制系统设计与实现.docx

上传人:封****n 文档编号:96763520 上传时间:2024-03-19 格式:DOCX 页数:21 大小:843.43KB
返回 下载 相关 举报
基于stm32的室内温度控制系统设计与实现.docx_第1页
第1页 / 共21页
基于stm32的室内温度控制系统设计与实现.docx_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《基于stm32的室内温度控制系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于stm32的室内温度控制系统设计与实现.docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于stm32的室内温度控制系统设计与实现摘要:随着社会的飞速进步,温度的测量和控制变得越来越重要;温度在人们的生活和工作上都发挥很重要的作用,在生活上,温度的变化会影响着人们的身体和情绪。不同的环境会有着不同的温度,对于每个人的影响都是不一样的。有些人会随着温度的变化产生不同的情绪,人会因为情绪对身体造成一定的伤害。人的基本情绪包括喜、怒、哀、惧。积极的情绪能够使人体健康,有利于身体成长。消极情绪会对人体的五脏六腑造成坏影响;如果长期处于消极情绪会不利于身体的生长。生理学家研究表示,合适的室内环境有利于人体健康。夏季时室内温度范围在22到28摄氏度,冬季时室内温度范围在16到24摄氏度。室内

2、温度过低,会不利于人们的身体健康;室内温度过高,会使人的体温调节系统处于高负荷状态,容易患上疾病。在工作上,温度的变化会影响人们的工作效率和工作完成情况。在炎热或者是寒冷的环境下工作,人们的工作效率会大大降低;在舒适的环境下工作,人们的工作效率会大大提升。本设计采用以STM32单片机为主来开发室内温度控制系统,通过采用传感器收集室内温度,对收集的室内温度进行处理并通过ILI9341液晶屏显示。用户可以通过按键调节可控制的最高温度,来对室内温度进行一定的控制。该系统具备温度采集、温度显示以及温度控制功能。关键词:温度控制,DTH11, stm32单片机,室内温度Design and implem

3、entation of indoor temperature control system based on stm32Abstract: with the rapid progress of society, temperature measurement and control become more and more important; Temperature plays a very important role in peoples life and work. In life, the change of temperature will affect peoples body

4、and mood. Different environments will have different temperatures, which will have different effects on everyone. Some people have different emotions depending on the temperature, and different emotions have different effects on the body. Peoples basic emotions include joy, anger, sorrow and fear. P

5、ositive emotions keep the body healthy and conducive to physical growth. Negative emotions can have a bad effect on the bodys internal organs; If you are in a negative mood for a long time, it will do harm to the growth of your body. Physiologists study that the right indoor environment is good for

6、human health. Indoor temperatures range from 22 to 28 degrees Celsius in summer and 16 to 24 degrees Celsius in winter. Indoor temperature is too low, will be bad for peoples health; Indoor temperature is too high, can make the persons body temperature regulation system is in the high load condition

7、, easy to suffer from disease. At work, temperature changes can affect peoples work efficiency and work performance. Working in hot or cold environment, peoples work efficiency will be greatly reduced; Working in a comfortable environment, peoples work efficiency will be greatly improved.This design

8、 adopts STM32 microcontroller as the main to develop the indoor temperature control system, through the use of sensors to collect indoor temperature, the collected indoor temperature processing and through the ILI9341 LCD display. Users can press the button to adjust the maximum temperature to contr

9、ol the indoor temperature. The system has the functions of temperature collection, temperature display and temperature control.Key words: temperature control, DTH11, stm32 SCM, indoor temperature目 录第1章 绪 论11.1 课题的背景分析11.2 课题研究的意义1第 2 章 系统需求分析22.1系统功能模块分析22.2系统目标22.3系统开发环境2第 3 章 系统设计33.1 系统构成33.2控制模块

10、33.2.1 STM32简介43.2.2 STM32的主要优点43.3温度采集模块43.3.1 DHT11的介绍53.3.2 DHT11的工作原理53.4 显示模块63.4.1液晶显示器简介63.4.2 ILI9341液晶简介63.5风机模块73.6按键模块8第 4章 系统实现94.1系统实现分析94.2 主程序设计94.3温度测量子程序104.4温度显示子程序11第5章 系统测试125.1测试125.1.1 硬件测试125.1.2软件测试125.2实验现象135.3故障分析135.4测试分析14参考文献15结束语16致 谢17第1章 绪 论1.1 课题的背景分析温度是人们生活和工作中不可缺少

11、的一个重要因素,没有了温度,人们的生活会变得很不方便。在工作上,温度在很多领域上都扮演着很重要的角色。比如,工业冶金方面需要温度的测量,才能判断金属的熔点。在医学方面,温度是一个好帮手,医生可以通过温度计来判断一个人是否发烧。在人们的生活中,不同的温度会影响的人们的身体和心情。人们在炎热的温度下,人们会变得很暴躁,不利于人们的工作和身体调养。在寒冷的温度下,人们身体会发生颤抖,很容易使人们发烧感冒。所以说,不同的温度对人们有着很大的影响。我国经济发展起来了,许多的智能家居被用于人们的生活中。人们更好地享受生活,往往会对温度特别重视。以前,人们进行降温都是使用扇子扇风或者是树下乘凉。现在不少家庭

12、都有着风扇或者是空调,能帮助人们进行降温。在北方,还有暖气进行室内的升温,使得室内外温度相差极大。1.2 课题研究的意义课题研究的意义主要是让生活在信息时代的学生,将所学知识应用于生活当中,掌握系统总体设计的流程,方案的论证,选择、实现与完善。在实现系统的过程中,更好地提升自己的能力。第 2 章 系统需求分析2.1系统功能模块分析室内温度控制系统是一个通过DHT11传感器进行温度测量来控制电机进行降温的系统,该系统包含以下几个模块:(1)温度采集模块 通过利用DHT11传感器读取室内的温度(2)温度显示模块 将通过DHT11传感器测量的温度进行处理,通过处理的数据显示在显示屏屏幕上,同时显示设

13、置好的最低温度和最高温度(3)温度控制模块 用户可以通过按下按键K1、K2来设置最高温度的数值,当室内温度大于最高温度时,电机则转动从而进行降温;当室内温度小于最高温度和最低温度时,电机则停止转动。系统功能模块图如图2-1所示。图2-1 系统功能模块图2.2系统目标 该系统是以STM32单片机为主来开发的系统,该系统主要开发的对象是生活水平不是很高的人们,通过该系统,可以让他们享受热冷舒适的生活。2.3系统开发环境该系统采用Keil uVision5软件配合STM32单片机及仿真器Fire-Debugger进行开发,Keil提供了一个可以编辑程序、编译程序、调试和仿真的开发环境,还提供丰富的库

14、函数,方便开发时调用。在Keil调试完后,可以通过仿真器下载到单片机开发板上运行。第 3 章 系统设计3.1 系统构成 该系统有三个功能模块,分别是温度采集、温度显示、温度控制功能模块。不同的功能需要不同的元器件构成。温度采集模块需要DHT11传感器。温度显示模块需要ILI9341液晶屏。温度控制模块需要电机驱动模块。3.2控制模块该模块的主要任务是完成将DHT11温湿度传感器搜集的数据经过处理,处理后向执行温度显示模块的程序,将已处理的数据显示在屏幕上,并设定好最低温度和调控的最高温度。当用户通过按键调节最高温度大小时,可以通过判断改变电机的转动的状态。控制模块有五个GPIO端口,分别是GP

15、IOA、GPIOB、GPIOC、GPIOD和GPIOE。其中,GPIOA有13个引脚,GPIOC有14个引脚,GPIOD、GPIOB、GPIOE都有16个引脚。不同的GPIO端口的每个位可以由软件分别配置成输入或输出模,输入模式可以分为四类。输出模式可以分两类,一类是通用输出,另一类是复用功能输出;不管是通用输出还是复用功能输出,都只有推挽输出模式和开漏输出模式。控制模块原理图如3-1图所示。图3-1控制模块原理图3.2.1 STM32简介STM32是高性能、低成本、低功耗、可载剪的嵌入式应用设计的嵌入式单片机。STM32按照性能来分类,可以分为极端低功耗系列、主流系列和高性能系列。不同的系列

16、又有不同的型号,用户可以根据自己的需求选择不同系列的不同型号的STM32单片机来完成功能。STM32VET6单片机是一个三十二位的处理器,内核为Cortex-M3。内核和外设之间由四个驱动单元和四个被动单元连接。驱动单元可以理解为CPU部分,被动单元可以理解为外设。内核用ICode读取指令来执行程序。驱动单元包括DCode总线、系统总线、DMA总线。DCode总线用来读取数。系统总线主要是访问外设的寄存器。DMA总线主要是用来传输数据。内部的闪存存储器是Flash,内部的SRAM是RAM;FSMC是静态的存储器控制器,通过FSMC,可以扩展内存。AHB到AHPB的桥是指从AHB总线延伸出来的两

17、条APB2和APB1总线。STM32VET6单片机内置嵌套向量式中断控制器,可以处理多个中断屏蔽通道和优先级。该单片机有四个可同步运行的标准定时器和两个基本定时器以及两个高级定时器,每个定时器功能或多或少都是有差别的。3.2.2 STM32的主要优点STM32的主要优点如下:(1)高性能、低成本、可载剪(2)易开发,有着方便调用的库函数(3)集成了十分丰富的接口,通信模块以及其余功能模块。(4)开发工具相当齐全,开发材料比较丰富。(5)可选择的型号非常多,实时性强。3.3温度采集模块 该模块主要功能是实现对周围环境温度的采集。DTH11将采集回来的数据进行转换,并发送到单片机。3.3.1 DH

18、T11的介绍DHT11传感器用于温度环境的采集。其中,DHT11传感器有着四个引脚,分别是DATA引脚、NC引脚、VDD引脚、CND引脚。如图3-2 DHT11原理图所示。图3-2 DHT11原理图DHT11的功能特点:(1)全量程标定校准,单线数字输出;温度测量范围为0 +50摄氏度,温度测量精度为1摄氏度;(2)响应时间小于5秒,低功耗,超长的信号传输距离,出色的长期稳定性,超小体积,电路连接方便。DHT11传感器的四个引脚起着不同的作用,VDD引脚和GND引脚可以让DHT11传感器正常工作;NC引脚编程时一般都没有被用到,所以被作为空脚;DATA引脚则被用于传送数据。如表3-1 DHT1

19、1引脚说明表所示。表 3-1 DHT11引脚说明表引脚名称注释1VDD供电3 到5.5VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极3.3.2 DHT11的工作原理DHT11的工作原理:传感器接通电源后,先测量环境温度再保存温度数据。DHT11传感器的DATA引脚上拉电阻,保持高电平状态。STM32微处理器的相应引脚设置为输出同时保持输出低电平,并且低电平保持时间为18毫秒。然后,输出高电平,输出时间保持30纳秒;然后STM32微处理器的相应引脚设置为输出模式,等待DHT11发出回答信号。当DHT11传感器的DATA引脚检测到外部信号有低电平时,等待外部信号低电平结束

20、。延时后DHT11的DATA引脚处于输出状态,输出80纳秒的低电平作为应答信号,接着输出80纳秒的高电平通知外设准备接收信号,STM32微处理器的相应引脚处于输入状态,检测到引脚有低电平后,则等待数据的接收。数据接收完成后,引脚改为输出模式,DHT11的DATA数据线上拉低电平。3.4 显示模块采用ILI9341液晶屏显示屏来显示传感器收集的数据,数据以字符串的形式在屏幕上显示 。屏幕上还可以显示最低温度和可以控制的最高温度。3.4.1液晶显示器简介液晶显示器,简称LCD。LCD显示器具备功耗低、抗干扰能力强等长处。LCD根据不同的用途可以有不同的尺寸。小到手机、智能手表,大到电视屏幕、电脑显

21、示器。液晶显示器通过控制光线透过率配合彩色滤光片以及改变液晶电压来改变颜色的透光里实现输出不同的色彩。3.4.2 ILI9341液晶简介该系统采用分辨率为320*240的3.2寸电阻液晶屏,液晶屏内部包含有一个液晶控制芯片ILI9341,该芯片最主要核心部分是位于中间的GRAM(Graphics RAM)。ILI9341可以操作1.65V3.3伏输入输出接口电压和一个内置的电压跟随器电路来产生用于驱动LCD的电压电平。ILI9341支持三种模式,三种模式是指全彩或8色显示以及休眠模式。通过软件精确的功率控制和这些功能,使得ILI9341成为中小型便携产品的理想。移动图像区域可以通过窗口地址函数

22、在内部图中指定。ILI9341控制器根据自身的IM3:0信号线电平决定它与MCU的通信方式,它本身支持SPI及8080通讯方式。本次系统的ILI9341控制器配置为8080接口通讯,使用16根数据线的RGB565格式。内部硬件电路连接完,剩下的其它信号线被引出到FPC排线,最后该排线由PCB底板引出到排针,排针再与STM32芯片连接。引出的排针信号线如图3-3所示。液晶屏引出的信号线说明如下:LCD_DB15:0 : 数据信号LCD_RD : 读数据信号,低电平有效LCD_RS : 数据/命令信号,高电平时,LCD_DB表示数据信号;低电平时,LCD_DB表示命令信号。LCD_RESET :

23、复位信号,低电平有效LCD_WR : 写数据信号,低电平有效LCD_CS : 片选信号,低电平有效LCD_BK : 背光信号,低电平有效GPIO5:0 : 触摸屏的控制信号线图3-3液晶屏引出的信号线图3.5风机模块该系统采用L298N电机驱动模块与微型130电机小马达相连,L298N电机驱动模块是一款双H桥电机驱动芯片。L298N电机驱动模块可以直接使用单片机输出输入端口提供的信号,电路简单,使用方便。微型130电机小马达正负两极焊接上杜邦线的一端,杜邦线的另一端与L298N电机驱动模块的OUT3和OUT4连接,L298N电机驱动模块的IN1和IN2与STM32F103VET6的PB0引脚和

24、PB1引脚连接。通过改变TIM_SetCompare函数的比较值来改变占空比来使电机转动。当室内温度大于最高温度时,微型130电机小马达开始转动;当室内温度低于最低温度和最高温度时,微型130电机小马达停止转动。微型130电机小马达属于有刷直流电动机,其性能是多种多样的,其额定功率为3V。微型130电机小马达如图3-4所示。图3-4微型130电机小马达图3.6按键模块该模块的主要作用是配合ILI9341液晶屏控制最高温度的大小,STM32单片机上有着两个控制功能按键。在本次设计中,按键K1负责最高温度数值的增加;按键K2负责最高温度数值的减少。按键K1、K2采用if判断语句进行对最高温度数值的

25、增加和减少。当按键K1被按下时,单片机会检测到PA0引脚发出的低电平信号,执行最高温度的增加指令。当按键K2被按下时,单片机会检测到PC13引脚发出的低电平信号,执行最高温度的减少指令。按键K1连接着GPIOA端口的PA0,按键K2连接着GPIOC端口的PC13。当用户按下时,最高温度的数值会因按键被按下的次数发生改变。按键原理图如图3-5所示。图3-5按键原理图第 4章 系统实现4.1系统实现分析室内温度控制系统由三个功能模块组成。为了实现该系统的功能需求,将三个功能模块分别进行相应的程序编写。温度采集模块则通过编写温度测量子程序来实现该模块的功能,温度显示模块则通过编写温度显示子程序来实该

26、模块的功能,温度控制模块为系统的核心组成,将该模块作为主程序进行编写。4.2 主程序设计首先是初始化单片机端口,在STM32控制器中配置寄存器和I/O端口,再初始化相应的端口,即调用函数进行初始化,然后编写用户任务程序。程序设计如下:第一,将DHT11传感器读取到的数据通过STM32的处理获取的数据。第二,将获取的数据送到ILI9431液晶屏,通过字符串的形式显示出来。同时,显示设定好的最低温度和最高温度。第三,首先判断按键是否按下,如果按键没有被用户按下,就会不执行按键扫描程序。如果按键被按下,则通过按键按下的次数来控制最高温度的增加和减少。如果室内温度在最高温度和最低温度范围之内,则不启动

27、电机。如果室内温度高于最高温度,则启动电机进行降温。通过电机转动带来的风使得室内温度降低到在最高温度和最低温度范围之内,然后结束主程序。主程序流程图如图4-1所示。图 4-1主程序流程图4.3温度测量子程序温度测量子程序是外设DHT11传感器进行工作,通过I/O口通信方式向STM32单片机中写入数据,并将数据送到ILI9341液晶显示屏进行显示。首先配置引脚参数,初始化DHT11引脚,拉低DHT11引脚电平并等待DHT11传感器响应,将DHT11传感器读取到的数据进行数据处理,将处理后的数据写入STM32单片机。最后结束主程序。温度测量子程序流程图如图4-2 所示。图4-2 温度测量子程序流程

28、图4.4温度显示子程序温度显示子程序用于ILI9431液晶显示屏来进行显示DHT11传感器采集的室内温度。温度显示子程序包括如下:首先对于LCD的初始化,即对ILI9341寄存器的初始化、FSMC模式配置、初始化ILI9341的IO引脚以及设置默认的扫描方向,然后设置显示文字及背景的颜色,再将DHT11传感器采集的数据转换成字符串。最后设置光标位置显示字符串。温度显示子程序流程图如图4-3所示图 4-3温度显示子程序流程图第5章 系统测试5.1测试由于室内温度控制系统有三个功能模块组成,需要相应的元器件和程序来实现,所以将系统测试分为硬件测试和软件测试。硬件测试可以确保部件是否能够正常工作,软

29、件测试可以实现功能模块的需求。5.1.1 硬件测试硬件测试是将每个器件和STM32单片机进行检测,保证每个器件和STM32单片机能够正常运行。其测试步骤如下:(1)接通电源,使焊枪发热。将杜邦线里面的铜丝和微型130电机小马达上的两个铜片进行焊接。将杜邦线两端接入五伏电源的正负极,观察小马达是否能转动。如果能转动则说明小马达焊接完好,否则要重新焊接。(2)使用杜邦线将微型130电机小马达和L298N电机驱动模块进行连接,使用杜邦线将L298N电机驱动模块和STM32单片机上的相应引脚连接。(3)使用杜邦线将DHT11传感器的引脚和STM32单片机上的相应引脚连接。(4)让STM32单片机接通电

30、源,观察DHT11传感器和L298N电机驱动模块上的小灯是否亮。如果亮,则元器件能够正常工作。否则,需要检查连接位置是否松散或器件是不是坏的。5.1.2软件测试软件测试是建立在硬件测试上的,只有硬件没有问题了,才能进行实现功能。软件测试步骤如下:(1) 打开Keil软件,新建工程进行编写程序。(2) 编译编写好的程序,使用仿真器Fire-Debugger下载到STM32单片机进行运行。(3) 在室内环境下观察运行结果,根据运行结果反复修改程序实现功能。5.2实验现象该STM32单片机拥有六个电路的供电电压和三个地线,由于地线的有限,该单片机分别接了两个DHT11温度传感器和一个L298N电路驱

31、动模块。由于传感器的有限,本次实验通过采集室内和室外的温度进行对比分析,室内温度数值与室外温度数值有一定相差。ILI9341显示屏显示室内外的温度状况和设定好的最低温度和最高温度,每隔一秒就会刷新屏幕上的室内外温度,当室内温度大于最高温度时,电机启动从而达到降温的效果。当室内的温度在最低温度和最高温度的范围之内,电机不启动。当电机处于降温模式,且室内温度刚刚好小于最低温度时,电机将关闭,让室内温度缓缓升高。在LCD屏幕上显示了本次实验名称,即基于STM32的室内温度控制系统。为了更好的显示屏幕上的文字,采用了黑色的背景,红色的字体。在实验名称下面是对室内外的温度、湿度的显示。室外温度为18.2

32、摄氏度,湿度为93.0%RH;室内温度为17.3摄氏度,湿度为92.0%RH。设定的最高温度是28摄氏度,最低温度为11摄氏度。室内温度在最低温度和最高温度之间,电机不启动。实验效果如图5-1所示。图5-1 实验效果图5.3故障分析在开始实现系统过程中,我遇到了不少的问题,比如,杜邦线与电极的焊接,我是第一次焊接,在学校时根本没有接触过焊接,所以,在焊接时很费劲而且焊接得不好。第二,我对于STM32单片机的理解不是很深入,所以在对于处理单片机的一些问题上还是不够完善的。第三是对于温度在显示屏上显示,一开始,我想直接将数据显示在屏幕上,可是失败。最后,我通过在网上查找原因才将问题解决了。由于本人

33、缺乏对于STM32单片机开发经验以及没有找到相应的实验材料,使本次设计存在一定的缺陷。比如,当室内温度偏低时的快速升温操作,我只是用了通过暂停电机工作,让室内温度缓慢升高。5.4测试分析在室内温度控制系统运行过程,ILI9341显示屏将采集的室内温度数据显示在屏幕上,则说明温度采集和温度显示功能基本完成。当按键K1、K2被用户按下时,屏幕上的最高温度会随着变化。当室内温度超过最高温度时,电机自动启动。当室内温度在最高温度和最低温度范围之间时,电机不启动;则说明温度控制功能模块的需求基本完成。参考文献1 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.72 范书瑞.Cortex-M

34、3嵌入式处理器原理与应用M.北京:电子工业出版社,2011-01-01 3刘璋.STM32单片机在室内环境监测系统中的运用研究J.数字技术与应用,2016(02):20.4 刘火良.杨森.STM32库开发实战指南基于STM32F103(第2版).北京:机械工业出版社.5 吴文博. 基于STM32的室内空气质量监测系统的研究与实现D.北京工商大学,2017.6 刘绍丽,王献合.基于STM32单片机的智能温度控制系统的设计J.电子测试,2018(21):34-35+140.7 王艳,张平,王莉.基于STM32F407的温度控制系统J.科学技术创新,2019(32):85-86.8 Johnson

35、Solid State LLC; Temperature Control System And Methods For Operating Same in Patent Application Approval Process (USPTO 20190324421)J. Energy Weekly News,2019.9Hao Yin. Smart Home Hardware Design based on STM32C. 信息化与工程国际学会.Proceedings of 2016 2nd Workshop on Advanced Research and Technology in Ind

36、ustry Applications(WARTIA 2016).信息化与工程国际学会:计算机科学与电子技术国际学会(Computer Science and Electronic Technology International Society),2016:752-755.10Chang-Jin Boo,Jeong-Hyuk Kim,Ho-Chan Kim,Kwang Y. Lee. Building Indoor Temperature Control Using Model Predictive Control in Cooling SystemsJ. IFAC PapersOnLine,

37、2015,48(30).结束语本设计介绍了基于STM32单片机的室内温度控制系统的设计内容,对于该系统,采用DHT11传感器进行温度的采集,通过ILI9341液晶显示屏显示室内温度,通过按键控制最高温度的大小来控制电机的启动。采用L298N与单片机相连,当室内温度低于最高温度或最低温度时,电机停止工作;当室内温度高于最高温度时,电机开始工作从而达到降温的效果。同时,在毕业论文设计过程中,我遇到了许多的困难,感谢我的指导老师给我的帮助和指导。致 谢四年的大学生涯即将结束,在此我想对我的指导老师、同学以及父母表示由衷的谢意。非常感谢老师的我论文的指导和帮助,才能让我的论文顺利完成。感谢在校期间帮助的同学,在我有需要时提供给我的帮助才能让我顺利的解决问题。感谢一直支持我的父母,正是有父母的支持,我才能完成学业。17

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 信息管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁