版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要 1第1章绪论 31.1课题研究的背景 31.2课题研究的意义 31.3国内外研究现状 3第2章系统方案设计 52.1系统需求分析 52.2系统整体方案设计 52.3系统整体框架图 6第3章系统硬件电路设计 83.1硬件电路总体设计 83.3温度检测电路设计 93.4人体红外检测电路设计 93.5HC-05传输电路设计 103.6显示模块电路设计 113.7风扇驱动电路设计 123.8DHT11温湿度传感器电路设计 13第4章系统软件设计 154.1编程软件介绍 154.2上位机开发环境 154.2.1可视化编程 154.2.2程序的编写 154.3主程序设计 184.4DHT11温湿度传感器程序设计 194.5系统初始化程序设计 204.6温度获取子程序设计 214.7人体检测子程序设计 214.8无线通信程序设计 224.9显示数据子程序设计 23第5章系统测试与调试 255.1系统的硬件测试 255.2系统的软件测试 265.3系统的调试分析 26总结 31参考文献 32附录 33PAGE30基于STM32的温控风扇系统的设计与实现摘要温控风扇系统是通过温度的改变来控制风机的开闭,从而达到节能的目的,同时还能给用户带来更多的人性化,被广泛地应用于工业生产及日常生活中,例如工业制造中的大型机器设备的散热,以及计算机中的中央处理器风扇。它可以随着周围的温度的高低而自动地开始和停止旋转,也可以随着温度的改变而自动调整速度。结合生产实际和人民的实际需要,开展智能电扇控制技术的研究和开发,具有重要的现实意义。本论文设计了一款以STM32系列单片机为核心的智能型温控风扇,该系统利用DS18B20温湿度传感器进行环境温湿度的实时监测,并将相应的数据传送到单片机中,实现对温度的调节。使用红外线侦测模组,可侦测附近是否有人,并可根据使用者的需求,智能地控制电扇的开闭。可以设置自动或手动模式,也可以通过OLED屏幕进行显示,并且可以通过无线wifi的调试功能来遥控风扇的工作模式,档位,阈值等等。关键词:单片机温控无线wifiDS18B20OLEDAbstractTemperaturecontrolfansystemisthroughthechangeoftemperaturetocontroltheopeningandclosingofthefan,soastoachievethepurposeofenergysaving,butalsotobringmorehumanizationtotheuser,iswidelyusedinindustrialproductionanddailylife,suchasindustrialmanufacturingoflargemachinesandequipmentheatdissipation,aswellasthecentralprocessorfaninthecomputer.Itcanautomaticallystartandstoprotatingasthetemperaturearounditrisesandfalls,anditcanautomaticallyadjustitsspeedasthetemperaturechanges.Combinedwiththeactualproductionandpeople'sactualneeds,itisofgreatpracticalsignificancetocarryouttheresearchanddevelopmentofintelligentfancontroltechnology.Inthispaper,anintelligenttemperaturecontrolfanbasedonSTM32seriessinglechipmicrocomputerisdesigned,andthetemperaturesensormoduleinDS18B20isusedtorealizereal-timeacquisitionofexternaltemperature,andthecorrespondingdataistransmittedtothesinglechipmicrocomputertorealizetemperatureregulation.Usingtheinfrareddetectionmodule,itcandetectwhethertherearepeoplenearbyandcanintelligentlycontroltheopeningandclosingofthefanaccordingtotheneedsoftheuser.Youcansetautomaticormanualmode,youcanalsodisplaythroughtheOLEDscreen,andyoucanremotecontrolthefan'sworkingmode,gear,threshold,andsoonthroughtheWirelessWIFIdebuggingfunction.Keywords:Single—ChipMicrocomputerTemperatureControlWirelessWIFIDS18B20OLED绪论1.1课题研究的背景在夏天的时候,电风扇是很多家庭必备的家电,在传统的家庭中,大部分的风扇都只有一个功能,那就是人工设定风扇的左右摇摆,再加上风扇上的按钮来调整风速REF_Ref182390347\r\h[1],另外,由于各个齿轮之间的风速相差太大,所以手动操作并不适合行动不便的老人和患者。为此,本论文设计了一款以STM32系列单片机为核心的智能型温控风扇。STM32系列MCU性能优越,功耗合理,种类繁多,价格低廉,适合于大批量生产REF_Ref182390368\r\h[2]。本系统利用DS18B20中的温度传感器模块,实现对外界温度的实时采集,并将相应的数据传送到单片机中,实现对温度的调节。使用红外线侦测模组,可侦测附近是否有人,并可根据使用者的需求,智能地控制电扇的开闭。自动和手动模式下,风速范围,温度阈值,自动模式调节风速等可以通过按键设置。同时也可以通过OLED屏幕进行显示,并且可以通过无线wifi的“调试”功能来遥控风扇的工作模式,档位,阈值等等REF_Ref182390381\r\h[3]。1.2课题研究的意义温控风扇系统是通过温度的改变来控制风机的开闭,从而达到节能的目的,同时还能给用户带来更多的人性化。另外,温度控制风机系统已经被广泛地应用于工业生产及日常生活中REF_Ref182390402\r\h[4],例如工业制造中的大型机器设备的散热REF_Ref182390413\r\h[5]REF_Ref182390425\r\h[6],以及计算机中的中央处理器风扇。它可以随着周围的温度的高低而自动地开始和停止旋转,也可以随着温度的改变而自动调整速度。所以,本课题的研究是有实际意义的。随着物联网技术的快速发展,信息交互的重要性日益凸显。自主化的资料处理,更是让人期待。所以,智能装置的开发就显得尤其重要,它的应用不仅减轻了人们的工作负担REF_Ref182390441\r\h[7],而且还能在某种程度上降低了人为的工作错误,减少了工作中不必要的损耗。1.3国内外研究现状近年来,我国的信息化建设取得了长足的发展以及我国的风扇行业得到了快速的发展,产量不断增加,国家的工业政策也在大力推动风扇行业向高科技产品的方向发展,所以,本土公司的新投资项目也越来越多。投资者对风机市场的关注也越来越多,带动了风机技术研发的快速增长。在计算机技术、控制技术和信息技术的迅猛发展下,企业的生产和管理已经进入了一个新的时代REF_Ref182390456\r\h[8]。结合生产实际和人民的实际需要,开展智能电扇控制技术的研究和开发REF_Ref182390463\r\h[9],具有重要的现实意义。现在,该系统在工厂生产,仓储管理,智能玩具,以及民用设施的使用中发挥着大作用,可以有效地提高工人的工作效率,改善工人的工作环境。以国外电风扇的发展历程来看,结合人工智能、大数据等技术REF_Ref182390616\r\h[10],可以达到更精确的速度调节和智能控制。智能家居的迅速发展,使许多智能家居的标准与协议相继问世,如ZigBee,Wi-Fi,无线wifi等。电风扇是一种常见的家用电器,虽然现在已经很流行了,但大部分的功能都还停留在几年前,大部分的电子产品厂商都不会将注意力放在这上面。因此,电风扇的智能化,就像一切家电的智能化一样,必然是一种新的发展需求。系统方案设计2.1系统需求分析本论文以STM32单片机为核心设计了一套温控风机系统,其主要任务就是对不同温度下的风机进行控制。该系统采用MCU与周边设备相结合的方式,对相应的环境数据进行智能监控。该系统通过外测模块实现模拟量的采集与模拟量的转换。然后,MCU利用CPU读出并保存数据,并基于逻辑判断检测出是否存在异常。本系统可以实时获取与环境有关的数据,并能顺利地将其转换成可传送的数据;实现了外部探测数据采集终端与MCU数据逻辑处理终端间的实时物理数据传送信道;该系统具有良好的人机界面,可通过数据显示终端实现智能化提示、反馈和数据显示。2.2系统整体方案设计此设计方案的核心基于STM32单片机,旨在构建一个智能化温控风扇系统。通过实时监控环境温度,自动调整风扇状态,实现精准的温度控制。风扇通过温控实现高效节能的启闭。系统由温度感应器、STM32微控制器、风扇驱动组件以及用户交互界面共同构成系统。温度感应器(可选用DS18B20或DHT11)承担着实时监测环境温度的任务,并将获取的数据输送至STM32微控制器。作为核心控制中枢,STM32微控制器承担着接收传感器信息的责任,并对温度信号进行即时解析,以判定是否需调整风扇运行状态,进而实施精确的风力调控。风扇由继电器或MOSFET控制,风速则由PWM(脉宽调制)调节。系统设计包含多个操作模式,使用者可设定温度阈值、风速模式,并可通过按键、移动端来开启或关闭。该系统的显示模块采用LCD或OLED屏幕,可将当前环境温度、风扇状态、设定温度等信息实时显示出来,使用者可直接使用。在系统的性能设计上,温度传感器为了能够及时调整风扇旋转的速度,需要测量精度和稳定性都比较高,响应时间也比较短。系统有低功耗的设计,尤其是在待机模式下,这样才能提高能效。为了增强系统的可扩展性,为了增加更多的智能功能,比如远程控制、定时功能等,甚至可以和智能家居系统实现互联。硬件设计的系统紧密配合软件逻辑,保证系统稳定运行,满足包括自动温控、降低能耗等功能在内的系统的各种实际需求。该系统通过STM32单片机的高效控制,实现了温度的智能调节,具有高可靠性、易操作性和极强的扩展性。可广泛应用于需要温度控制的场所,如家庭、办公室、实验室等。2.3系统整体框架图图2-1系统整体框架图系统的硬件架构主要包括核心部分,如STM32单片机、温度感应器、风扇控制模组互动模组等。下面是这几个模块的作用和衔接方法:1.STM32单片机在该系统中,负责协调各模块运作的核心控制系统为STM32微控制器。可供选择的接收温度的传感器包括DS18B20或DHT11。收集环境温度数据,并依据设定的温度阈值,在调控风速的过程中,评估风扇的启停状态。STM32还采用PWM(脉宽调制)。调节风扇风速的信号。单片机通过I/O口传送和控制数据,包括传感器,风扇控制模块等。2.温度感应器该系统中对环境温度的实时监测依赖于温度传感器(如DS18B20或DHT11)。传感器可以通过数字信号传输测量的温度数据。以便于STM32单片机处理温度数据,以此判断风扇开启或关闭,或者对风速调整。3.风扇控制模块风扇控制模块由控制风扇的开关和风速调节的继电器、MOSFET或电动机驱动芯片(如L298N)组成。在环境温度的情况下STM32单片机在达到预设阈值的情况下,通过驱动电路对风扇的工作状态进行控制。可以通过PWM信号,实现对风扇转速的控制,达到对风速的调整,保证万无一失。风扇的动力输出由温度变化自动调节。4.显示模块显示模块一般为OLED显示屏,用于温度数据、风扇状态(开启/关闭)、设定温度阈值等信息的实时显示。通过显示屏模块,用户可以对当前温度、风扇状态、设定值等系统的工作状态进行直观的了解。5.用户互动模块使用户交互模块,可以让用户对温度阈值、风扇转速等进行设置。该模块可以是按键,触摸屏等多种形式,用户通过操作就可以实现。系统设置进行界面调整,并输入新的温度控制参数。用户还可以在温度超出预设范围的情况下,通过该模块对系统的工作方式进行调整。整体框架图展现了STM32单片机与各模块信号连接及数据传输路径。可通过I2C、SPI或GPIO等接口,进行数据的输送。通信和控制与温度传感器,显示模块控制模块互动模块。各模块协同配合实现温控风扇系统自动调整、智能功能。系统硬件电路设计3.1硬件电路总体设计图3-1系统总设计图该系统以STM32F103C8T6单片机作为控制核心,由以下部分组成:温度检测模块、人体感应模块、WiFi模块、显示模块及按键电路等。应该能实现以下功能:1.手动控制模式,采用键控调整风扇的转速,以达到降温的作用;2.自动控制模式,可通过外界环境的温度变化,自动调整并找到合适风扇的风扇转速;3.人体感应模式,红外线扫描周边环境,以达到人体感应,控制风扇的目的;4.无线控制模式,app通过WIFI芯片以此来调控风扇的转速,调节温度调节湿度调节档位。3.2单片机最小系统本设计以STM32单片机为核心,其中STM32F103C8T6有功耗低、性能高和成本低的优点。该单片机具有较高的可靠性和稳定性,并且该单片机支持多种开发工具,很适合本次系统设计。它的接口丰富,可连接两条APB总线,拥有3个16位通用计时器,2个12位ADC,2个PWM计时器及I2C,SPI,USB,CAN等多种通讯接口。图3-2STM32F103C8T6核心板3.3温度检测电路设计这一设计中温控风扇的控温部分,是通过感温器来完成的。目前市场上的温度传感器中,主要测量环境温度的模块是DS18B20温度检测模块。如下图3-3所示。图3-3DS18B20外观及引脚图在采集环境温度时,具有微型化、低功耗、抗干扰能力的DS18B20数字温度传感器可直接将温度转化成串行数字信号,并传输给单片机处理。REF_Ref3407\r\h[11]DS18B20数字式温度表可测量9~12bit摄氏度的温度,具有可编程的高、低两级报警装置,当电量耗尽的情况下,也不会有任何改变。DS18B20通过单线接口来收发消息,只需一个连接线(加地线)可将单片机和DS18B20连接。实现两者之间的数据传输。其温度测量范围为-55~125℃,测温分辨率可达0.0625℃,且线形偏差小。REF_Ref3407\r\h[11]如图3-4所示。图3-4DS18B20温度检测电路3.4人体红外检测电路设计为了能进行智能化开关,在不必使用按键的情况下,能通过该传感器自动控制风扇的开关,如图3-5所示,与HC-SR501相比,本系统具有更高的灵敏度和更强的抗干扰性,并且使用方便。图3-5人体红外感应模块这种传感器模块主要用来探测环境中有无人员的活动,利用红外技术来探测人体的信息,可以应用在各种自动感应系统中,具有灵敏度高、响应速度快、不受环境变化的影响小等特点。通过调整时间调整电阻器的阻值,可以达到不同的延时间隔。此模块可根据周围环境温度的变化自动调整其灵敏度,且功耗低,所需电流在50毫安以下。本模块的输出电压为高低电平,便于与各类主控微控制器的通讯。数据传送管脚与PA12相连。如图3-6所示。图3-6红外检测电路3.5HC-05传输电路设计采用3.3V直流电源的ESP8266展现出优越的性能,其特点包括无数据丢失、功能全面且成本效益高,某些型号还能兼容陶瓷天线,这使得其成为此设计方案的理想选择。当前市场上的ESP8266模块,在出厂时均预装了配置文件及内置程序,旨在支持ESP8266的基本工作模式。ESP8266具备三种主要的工作模式,每种模式皆需根据特定配置来启用。该系统采用了特定的配置指令,使得芯片能够通过配置切换至传输模式,进而实现与Internet中的MCS串口之间的通信。如图3-7所示。图3-7ESP8266模块这种通信模块在进行通讯时,将主机与从机分开,当主机与从机配对之后,便可以完成数据的传送工作,所以这种通信模块可以采用两种工作方式(主动连接,被动连接)。其最大的特点是在传输时开销更小。该模块有主透传和从透传两种传输协议供用户选择。在工作过程中,必须使用AT指令对网络进行相应的初始化,然后才能将数据传送出去。
此模块使用较少的管脚就可以完成传送任务,休眠模式可以节省资源,在连接进行数据传送时,可以启动装置唤醒。HC-05由TXD/RXD,VCC,GND等管脚来完成有关数据的传送。数据收发管脚分别连接到PA9和PA10。电路图如图3-8所示。图3-8ESP8266模块电路3.6显示模块电路设计为实现风机与用户之间的互动,将当前风机的状态显示在屏幕上显得尤为重要。OLED显示模块是目前嵌入式系统中人机交互显示工作的一个重要功能模块,与LCD1602相比,它能显示中文,还能显示更多的文字,可以对风扇目前的状况进行更加全面的反映,与本次的设计需求十分吻合。如图3-9所示。 图3-9OLED显示屏这次的设计使用了一个7脚的有机发光二极管,它是利用电流来驱动二极管发光,而没有背光的显示工作。具有宽范围的工作温度,可适应各种恶劣的工作条件,且有高解析度的OLED模组。这个模组可以显示更完整的资料,并且可以与各种资料显示格式相兼容,OLED显示模块在保证高效率的同时,还具有较低的功率消耗,并且在供电电压上有较大的可选范围,可以兼容3.3V和5V。而且,各种控制命令,例如显示亮度和对比度,也可以被设置在OLED显示模块中。OLED液晶屏原理图,如图3-10所示。图3-10OLED液晶显示3.7风扇驱动电路设计在本设计中,使用了PWM驱动,并通过MOS管和管脚PC14相连。本设计提供了一种适用于家用风机仿真的风扇驱动系统,其驱动电路为高电平的N型MOS管。当单片机发送高电平时,电机得以运行REF_Ref182390456\r\h[8]REF_Ref182390463\r\h[9]REF_Ref182390616\r\h[10]。它是利用STM32单片机的数字输出来控制仿真电路。比如,单片计算机的输入/输出端只能输出低电平、高电平的数据。当高电平为5V,低电平为0V时,另一种模拟电压需要通过PWM方式,这种方式是通过方波在输入/输出端的工作周期,从而向输入端输入一个由数字信号模拟电压信号。如图3-11所示。图3-11占空比示意图该电压是将一系列与1或0相连的连续脉冲施加在模拟负荷上,由接通与关断的时序控制,可输出一个不超过0至5V之最大电压值的模拟电压。在50%的工作周期下,高、低电平分别工作,这样就可以得到2.5伏的模拟电压。在这一点上,工作循环是75%,则在这一点上,模拟电压是3.75伏。另外,在送风装置中,采用直流电机,根据输出电压来调速,实现风速的调节。如图3-12所示。图3-12风扇电路3.8DHT11温湿度传感器电路设计如图3.13所示,上拉电阻的功能是保持DATA引脚电压稳定在高电平水平。将DHT11的DATA引脚与STM32F103C8T6的PC13引脚相连接。上拉电阻的功能是通过保持DATA引脚的电平处于高电压水平。在STM32F103C8T6微控制器中,PC13引脚被配置为GPIO模块的输入模式。单片机在设定为输入方式时,可以读取由DHT11传感器发出的信号。DHT11传感器发送信号的时间隔是一定的。STM32F103C8T6通过轮询读取PC13脚上的电平变化,从而采集DHT11传感器发出的数据。根据DHT11传感器的通信协议,STM32F103C8T6将接收到的二进制信号解析为温度和湿度的数值。图3-13DHT11传感器电路原理图工作原理如下:DHT11通过连接STM32F103C8T6主控制器,可以实现获取室内温湿度的信息。主控制器使传感器开始采集数据,通过初始化和发送请求信号,温度和湿度数值通过分析和计算得到传感器发送的数据。一旦获取到数值,主控制器可以根据预设条件对风扇进行控制,例如当温度过高或湿度过高时启动风扇以提供舒适的环境。整个过程实现了温控风扇的自动调节。DHT11传感器实物图,如图3-14所示。图3-14DHT11传感器实物图系统软件设计4.1编程软件介绍在本论文中,以STM32单片机为核心芯片,采用KEIL5来实现温度调节风扇的软件逻辑。该软件能够兼容多个主控MCU,能够用户能够逻辑工作的硬件编程相关环境。当用户完成了相应的逻辑控制程序后,可以在极短的时间内,根据程序的提示,将程序快速编写成能够被主控芯片识别的MachineCode。操作逻辑程序。这款软件的烧录过程能够做到高度独立。通过设定目标单片机型号和寄存器头文件等,这款软件可以轻松观测到系统的逻辑译码全过程,还能看到Midder,Time,I/O端口的情况。节省开发提高开发便捷性,减少开发者不必要的操作,可谓一举多得。它的用户界面非常的友好,可以让开发人员更快的上手。在本系统中,我们使用STM32CubeMX来帮助KEIL5完成功能的封装和硬件的设置,降低外设和时钟的配置难度。用于配置STM32代码的工具是STM32CubeMX,拥有丰富的芯片库,便于我们根据所需的芯片进行选择。接口的图形化设置更直观,便于我们对管脚,模式,外设等进行直接的配置。而且还可以更好地理解和使用时钟树,加快代码的生成速度。4.2上位机开发环境据易语言官网介绍,易语言“有自主开发的高质量编译器,中文源代码被直接编译为CPU指令,运行效率高,安全可信性高;拥有自己的数据库系统,且支持访问现有所有数据库;内置专用输入法,支持中文语句快速录入,完全解决了中文输入慢的问题”;易语言除了支持界面设计的可视化,还支持程序流程的即时可视化;除了语句的中文化之外,易语言中还专门提供了适合中国国情的命令,如中文格式日期和时间处理、汉字发音处理、全半角字符处理、人民币金额的处理等;易语言综合采用了结构化、面向对象、组件、构架、集成化等多种先进技术,并在运行效率、性能价格比、全可视化支持、适应本地化需要、面向对象以及提供Windows、Linux上的运行平台等具有特色;现有各种支持库多达40多个,用户可以使用它来满足几乎所有的Windows编程需求,多媒体功能支持强大,完善的网络、端口通讯和互联网功能支持,网上与论坛上的学习资源众多。REF_Ref3348\r\h[12]使用中文编写代码,比使用英文编写更加方便。4.2.1可视化编程易安卓平台能进行可视化编程,避免了传统编程需要大量代码以及复杂难以理解的问题,编写智能家居的软件十分方便。如图4-1所示。图4-1易安卓可视化的界面易安卓提供文本框、按钮等传统组件之外,还有适配安卓系统的时钟模块等,都可以随意使用。如图4-2所示。仅仅需要点击、拖拽组件到可视化界面后,就可以进行编程。易安卓的各模块需要调用的资源都在左侧的组件区;编辑和调试在右侧的属性区。如图4-3所示。图4-2组件区图4-3属性区4.2.2程序的编写在主窗口拖入一个标签组件后,双击组件——打开程序的编写界面,在属性区可以对组件属性进行设置。图4-4所示。图4-4创建方法其中5000为端口号,2000为延迟再试时间。这是对“连接”按钮的设置,在手机端连接到对应WiFi名称后,点击“连接”按钮,程序即可连接上WiFi芯片。如图4-5,图4-6所示。图4-5设备未连接图4-6连接成功这里是利用文本到字节命令,将“A”中的值变为字节型常量,GBK是国标字节型格式。此操作旨在确保客户端仅能传输字节序列或16进制数值,而单片机则基于ASCⅡ编码机制运行。通过选用字节型常量而非预先定义字节型变量的方式,旨在提升代码的可读性和编写便捷性。最终,通过执行发送数据命令,我们将控制指令传输到了所创建的客户端端口。此时,WiFi模块接收指令,将字节数据转换为ASCII码,与单片机程序中的指令进行对照。若两者相符,系统则激活风扇。移动端同样能接收反馈,并将程序执行状态直观地呈现于编辑区域。如图4-7所示。图4-7按钮的编写4.3主程序设计1.初始化配置STM32F103C8T6主控制器的引脚及外设。包括设置按键、DHT11传感器和OLED显示屏,并初始化。2.温度与湿度信息收集通过DHT11传感器获取当前环境的温度与湿度值,并将其存储于相应变量内。3.温湿度数据显示读取的温度和湿度数据通过OLED显示屏实时显示,可采用适当的库功能定义功能实现。4.按键控制风扇通过按键是否被按压来判断用户是否按压了控制风扇的按键。若检测到按键按下,则进入下一步操作;否则,返回步骤2继续采集数据。5.按键状态获取读取当前按键状态,判断是否开启风扇,或保持当前风扇状态不变,判断用户操作意图。6.控制风扇状态根据用户的输入,控制风扇的工作状态。可以通过设置相应的IO口输出高或低电平来打开或关闭风扇REF_Ref22241\r\h[13]。需要考虑到风扇保护,例如设置定时限制或温度保护。7.返回第2步循环执行第2步至第6步,不断获取温湿度数据,控制风扇状态。8.结束程序如果需要,可添加适当的程序结束逻辑。流程图如图4-8所示。图4-8主程序的设计4.4DHT11温湿度传感器程序设计1.DHT11传感器接口初始化设置STM32F103C8T6的一个GPIO为输出方式,用于发送DHT11的启动信号。将另一GPIO设定为输入模式,并开启读出DHT11响应数据的上拉电阻。2.发送开启信号将输出GPIO设置为一个低电平,至少持续18ms。将输出GPIO设为维持20-40us的高电平(3.3V或5V)。将输出GPIO设为低电平等待DHT11响应。3.等待DHT11响应监控输入GPIO的状态,DHT11在接收到启动信号后,会将数据线拉低约80us。此时,DHT11已经开始使用。开始的时候,如果没有收到回应,有可能是传感器没有很好的连接,或者是传感器出现了故障,那就要做一个相应的应对。4.读取数据DHT11开始响应后发送40位数据,前高后低,数据格式为:8bit数据+8bit湿度小数据+8bit温度全数据+8bit温度小数据+8bit校验,校验采用STM32的GPIO读取功能,以恰当的时序进行读取这40位的数据。5.数据校验40位数据读完后,需要进行校验和计算,也就是把前32位数据进行相加,再取低8位作为校验位。将进行测算校验与所读第40位(校验位)比较,若相等则数据无误,否则本次所读数据无效,应予忽略。6.分析和储存资料在STM32的变量中分别储存正确读取的湿度和温度资料(整数部分)。7.呈现数据显示通过利用STM32微控制器的OLED驱动特性,实现了从传感器获取的温度与湿度数据在OLED显示屏上的直观展示。8.循环执行将上述操作嵌入循环机制内,持续获取并更新DHT11传感器的温度与湿度数据。9.按键处理(选配)若系统内含按键,则可以通过按键进行切换。10.异常处理将异常处理逻辑加入到程序中,如DHT11出现长时间不响应或数据校验失败等情况时,可重新启动读取。如图4-9所示。图4-9DHT11温湿度传感器程序流程图4.5系统初始化程序设计该系统采用主控制器及外围传感器,实现对环境数据的采集与转换,并能对所探测到的数据进行实时监控。在整个系统的工作流程中,每一个探测元件,传送引脚都要被初始化。该方法能够在系统开始工作之前,对应的硬件设备进行检测,从而更好地查找出相关的故障。如图4-10所示。图4-10程序初始化流程图4.6温度获取子程序设计DS18B20的温度感应模块需接收特定的控制信号(ROM/RAM)以执行对存储区域的适当操作(某些模块可能省略此步骤),进而获取并读取相应的温度信息,读取位于RAM内的数据。DS18B20的单线通信温度感应模块,为了确保数据的完整性,有必要对其时序特性进行深入分析。加入时序信息后,系统能实现推拉、推压等操作功能。通过读写和写单片机,实现了数据的恢复和温度的读取。如图4-11所示。图4-11温度检测流程4.7人体检测子程序设计本系统为自动感应模式,一个人进入感应器的有效距离,输出端便会输出一个高电平,超出感应器的探测距离,在模块的计时延迟之后,信号传送管脚就会输出一个低电平。利用管脚高、低电平探测环境中行人的信息,如图4-12所示。图4-12人体检测流程4.8无线通信程序设计如前所述,该系统针对ESP8266的配置设定为Station模式。Station模式中,ESP8266需链接至手机或其他电子装置所公开的热点,此配置旨在使系统接入互联网,并实现与服务器之间的通信交互。ESP8266需作为终端用户,连接至手机或设备发布的热点,以便程序借助服务器实现数据的传输与中继。通过执行AT指令,首先将模块配置为Station模式,随后运用相应的AT指令实现与无线网络的连接。鉴于此,即可使同网内的其他用户得以通过该模块进行通信。此通信模式以ESP8266为主体,其功能在于接入热点以接入网络。单片机则通过串口将监测到的具体参数传输至ESP8266所连接之服务器。此外,手机应用程序能与该服务器建立连接,实现基于服务器的数据中继的上下位机式通信机制。此种配置具有广泛的应用场景并被频繁采用,故而单片机能够通过数据中继的方式发挥关键作用。"IP地址"在网络安全层面,结合传输层的协议与端口号,共同为网络中的应用进程提供独特的标识。借助于程序内嵌的简洁通信机制,上位机与下位机能够达成有效连接。无线模块功能,如图4-13所示。图4-13无线通信流程图4.9显示数据子程序设计在OLED显示模组中,主要涉及挑选多路信号引脚,并确保数据的有效传输引脚得以实现。此OLED显示模块通过整合多根信号线,具备多种运作模式的能力。通过初始化、指令操作、数据处理这三个阶段揭示了所关联的数据特性。控制信号通过信号引脚传输设定的资料。首先处理准备好的数据源,然后使用DS(RS)管脚设定指令/数据系统。在读数据的时候,把RD管脚设成上行,把数据写到8个transferpin中。在写资料时,将资料写进一个嵌入式的驱动器。如图4-14所示。图4-14显示流程图系统测试与调试5.1系统的硬件测试本论文以STM32单片机为核心,设计了一套温度控制风扇系统,它的硬件必须经过测试才能完成它的逻辑功能。把周围的各种探测装置传回的数据收集起来,对不同的适应性的测试。这个工作环境是在室内进行的,有必要检查硬件接线管的管脚,查看是否松脱,若松脱便造成传送时的漏传或误传,不能在硬件环境中获得数据,将对以后的数据逻辑处理过程产生很大的影响。硬件的正常运转是保证整个系统稳定的必要条件。如图5-1所示。OLED显示屏;2-时钟;3-STM32单片机;4-模拟加湿的继电器;5-ESP8266传感器;模拟加热的继电器;7-DHT11传感器;8-风扇;9-人体红外感应模块;10-DS18B20传感器;11-功能按键;12-电源键;13-电源线接口图5-1焊接实物图5.2系统的软件测试在完成了系统硬件运行环境的测试之后,我们已经成功地调试并实现了STM32单片机控制温控风扇的软件逻辑。我们将评估代码的独立性,并将遵循既定逻辑精心构建其独立性。此系统旨在全面处理复杂场景,确保所有情形均得到妥善考虑,并通过黑盒测试获取所需数据,以审核返回信息的格式是否满足特定标准,进而进行逻辑评估,以指导后续的信息处理流程。此方法的优势在于能即时监控各类数据,并便捷地调取不同领域的数据。考虑后期功能扩展以应对突发事件。在完成所有子函数的功能验证后,接下来的关键步骤是执行全面的功能逻辑测试,这包括对各种操作条件进行全面的评估与验证。对各类突发事件情况进行全面的考虑,达到总体设计目标。人机交互测试可以让用户随时了解系统当时的运行状况,也有助于我们判断系统是否出现了故障。软件测试是系统设计中非常重要的一步。5.3系统的调试分析在硬件环境稳定、在确保软件模块独立性的前提下,本研究基于STM32微控制器,全面实现了温控风扇的软硬件集成,并着重进行了软硬件协同调试。在每次数据获取过程中,可能出现异常或乱码指示等错误,在整个外围组件集成调试阶段尤为常见,此类问题根源可能在于组件匹配不当、数据传输机制失效等因素,进而引发人机协同调试,旨在全面检查每次数据采集操作的连接状态,确保其运作无误。这时就需要对兼容的线进行测试和调试。数据异常、空值等情况在初始化和调用模块时都会出现,如果忽略了这些情况,相应的结果就会不可预知地出现在后续的逻辑操作中。由于多个采集模块等协同工作,只有在反复的迭代测试中,应对各种相关状况,才会不可避免地出现各种异常情况,才能使异常得到及时的解决。在实验结束之后,以STM32单片机为核心,设计了一款手自动一体的温控风机,达到了预期的任务目标。最终功能实现1.按键一为控制风扇档位的温度阈值设定,在当前页面,按下按键二为增加温度阈值,按下按键三为减小温度阈值,按下按键一再次回到主界面,如图5-2所示。图5-2温度阈值设置2.按键三可以控制模式,按下第一次为手动模式,按下第二次为自动模式,如图5-3所示。图5-3模式设置3.手动模式下,按下按键四以此来调控风扇转速,有三个档位可供选择,如图5-4所示。图5-4手动模式下档位调节4.功能设置中的温度阈值、模式、风扇档位都可以通过手机中的软件“控制系统”设置。如图5-5所示。设置按钮:功能同“按键一”相同;加键/启停按钮:加键,在设置页面时,功能同“按键二”相同;启停,功能是控制风扇开启和关闭;减键/模式按钮:功能同“按键三”功能相同;挡位按钮:功能同“按键四”功能相同;加热按钮:控制加热继电器开关;加湿按钮:控制加湿继电器开关。图5-5控制系统界面总结本论文以STM32单片机为核心,设计了一款具有温度控制、人体检测、远程控制及显示屏显示的智能无线WIFI温控风扇。该系统以性能比较好的STM32F103C8T6作为主控芯片,选用DS18B20模块作为控制芯片,以无线WIFI模组作为无线通信部分,选用人体检测模块,还使用了显示效果更好的OLED液晶屏。在硬件上,根据系统的需求,对整个系统进行了整体架构的设计,对各部分功能及所用模块进行清晰界定,并对各个部件与STM32单片机的接口进行了选取。软件方面选用通用KEIL5,STM32单片机以STM32CubeMX为引脚,外设、时钟树等配置采用HAL库,GPIO初始化。在此基础上,详细描述了系统的整体逻辑和各部分的功能逻辑,设计和编程了各模块的子程序,使调用和逻辑顺序在各模块中完成处理。最后编制了一套程序,校验后上传到单片机上。在此基础上,通过无线WIFI技术实现远程监控风扇运行状态,实现远程监控风扇运行状态。为保证系统能够正常运行,该系统进行了软硬件调试。参考文献杨培康,陈宣睿,肖峰.基于ESP32与阿里云平台的智能风扇[J].产业创新研究,2024,(04):68-70.陈泽伟,刘建豪,林育龙,等.基于STM32的人脸追踪智能加湿风扇[J].无线互联科技,2023,20(10):41-43.邓集威,贺沅玮.智能风扇控制系统设计[J].电子制作,2023,31(10):41-43+63.刘艳峰.基于STM32单片机的教室智能风扇控制系统的设计[J].电子制作,2023,31(10):48-51.殷鹏,肖强,苏林.基于单片机的智能风扇控制系统设计[J].造纸装备及材料,2023,52(05):37-39.张仕宽,莫坤,罗旭,等.基于单片机的智能风扇研究[J].电子制作,2023,31(08):98-101+93.席豪,阎昌国,朱成银,等.一种低成本的多功能智能风扇控制系统[J].科技与创新,2022,(24):56-58+64.薛胜兰,郑耿忠.基于STEAM理念的信息技术5E教学模式设计[J].韩山师范学院学报,2022,43(06):68-73.任烔,聂奎营,张甜甜,等.一种新型智能风扇台灯的设计[J].科技资讯,2022,20(18):63-66.M.C,M.BR.AnIntelligentPowerManagementTechniqueforaCuk-LuoFusedConverterBasedSolar-Wind-BatterySystemFedBaseTransceiverStationUsingEmbeddedController[J].JournalofElectricalEngineering&Technology,2022,17(4):2237-2249.秦新景,于海霞.具有远程遥控、语音播报功能的体脂秤设计[J].电子世界,2020,(17):179-180.张超.基于易语言的白话小说对白语句计算机自动提取程序的设计研究[J].计算机产品与流通,2020,(02):29-30.周莹,杨志浩,覃凤,等.一种语音控制的智能风扇系统[J].电子世界,2021,(17):19-20.附录附录Ⅰ:整体电路图附录Ⅱ:部分代码#include"sys.h"#include"delay.h"#include"led.h"#include"key_s.h"#include"OLED.h"#include"buzzer.h"#include"usart.h" #include"stmflash.h"#include"RCC.h"#include"DS18B20.h"#include"timer.h"/*PWM_DW=0关闭PWM_DW=1一档PWM_DW=2二挡mode=0自动模式mode=1手动模式自动模式:[关闭]+[一档]+[二挡]>T1T2*///Flash掉电保护数据部分#defineLEN50//保存数据个数(最后位数据为CRC)u16eep[LEN];#definehrMaxeep[0]#definehrMineep[1]#definetmpMaxeep[3]#definetmpMineep[4]#defineDIS_NUM2//定义3个界面#defineDIS_DEFAUL0#defineDIS_PARA1//u8setRTC;u8disCtrl=DIS_DEFAUL;u8setPara=0;u8tmp;//温度u8pwm=0;u8mode=0;u8PWM_DW=0;u8refresh=1;u8touchTrig=0;voidreadFlash(void);voidwriteFlash(void);voidrevAPP(void);voidsendAPP(void);intmain(void){u8cnt;u8key;//使用内部高速晶振HSIRC(8Mz)//配置SYSCLK->36MHz,HCLK->36MHzAPB1->36MHz,APB2->36MHz,ADC1,2->18MHzSystemClock_Config();MY_NVIC_PriorityGroupConfig(2);delay_Init(SysClockFreq/1000000);uart_init(SysClockFreq/1000000,9600);printf("SysClockFreq=%dMHz\r\n",SysClockFreq/1000000); delay_ms(500);LED_Init();LCD_Init();Buzzer_Init();KEY_Init();Beep(200);DS18B20_Init();Start:refresh=1;readFlash();LCD_Clear();Beep(200);LCD_Clear();LCD_GotoTitle(20);LCD_Print("温控风扇");while(1){delay_ms(1);cnt++;revAPP();if(cnt>200){cnt=0;LED=!LED;sendAPP();SetBeep(0);tmp=DS18B20_Get_Temp()/10;refresh=1;//自动模式下if(setPara==0&&mode==0){if(tmp<tmpMin)//关闭{PWM_DW=0;}elseif(tmp>tmpMax)//二挡{PWM_DW=2;}else//一档{PWM_DW=1;}}switch(PWM_DW){ case0://关闭pwm=0; break; case1://一档pwm=60; break; case2://二挡pwm=100; break; default: break;}//更新PWM值setPWM(pwm);}key=KeyScan(1);if(key){Beep(200);refresh=1;LED=0;if(key==1){setPara++;if(setPara==1)LCD_Clear();if(setPara>2){setPara=0; LCD_Clear(); LCD_GotoTitle(20); LCD_Print("温控风扇");writeFlash();gotoStart;}}elseif(key==2)//+{if(setPara){if(setPara==1){if(tmpMin<100)tmpMin++;}elseif(setPara==2){if(tmpMax<100)tmpMax++;}elseif(setPara==3){if(hrMin<200)hrMin++;}elseif(setPara==4){if(hrMax<200)hrMax++;}}else{if(mode==0)mode=1;elsemode=0;}}elseif(key==3)//{if(setPara){if(setPara==1){if(tmpMin>1)tmpMin--;}elseif(setPara==2){if(tmpMax>1)tmpMax--;}elseif(setPara==3){if(hrMin>1)hrMin--;}elseif(setPara==4){if(hrMax>1)hrMax--;}}else{mode=1;PWM_DW++;if(PWM_DW>2){PWM_DW=0;}}}}if(refresh){refresh=0;if(setPara==0){//0123456789abcdef//Tmp:26`cM:auto//SPD:1PW:ONLCD_GotoXY(0,0);LCD_Print("温度:");LCD_WrNUM(tmp/10%10);LCD_WrNUM(tmp/1%10);LCD_Print("C"); LCD_GotoXY(0,1);LCD_Print("模式:");if(mode==0)LCD_Print("自动");elseLCD_Print("手动");LCD_GotoXY(0,2);LCD_Print("等级:");LCD_WrNUM(PWM_DW);LCD_Print("开关:");if(PWM_DW==0)LCD_Print("关");elseLCD_Print("开");}else{//0123456789abcdef//-0-T1-1-T2-2>//2330(`C)LCD_GotoXY(0,0);LCD_Print("-0-T1-1-T2-2>");LCD_GotoXY(0,1);LCD_Print("");LCD_WrNUM(tmpMin/10%10);if(setPara==1&&LED)LCD_WrDat('_');elseLCD_WrNUM(tmpMin/1%10);LCD_Print("");LCD_WrNUM(tmpMax/10%10);if(setPara==2&&LED)LCD_WrDat('_');elseLCD_WrNUM(tmpMax/1%10);LCD_Print("(");LCD_Print("C)");}}}}voidwriteFlash(void){Flash_Write(eep,LEN);}voidreadFlash(void){if(0==Flash_Read(eep,LEN)){}else{tmpMin=15;tmpMax=39;hrMax=100;hrMin=50;}}voidsendAPP(void){staticu8step=0;staticu8psc=0;charstr[20];charstr1[20];charstr2[20];charstr3[20]; //分频执行,降低发送速度 psc++; if(psc<5)return; elsepsc=0;if(step==
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1258-2025汽车用蜗杆传动式软管夹箍弹簧内衬补偿型
- 井冈山大学《康复评定技术》2025-2026学年期末试卷
- 中国医科大学《写作学概论》2025-2026学年期末试卷
- 漳州城市职业学院《马克思主义政治经济学》2025-2026学年期末试卷
- 滁州城市职业学院《外贸单证实务》2025-2026学年期末试卷
- 仰恩大学《泵与泵站》2025-2026学年期末试卷
- 福建幼儿师范高等专科学校《金融信托与租赁》2025-2026学年期末试卷
- 上饶师范学院《媒介素养》2025-2026学年期末试卷
- 伊春职业学院《宠物美容》2025-2026学年期末试卷
- 广州初一历史试题及答案
- 2026年胃食管反流病诊疗试题及答案(消化内科版)
- 内蒙古赤峰市2026年高三3·20模拟测试化学+答案
- 2026年入党积极分子结业考试全真模拟试卷(共四套)及答案
- 内江仲裁委员会仲裁员申请表
- T∕CNCA 108-2024 煤矿零碳矿山创建与评价导则
- 水泥预制厂安全生产制度
- 2026年吉林电子信息职业技术学院单招职业技能考试模拟测试卷附答案
- 阳台种植课件
- 消化内科医生课件
- 心衰患者长期管理核心策略
- 2026年河南信息统计职业学院单招职业适应性考试必刷测试卷新版
评论
0/150
提交评论