基于STM32的智能温控风扇设计_第1页
基于STM32的智能温控风扇设计_第2页
基于STM32的智能温控风扇设计_第3页
基于STM32的智能温控风扇设计_第4页
基于STM32的智能温控风扇设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要随着时代的发展和社会的进步,人们对于生活水平的要求越来越高,因此基于各种微控制器的家用电器也在飞速发展。电风扇作为一种在炎热天气经常使用的家用电器,应用十分广泛。电风扇相对于空调来说经济实惠且耗能低,因此电风扇成为了更多人的选择。老式的风扇往往需要人为开启、关闭以及调节档位风速,这对于老年人和活动不方便的病人来说十分困难,因此提高老式电风扇的智能化程度十分重要。在众多的微控制器中,STM32作为一种价格相对低廉,编程相对便捷的微控制器被广泛应用于各种智能家居之中,例如扫地机器人、心率监测手环、无人机等。本文研究的是一种基于STM32的智能温控风扇,该风扇具有液晶显示功能,显示有温度、阈值、档位、模式、是否检测到人体等指标;具有人体红外检测功能,检测是否有人出现;具有温度检测模块测量环境或人体温度;能够通过按键控制模式、阈值、档位,并且按键设置的指标均可通过蓝牙模块与蓝牙调试助手设置。该风扇操作简单、功能丰富、耗能低,可以被广泛应用。关键词:STM32;智能温控风扇;红外检测;蓝牙AbstractWiththedevelopmentsofthetimesandtheprogressofsociety,peoplehavehigherandhigherrequirementsforlivingstandards.Therefore,householdappliancesbasedonvariousmicrocontrollersarealsodevelopingrapidly.Electricfans,asakindofhouseholdappliance,areoftenusedinhotweatherwidely.Comparedwithairconditioners,electricfansaremoreeconomicalandconsumelessenergy,andthuspreferredbymostpeople.Asweknow,theoldtypeoffansoftenhastobemanuallyturnedonandoffaswellasadjustedforwindspeedingear,whichisdifficultfortheelderlyandpatientswithlimitedmobility.Inthiscase,improvingtheintelligenceoftheoldelectricfansbecomesveryimportant.Amongmanymicrocontrollers,STM32,asarelativelycheapandconvenientmicrocontroller,iswidelyusedinvarioussmarthomessuchasfloorsweepingrobot,heartratemonitoringbracelet,UAVandsoon.Inthispaper,anintelligenttemperaturecontrolfanisinvestigatedbasedontheSTM32.Thefanhasaliquidcrystaldisplayfunction,whichcandisplaytemperature,threshold,gear,mode,whethertodetectthehumanbodyandotherindicators,anditalsohasinfrareddetectionfunctionofhumanbody.Inaddition,ithasatemperaturedetectionmoduletomeasurethetemperatureoftheenvironmentorhumanbody.Themode,thresholdandgearcanbecontrolledbypressingthekey,andtheindicatorssetbypressingthekeycanbesetbyBluetoothmoduleandBluetoothdebuggingassistant.Thefanhastheadvantagesofsimpleoperation,richfunctionsandlowenergyconsumption,andthuscanbewidelyused.Keywords:STM32;intelligenttemperaturecontrolfan;infrareddetection;Bluetooth

目录TOC\o"1-2"\h\u11893摘要 324335Abstract 38529第1章绪论 5198471.1概述 5251921.2课题研究的背景及意义 5163651.3国内外研究现状 5227391.4主要研究方式 6102251.5论文结构 68859第2章系统方案设计 767202.1系统设计目标 7238952.2主控芯片的选择 7131052.3温度传感器的选择 8155412.4显示电路的选择 914422.5键盘输入模块的选择 998192.6本章小结 103549第3章系统硬件电路部分 1014763.1硬件系统总体设计 10124113.2单片机最小系统 10245753.3温度检测电路设计 11198793.4人体检测电路设计 12119063.5HC-05传输电路设计 13294853.6显示模块电路设计 143603.7风扇驱动电路设计 15195063.8本章小结 1611479第4章系统软件设计 1791034.1软件编程要求 1788024.2硬件编程软件介绍 17138604.3编程语言选择 18242224.4系统初始化程序设计 19155174.5温度获取子程序设计 20215774.6人体检测子程序设计 2142214.7HC-05控制子程序设计 22188604.8显示数据子程序设计 23118864.9本章小结 24553第5章实物调试 25102795.1系统硬件测试 2574385.2系统的软件测试 25272385.3系统的调试分析 2672045.4本章小结 298141结论 2922419参考文献 3132684致谢 32第1章绪论1.1概述在天气炎热的夏季,电风扇是大多数家庭必不可少的一种家用电器,传统家庭使用的风扇大多功能单一,只能做到人为设置风扇左右摆动以及通过风扇上的按键来进行风速的档位调节,而且不同的档位之间风速差值过大,手动操作对于行动不便的老人以及病人来说并不适用。因此,针对这些老式风扇的缺点,本文研究了一种基于STM32系列单片机控制的智能温度控制风扇。STM32系列单片机具有较好的性能以及合理的功耗,并且有丰富的芯片型号供我们选择、价格低廉,适用于开发大规模的产品。该智能温控风扇采用了DS18B20温度传感器模块对周围的环境温度进行采集并将数据传输入单片机中,经过处理后可根据温度来调节档位以及风速。利用红外人体检测模块检测周围是否有人并智能控制风扇的开启与关闭。可通过按键设置自动或手动模式、风速档位、温度阈值以及在自动模式下调节风速等,并且这些参数都可以通过OLED液晶显示屏显示,同时可以通过蓝牙调试助手远程无线控制风扇模式、档位、阈值等。1.2课题研究的背景及意义温控风扇系统是根据当时温度情况去自动开通和关闭电风扇,能够很好的节约电能,同时也方便用户们的使用更具人性化。而且温控风扇系统在工业生产、日常生活中都有广泛的应用,如在工业生产中大型机械设备的散热系统,或笔记本电脑上的智能CPU风扇等基于单片机的温控风扇都能够根据环境温度的高低自动启动或停止转动,并能够根据温度的变化实现转速的自动调节。因此,温控风扇的研究具有一定的实用价值。在万物互联技术飞速发展的今天,数据反馈交互变得越来越重要。自主化的数据处理、反馈是人们更加期盼的。因此,智能设备的发展尤为重要,智能设备的使用不但可以缓解人们的工作负担,还可以在一定程度上减少人为的工作失误,降低工作中不必要的损失。在这样的需求下,微处理器系统的发展尤为重要,微处理器系统对于数据的敏感性也是智能行业蓬勃发展的主要影响因素。在现有技术方法上进行思想的融合,将会促进整个行业的发展。1.3国内外研究现状随着国内计算机技术的飞速发展,信息化水平有了很大的进步。近几年,我国电风扇市场发展迅速,产品产出持续扩张,国家产业政策鼓励电风扇产业向高技术产品方向发展,国内企业新增投资项目逐渐增多。投资者对电风扇市场的关注越来越密切,这使得电风扇市场技术发展需求急剧增大。随着计算机技术、控制技术、信息技术的快速发展,工业的生产和管理进入了自动化、信息化和智能化时代,智能化已经成为时代发展的需要。基于生产现场和日常生活的实际需要,研究和开发智能电风扇控制具有十分重要的意义。该设计可以应用于工厂自动化、仓库管理、智能玩具和民用服务等领域,可提高劳动生产效率,改善劳动环境。国外在电风扇方面的研究相对我国并没有展现出极强的积极性,但是在智能化电器方面的研究部分却领先于我国。智能化电器包含三个层次:智能化的电器元件(如智能化断路器、智能化接触器和智能化磁力启动器等),智能化开关柜和智能化供配电系统。智能化开关柜包含多台断路器,而且供电系统的控制与用电设备的控制关系很密切。这两个层次上的智能化工作重点是加强网络功能,最大限度地提高配电系统和用电设备的自动化水平[1]。作为一种常用的家用电器,电风扇在如今虽被广泛普及,但是功能大多还停留在数年之前,大多数电器厂家并没有对其投入太多的关注。所以电风扇的智能化也和所有的家用电器智能化一样,必将成为一种新的发展需要[2]。1.4主要研究方式本次系统属于嵌入式方向,一方面,我们要学习硬件连接、数据传输的相关原理。另一方面,也要学习软件逻辑处理、控制编程等知识。相关理论知识、技术知识的研究方式如下:(1)前沿期刊研读:通过相关文献网站进行前沿技术论文的研读,掌握当前相关系统的研究现状以及研究技术。进一步掌握当前热门开发技术,为后期的系统开发夯实稳定的理论储备。(2)开发文档阅读:通过浏览器进行相关模块开发文档的下载阅读,通过开发文档我们能够准确的了解模块的性能、运行参数、传输协议、注意事项以及管脚传输标准。快速的掌握数据的打包传输格式,为后期的软件编程逻辑控制提供可靠的硬件支持。(3)编程语言学习:在熟悉硬件相关知识后,进行逻辑控制语言的学习。掌握和熟悉传输信号的控制,然后进行软件逻辑的相关编程,实现硬件自主化工作。软件编程逻辑也是整个系统实现智能控制的关键所在,通过软件编程实现整个硬件数据的获取与控制。1.5论文结构本次设计的基于STM32的温控风扇系统要实现多种模式的风扇控制,系统通过外围检测设备获取环境数据(环境温度、是否有人、无线控制、按键控制),搭配数据传输通信模块以及微处理器CPU模块控制整个检测工作的自主逻辑。本文通过不同章节分阶段论述整个系统落地实现,通过不同章节进行设计过程中不同的侧重点(理论知识、实践过程、工作流程等)的论述。各个章节的主要工作说明如下:第一章:通过阐述研究背景以及意义说明系统的实际用途。通过大量期刊论文资料的阅读了解当前相关科研的最新进展。通过研究方式的介绍说明整个系统开发架构。通过不同方面表明系统的可行以及前沿性;第二章:在该章节进行系统设计目标、系统完成功能的简要说明。通过硬件连接说明图进行辅助说明,使得能够更加清晰的了解实现脉络。然后在进行相关主要控制模块的选型,通过系统的应用场景进行各个模块的性能的对比选型。确定系统开发的相关外围控制模块,最后进行系统性能标准的阐述说明;第三章:介绍各个数据采集模块以及微处理器CPU单元的工作原理,从每个模块的数据传输模式、数据获取方式等不同方面进行模块说明。通过各个模块的工作原理说明进一步掌握模块的工作方式;第四章:在了解到硬件数据的获取储存格式后,通过软件设计实现整个系统自主化工作;第五章:在系统的功能设计完成后,为了确保系统的泛化性以及稳定性。先通过对硬件的各部分以及整体进行性能检测,然后在对软件部分的子函数以及主函数进行软件调试。最后将软硬件结合测试,保证最终设计的成功实现。第2章系统方案设计2.1系统设计目标本文设计的基于STM32的温控风扇系统,主要工作是进行不同模式的风扇控制。通过单片机搭配外围检测模块进行相关环境数据智能化监测[3][4]。系统通过外围检测模块进行环境模拟数据的采集、数据模数转化工作。然后,系统微处理器单片机通过CPU进行数据化读取储存,并且通过逻辑判断进行异常数据检测。系统当检测到数据异常后,会搭配数据传输模块进行用户的及时提醒,减少不必要的安全隐患、财产损失。系统的方案目标可分为以下几方面:(1)系统能够时实进行相关环境数据的采集工作,成功处理数据为可传输的模式;(2)系统能够搭建时实的数据传输通道,实现外围检测数据获取端、微处理器单片机数据逻辑处理端的分离;(3)系统能够实现友好的人机交互,并且能够搭配数据展现端进行操作的智能提示、反馈以及数据的展示。2.2主控芯片的选择单片机是系统功能得以实现的重要保证,需要合理正确的选择。在选择单片机芯片时主要考虑以下几个方面:(1)单片机的工作电压,为了实现低功耗,需要采用工作电压较低的单片机来实现系统的功能;(2)单片机的工作温度范围,如果单片机的工作温度范围过低不能适应较高温度的环境容易导致系统异常;(3)通用I/O口个数,要用到很多的外界模块进行数据交互等,要有足够I/O进行模块与单片机之间的连接;(4)由于需要的功能模块较多,考虑单片机的存储空间是否足够;(5)为了尽可能地降低功耗,考虑单片机可以满足的低功耗模式;(6)考虑单片机的不同工作环境,选择抗干扰能力强的单片机;(7)为了推广大规模使用,单片机的成本必须要考虑。在本文中设计的基于STM32的温控风扇系统中,有两种微处理器单片机可供选择:方案一:STM32单片机,该处理器单元是当前嵌入式最热门单片机,该单片机能够快速的实现相关的运算以及数据存储读取工作,该单片机也能快速的实现外部设备的连接,较低的能耗以及较高的性能也是其流行的主要原因。该单片机提供多个DMA通道,内部中断以及输出输入通道。当程序代码在系统中处理的时候,系统通过强大的抗干扰能力以及高速处理能力为程序代码的运行提供可靠依据。STM32的时钟特点也能够为我们的系统提供更可靠的服务,系统能够及时快速进行相关的逻辑处理,这也是使得系统应用到不同数据监测系统的主要原因。由于本系统对于环境监测数据及时性的要求,STM32单片机能够轻松胜任我们的工作要求。该单片机在当微控制系统中的市场占比比较大,相关的开发环境、开发文档、开发技术也比较完善,非常适合相关检测系统的开发。方案二:52单片机,52单片机是基于内核52的8位处理器,该单片机内部提供稳定高效的工作频率,内置可反复擦拭的Flash以及52字节的RAM,该单片机能够兼容多种指令集和多个引脚。52单片机对于小批量数据能够及时快速的进行读取,能够轻松驾驭相关环境检测系统的开发。52单片机内置的复位单元能节省外部资源空间。该微处理器单元能够在不借助编码器下通过串口进行程序的上传,也非常适合相关数据检测系统的开发。综合对比两种方案的选择,两种单片机都能实现本次系统开发的目标,但是对于实际应用情况的考虑。本次开发实现的系统要进行多种数据采集工作。因此,综合考虑系统的反应时间、系统性能、系统的开发成本,我们最终选择STM32单片机作为本次温控风扇系统的微控制器。2.3温度传感器的选择本设计是基于温度控制的一款嵌入式风扇,所以温度传感器的选择对于该设计尤为重要。方案一:利用检测温度的热敏电阻和运算放大器组成的热敏电阻温度测量电路。由于温度变化从而引起热敏电阻的电阻率发生变化,进而使输入电压发生变化。通过模数器将模拟信号转变成数字信号再传入单片机中进行处理。方案二:运用热电偶为核心的测量电路来检测温度变化,并通过信号转化将信号传入单片机中进行处理。方案三:采用DS18B20模块来检测温度。DS18B20是一款数字温度传感器,无需采用转换模块,可直接将数字信号采集并送入单片机。热敏电阻由于其温度系数比其它金属高,所以灵敏度较高,而且由于其工作范围大,体积小便于测量狭小空间等优点被广泛应用。但是它的缺点也极为明显,其阻值和温度的关系是非线性的,虽然可以通过一些电路加以修正,但是修正的电路是极为复杂的,不适用于我们的系统之中,并且它的稳定性相对比较差,不易更换。热电偶测量电路的优缺点也十分明显。热电偶相对于热面电阻来说非线性得到极大改善,并且坚实耐用无自身发热。热电偶的测量范围非常的广,可达到-200到+2500摄氏度。然而热电偶也有其缺点,例如信号调理电路复杂,一旦处理不当就会引入误差,导致精度下降,并且热电偶的抗干扰能力差,当周围有杂乱电场以及磁场时,对测量可能会出现问题。最主要的问题是其过大的测量范围达不到我们设计的温控风扇对于精度的要求。对于方案三所选择的DS1820温度传感器无疑是最符合我们设计要求的。它和处理器连接时只需要一条信号线就可以和微处理器实现双向通讯。单总线的经济成本低,抗干扰能力强,具有使用方便和适合大多数场合的现场温度测量等优点。此外,DS18B20高度集成化,避免了上述两种测量电路的复杂性和可能出现的误差,并且DS18B20与其它两种测量有着本质的区别,对于温度的测量可直接在模块内部转换成为数字信号,这就避免了信号转换过程中可能出现的错误和误差,所以对于本设计来说,DS18B20作为温度检测的模块最为合适。2.4显示电路的选择在本文中设计的基于STM32的温控风扇系统的设计中,有两种系统交互模块可供选择:方案一:LED数码管显示模块,该数码管显示模块主要运用于数据显示量比较低的系统中,显示屏刷新的频率较低,相关的功耗比较高。在模块控制方面,系统的数据控制比较麻烦,对于开发人员来说不友好,相关的数据控制只能够通过不同的数码管排列组合进行控制,数据的可扩展性比较差,需要对各个数码管进行管脚连接,也比较浪费IO管脚。方案二:OLED显示模块,该显示模块通过控制驱动电路和扩展驱动电路进行数据传输。数据传输格式也变得比较通俗易懂。最重要的一点是该显示模块的数据显示编程比较方便,成熟的API能够进一步提高开发人员的代码的兼容性、易控制性。该显示模块能够实现复杂字符的显示,提高了数据交互的多样性。用户不用对于各个IO进行编程控制,只需要调用相关封装好的API进行目标数据显示设计。综合对比两种方案的选择,两种显示模块都能实现本次系统开发的目标,但是考虑控制难度、系统开发的效率以及交互端口显示的便捷性,OLED显示模块更加适合本文设计的基于STM32的温控风扇系统的开发。2.5键盘输入模块的选择在本次基于STM32的温控风扇系统的开发当中,有两种键盘输入模块可以选择:方案一:独立按键模块,独立按键模块的数据传输是通过所连接的管脚进行传输,每使用一个按钮就会多使用一个管脚资源,每个按键和微处理器进行独立连接。通过获取按键的高低电平进行控制信号的实时监测,独立按键模块设计非常方便。系统在较少的控制信号需求下,独立按键模块是非常好的选择,能够减少不必要的管脚资源浪费。方案二:矩阵按键选择,测出具体哪个按键的状态,然后进行不同按键数据的传输,矩阵按键模块的主要特点是作用于大量数据输入的情况(输入密码、需要0-9数字控制等)。矩阵按键模块能够大量的节省相关的IO管脚资源。综合对比两种方案的选择,两种显示模块都能实现本次系统开发的目标,但综合系统运行环境、数据处理容量、控制信号交互是否频繁,本次基于STM32的温控风扇系统对于相关输入信号的依赖判断比较少,更侧重于系统的相关控制设置,所以独立按键模块更加合适。2.6本章小结本章主要是从设计目标出发,通过比较各个部分的常用模块,选择出最合适的外围检测模块,最终完成设计目的。第3章系统硬件电路部分3.1硬件系统总体设计本文设计的基于STM32的温控风扇系统,主要工作是进行多种模式风扇控制的自主化。通过单片机搭配外围检测模块进行相关环境数据智能化监测[5]。外围检测模块通过相关传感器进行环境数据采集,然后通过管脚传输到单片机处理单元,单片机处理单元对数据进行打包封装处理,为系统的其它应急处理奠定数据基础,当数据发生异常后,进行相关的逻辑处理,进一步实现整个监控系统的智能化工作。在整个系统的工作流程中,本系统以单片机为控制核心,还包括HC-05模块、人体红外检测模块、温度检测模块、时钟检测模块、按键等,系统框图如下:图3-1系统总设计图功能设计目标如下:(1)手动控制:通过按键控制调节风扇转速;(2)自动控制:根据环境温度自动控制风扇转速大小;(3)人体感应:根据人体感应检测是否有人,有人可以控制开启风扇,无人自动关闭风扇;(4)无线控制模式:通过HC-05实现手机控制风扇档位转速。3.2单片机最小系统STM32芯片中的内核是由ARM公司所生产。ARM是一个IP厂商,不生产芯片只制造它的内核。内核是芯片之中最核心的部分,类似于大脑。而像外设例如GPIO、串口和I2C等是由ST生产的,由ARM公司授权。STM32字面含义中ST指的是ST(意法半导体)公司。M是Microelectronics的缩写,表示为微控制器。32是32bit的意思,表示这是一个32bit的微控制器。由于技术的更替并且由于传统的8/16位的微控制器面对市场的需求显得捉襟见肘,STM32应运而生。STM32的诞生更加符合市场的需求。更是由于ST公司努力研发一种产品线丰富、开发简单易上手(基于固件库开发)的产品,使得STM32在众多的基于Cortex-M内核的微处理器中脱颖而出,成为最璀璨的新星。该单片机通过总线矩阵 (数据总线、指令总线、系统总线)和内核实现通信。时钟高达72m,强大的时钟系统,外部有高速和低速晶振,内部有高速和低速的RTC振荡器,并且支持硬件除法,超过百个IO,除了模拟通道大多兼容5V电压,支持多种调试方式 (JTAG,SWD),内存支持(FLASH和SRAM),支持上电复位,掉电复位以及可实现电压监控。多个AD/DMA/定时器/通信接口可供选择。常用的通信接口可实现不同外部设备的搭配,实现不同的数据传输任务。内置多个A/D转换器方便实现对外围检测设备数据的读取,单片机在多种控制引脚(控制引脚、信息输入输出引脚、外部晶振引脚、主电源引脚)协同完成数据读取工作。STM32单片机主控模块的电路原理图如图3-2所示。图3-2STM3核心板单片机的晶振电路非常重要,根据本电路需要,选择了12MHZ的晶振,除了晶振,此电路还需要两个电容使晶体有足够的负载可以起振,而电容则可以在20-40pF选择,不宜过大或过小,选择应适宜。复位电路负责整个系统的硬件复位,当程序执行到与预想的结果不一样时,或者整个系统出现紊乱、异常情况,则强制将程序复位至初始状态,单片机内部时序得到清零。单片机的IO口是一个在其内部却没有设置上拉电阻的三态双向口,这一列输入输出口既可用来当作复用接口,比如数据的输入与输出,也可以当作普通的信号控制口。当在程序中设置单片机的IO接口为输入接口时,端口将会蕴含驱动八个推挽逻辑电平的能力,对负载可以输出少于800微安的电流。当单片机需要作为输入的IO口使用的时候,外围的电路由于电流不够,通常的办法是在电路中加一个10K欧姆的电阻,作为上拉用的电阻。3.3温度检测电路设计本次设计中温控风扇的“温控”部分就需要由温度传感器来完成。在所有的温度传感器中,DS18B20温度检测模块是当下嵌入式系统开发中环境温度数据检测的主要测量模块,如图3-3所示。图3-3DS18B20外观及引脚图该模块独特的设计能够直接获取环境中的温度数据,该模块是数字温度数据获取方式,采集到的温度数据输出为电平信号[6]。该检测模块体积较小,硬件的引脚开销低,对于外界的环境抗干扰性强,并且该模块能够封装成各种模块,方便多种工作场合的选择。最主要的特点是能够采用单总线的接口,通过单传输引脚和微处理器进行双向通信。该模块的供电方式灵活,能够依赖电路的电源,不用独立提供电源。此外,数据传输的分辨率能够进行配置灵活选择(9-12位)。DS18B20温度检测模块也提供掉电保护功能,当系统掉电的时候,可以对测量分辨率、设置标志值进行保存。因为DS18B20是单总线协议,接收和发送数据都在一个引脚上进行,其接收时为高电阻接收,发送时是开漏输出,即输出0时通过三极管下拉为低电平,而输出1时,则为高电阻,需要外接上拉电阻将其拉为高电平。DS18B20通过上拉电阻与单片机PB9引脚相连,实现数据传输。DS18B20模块的电路原理图如图3-4所示。图3-4DS18B20温度检测电路3.4人体检测电路设计为了达到风扇在自动状态下智能开关的目的,我们需要使风扇在感应到人体时自动打开或关闭,所以需要采用人体感应模块。人体检测部分采用SR602人体感应模块,如图3-5所示,并且输出的高电平时间可调,具有非常高的性价比。图3-5SR602人体感应模块该感应模块用于检测环境中是否有人员活动,通过红外线技术进行人员信息的检测,能够用于各类自动感应系统,模块的灵敏性高、响应时间短、受环境变化影响较小。可通过改变时间调节电阻的阻值来实现不同的延时时间。该模块会根据不同的环境温度进行灵敏度的自动调节,功耗较小,需要的电流小于50mA。该模块输出信号为高低电平,非常方便和各种主控单片机进行连接通信。数据传输引脚与PB3连接。电路图如图3-6所示。图3-6红外检测电路3.5HC-05传输电路设计为了实现远程控制风扇状态这一设计目的,我们要在单片机与手机之间实现通信,所以需要无线通信模块与单片机连接。HC-05通信模块是一款高性能、低功耗的无线通信模块[7],如图3-7所示。图3-7HC-05蓝牙模块该通信模块在进行通信的时候有主机和从机区分,主机在和从机配对后就能进行数据的传输工作,因此该通信模块有两种工作模式可供选择(主动连接、被动连接)。该模块的主要特点也是在传输过程中代价较低。模块有两种传输协议(主透传、从透传)进行选择。系统在进行工作的时候,需要通过AT指令进行网络的相关初始化配置,当连接成功时,数据就能轻松的进行传输。该模块通过少量的引脚实现传输工作,其睡眠模式能够实现资源的节省,当连接传输数据时,再进行设备唤起,能够通过AT指令进行相关的网络配置以及传输数据的封装。HC-05通信模块的开发技术越来越成熟,对于网络通信的配置、数据传输只需要少量的引脚连接,该模块方便透明传输,能够加快数据通信的整个过程。HC-05通过TXD/RXD、VCC、GND管脚进行相关的数据传输工作。数据发送、接收引脚分别与PA9、PA10连接。BLE通信模块的电路原理图如图3-8所示。图3-8BLE模块电路3.6显示模块电路设计为了达到风扇人机交互的目的,屏幕对使用者显示当前风扇信息尤为重要。OLED显示模块是现在嵌入式系统中人机交互显示工作重要的作用模块,如图3-9所示。该模块相较于LCD1602而言,可以显示中文,并且显示字符更多,能够更全面的反应风扇的当前状态,非常符合本次设计要求。图3-9OLED显示屏本次设计采用7脚OLED显示屏,该模块通过电流控制二极管发光,不需要背光源进行显示发光工作。工作温度广泛,能够兼容不同困难的工作环境,OLED模块的分辨率也较高。该模块显示的数据比较全面,同时兼容多种数据显示格式,OLED显示模块在保证数据显示的高效下也兼容了低功耗的特点,供电电压的选择也比较多,兼容3.3V和5V。OLED显示模块也有多种控制指令,能够设置显示亮度、显示对比度等。该显示模块也能够兼容多种接口(并行数据接口方式、SPI接口方式、IIC接口方式),OLED显示模块通过硬件控制进行不同接口模式的设置,本次设计选择SPI通信协议。多种接口方式铸就该显示模块的兼容性,不同的数据接口模式的相关控制信号发送不同、需要的引脚数量也不同,但是系统的复位引脚RST引脚的控制方式不变(低电平导致OLED复位)。系统在进行工作的时候,搭配数据传输引脚、信号选择引脚实现数据显示工作。多种信号控制以及数据写入模式使得OLED显示模块能够进行多种工作模式。OLED显示模块的电路原理图如图3-10所示。图3-10OLED液晶显示3.7风扇驱动电路设计本次设计中的风扇电路模块采用电机驱动,通过MOS管与单片机PC14引脚连接。风扇驱动模块用于生活中的风扇模拟,该电机驱动电路采用了一个N型MOS管,高电平导通。当单片机发送高电平时,电机得以运行[8][9][10]。为了达到温控风扇这一目的,通过温度检测模块检测到当前温度,控制不同的PWM波输出,也就是高低电平占比来调节转速。PWM全称脉冲宽度调制,是利用微控制器例如本次设计中所用到的STM32的数字输出来对模拟电路进行控制的技术。以单片机为例,单片机的IO口只能输出数字信号,就是只能输出高电平和低电平。当高电平为5V,低电平0V,我们要输出不同的模拟电压,就需要用到PWM,通过改变IO口输出的方波的占空比从而使用数字信号模拟成的模拟电压信号,具体如图3-11所示。图3-11占空比示意图电压是一种连接1或断开0的重复脉冲序列被加到模拟负载上的,通过连接和断开的时间控制,可以输出不大于最大电压值的模拟电压(0~5V)。当占空比为50%时,就是高低电平各占一半,此时输出的模拟电压就为2.5V。如果此时占空比为75%,那么此时的模拟电压就为3.75V。并且风扇部分采用直流电机驱动,可以根据输出电压的大小来调整转速,实现温控风速的目的。具体的电路图如图3-12所示。图3-12风扇电路3.8本章小结本章节从硬件电路的设计出发,对单片机最小系统电路、温度检测电路、人体检测电路、无线传输电路、显示电路、风扇驱动电路等设计进行比较详细的介绍以及它们的工作传输情况进行大概的描述,总体对实现本次设计的硬件电路进行了模块化的分类介绍。第4章系统软件设计4.1软件编程要求本文设计的基于STM32的温控风扇系统在进行相关外围设备以及主控制单片机的选择后,需要进行系统工作逻辑编程,在外围设备实现相关数据获取工作后,要实现数据的目标化处理,对相关的数据进行分组、打包、封装等工作,方便进行后续不同数据的逻辑判断。这样做的优点是系统能够无时无刻进行不同数据的监控,方便快捷的根据不同字段进行数据调用。为了后期功能、应急事务的扩展考虑,相关的不同数据的处理逻辑应该封装到不同的子函数中,这样在编程环境,就能方便快捷的调用子函数进行数据的获取,我们在编程过程中也能集中在系统的逻辑处理过程。在整个系统的展性,不同数据获取的封装非常的必要,良好的软件逻辑逻辑控制方面,就能够起到事半功倍的作用。为了提高整个系统逻辑的复用性、延编程有以下优点:(1)不同的环境数据能够单独获取、调用以及封装,当后期相关逻辑出现问题,能够及时的进行问题排查校正工作;(2)每个单独逻辑编程时,能方便了解系统的具体运行状态,对于异常的等待过程,也能够及时进行问题排查校正工作;(3)各个数据单独逻辑处理封装,能够使得系统清晰的进行逻辑处理控制,为后期功能、应急事务的扩展提供可靠基础。4.2硬件编程软件介绍本文设计的基于STM32的温控风扇系统中的软件逻辑用KEIL实现,KEIL编程界面如图4-1所示,该软件设计的最初目的就是用于嵌入式硬件控制逻辑实现。软件能够兼容不同的主控单片机,能够对硬件编程的相关环境进行快速搭建,适配各种配置文件,软件的界面比较简洁明了,当硬件初始化环境配置完成后,使用者能够进一步完成逻辑工作的实现。在使用者完成相关的逻辑控制编程后,通过软件提示能够快速的进行代码编译工作,短时间内编译成主控单片机能够识别的机器码。然后,进行逻辑程序的写入工作。程序的烧录过程能够人性化、自主化实现,使用者只需要根据相关提示进行操作即可。该软件也集成了调试功能。图4-1KEIL编程界面该软件通过设置目标单片机型号、寄存器头文件等就能实现驱动的设置,在软件中能够方便的观测系统逻辑代码运行的整个过程,可以查看中断器、定时器、I/O口的相关状态,对于一款比较符合开发者的IDE,需要以节省开发周期、增加开发便捷度为主旨,该KEIL编程软件刚好能够减少开发者不必要的操作,相关的生成文件代码比较紧凑、方便理解。该软件友好的界面使得开发者更加容易快速的上手,可以通过官方网站获取相关的安装包资源,然后运行相关的可执行文件完成本地安装。值得注意的是在安装目录中不出现中文文件名。为了使STM32的外设、时钟等更加容易配置,本次设计采用了STM32CubeMX来辅助KEIL进行函数封装以及硬件配置等,界面如4-2所示。STM32CubeMX是一个配置STM32代码的工具,具有大量的芯片库来方便我们对于需要的芯片进行选型。图形化的端口配置更加直观,方便我们对于引脚、模式、外设等进行直接配置。并且能够加深对于时钟树的理解与运用,加速了代码的生成。图4-2STM32CubeMX配置界面4.3编程语言选择本文中设计的基于STM32的温控风扇系统主要是进行硬件相关逻辑控制工作,对于类似的任务的实现,我们选用C语言内核进行编程,C语言编程的上手比较快,相关的逻辑处理过程正好符合硬件的逻辑处理。C语言的优点在于编程逻辑简单、对于变量数据的定义比较方便,C语言编程能够把所有不同的逻辑进行封装,实现数据流程的模块化,刚好符合我们的编程设计要求。C语言的编程量比较小,相关的逻辑处理能力比较强,对于目标逻辑能够通过简单的代码进行实现。而且C语言的编译速度比较快,能够进行快速的编码实现。C语言是硬件控制编程中最主流的语言。硬件控制编程的另一种语言是汇编语言,但是汇编语言的缺点是相关控制逻辑比较枯燥,对于本次设计的相关系统,开发者不能够快速的掌握其编程规则,这样就会增加开发周期和编程难度。在后期的相关任务扩展过程中,维护人员不方便代码的升级,系统的适用性、兼容性就被大大降低。C语言不仅能够方便开发者的阅读,也有通俗易懂的代码提示功能。C语言其强大的移植性,也使得其兼容不同的平台系统,方便任务扩展、系统升级等功能,能够使得整个系统的开发周期大大缩短。4.4系统初始化程序设计本文所设计的基于STM32的温控风扇系统,通过主控单片机、外围检测设备进行环境数据的采集以及转化功能,该系统能够对检测到的数据进行及时监控。整个系统的逻辑处理过程中,首先要进行各个检测设备、传输引脚的初始化。能够在系统工作之前对相关的硬件进行检测,方便相关问题的进一步定位,能够及时的进行外围检测设备的监测,避免逻辑阶段数据获取问题。通过编程手段对硬件模块的配置进行封装,方便后期数据获取。当各个外围模块初始化成功后,进行数据的逻辑处理工作。根据逻辑处理能够使得系统进行数据自主化处理、监控、判断等工作,系统面临应急情况的处理方式都得进行逻辑编程控制。系统后期的所有数据获取、逻辑判断工作都是基于系统初始化成功条件下。硬件管脚、环境配置初始化重中之重。具体的初始化流程如图4-3所示。图4-3程序初始化流程图4.5温度获取子程序设计DS18B20温度检测模块需要接受特定的控制信号(ROM/RAM)进行相应控制,ROM信号用于存储单元的控制(单个温度测量模块跳过该步骤),RAM信号用于从RAM中读取数据进行操作,进行相关温度数据采集和读取。DS18B20温度检测模块通过单线进行数据传输,所以对于信号的识别要增加时序上的信息,这样才能保证数据的完整性。相关电压的上拉、下拉是通过增加时序信息进行传输。单片机读取点能够进行数据的还原,实现温度数据的读取。具体的温度获取流程图如图4-4所示。图4-4温度检测流程4.6人体检测子程序设计该模块在全自动感应下的工作流程比较简单明了,当人进入其感应模块范围,信号输出引脚会输出高电平,离开其感应范围后,模块定时延时后,信号传输引脚输出为低电平。通过引脚的高低电平进行环境中人员信息的检测工作,具体的流程图如图4-5所示。图4-5人体检测流程4.7HC-05控制子程序设计HC-05通信模块通过少量的引脚资源进行无线数据传输通道初始化、数据传输等工作。该模块有多种工作模式的选择,我们通过串口AT指令进行相关操作的实现。系统首先通过AT进行通信应用模式的设置,然后搭配不同的AT指令进行网路通信协议的选择,然后通过设置需要发送的数据,然后封装请求数据格式,进行数据传输工作。具体的无线数据传输流程如图4-6所示。图4-6无线通讯部分流程4.8显示数据子程序设计OLED显示模块主要通过多个信号选择引脚以及数据传输引脚进行数据的显示工作。OLED显示模块通过多个信号线组合进行不同工作模式的实现。相关数据的显示主要通过初始化、指令操作、数据操作三个步骤进行实现。通过信号引脚设置数据读写控制信号、数据写入信号、命令/数据标志信号。系统首先把准备好数据源,然后通过DS(RS)引脚设置命令/数据模式(高电平数据、低电平命令模式)。当读取数据时,设置RD引脚上拉,把数据写入到8个数据传输引脚。当写入数据时,设置WR引脚上拉,使得数据写入到OLED内嵌的驱动中。具体的显示流程图如图4-7所示。图4-7液晶显示部分程序流程4.9本章小结本章主要介绍了基于STM32的温控风扇系统的软件初始化流程以及各个模块数据获取程序的流程。明确了各个模块的数据格式,为后续逻辑控制实现打下坚定的基础。第5章实物调试5.1系统硬件测试本文设计的基于STM32的温控风扇系统在逻辑功能实现前,要进行相关硬件性能测试。对于每个外围检测设备的回数据获取进行测试,检测是否能够在各种环境中进行数据的获取工作。由于本次系统要在外界环境下进行工作,对于硬件的连接管脚也要进行测试,检测管脚是否会出现松动的情况,导致数据传输过程中出现数据漏传、错传。硬件环境数据获取失败后,会严重影响后期数据逻辑处理阶段的进度。只有保证硬件的运行,才能确保系统的稳定性。当数据获取方面出现问题是的时候,要进行及时的排查、检测,要确保硬件环境的稳定工作。本次系统相关的外围检测设备都是选择的相对兼容性、耐用性比较好的模块,我们要确保硬件在相关规定环境中运行。硬件环境的稳定工作为后期工作提供可靠保证。5.2系统的软件测试本文设计的基于STM32的温控风扇系统载硬件运行环境测试后,要进行软件逻辑的测试工作,KEIL软件编程界面如图5-1所示。我们要对代码的健壮性、独立性进行测试,我们要严格按照之前的逻辑设计要求进行测试。系统的要实现对各种错综复杂情况进行考虑,要对每种情况进行考虑,并且对相关数据获取的子函数进行黑盒测试,测试相关的回传数据格式,是否符合一定的格式要求,方便进行后续不同数据的逻辑判断。这样做的优点系统能够无时无刻进行不同数据的监控,能够方便快捷的根据不同字段进行数据调用。为了后期功能、应急事务的扩展考虑。当我们对各个子函数的功能测试完成后,要进行主函数逻辑测试,我们要进行各种运行状况进行测试。测试各种应急情况是否考虑完全,是否能够实现整个系统的设计任务。并且对于提示人机交互进行测试,使得用户能够时刻了解当前的系统工作状态,也有利于我们检测系统是否出现故障。系统软件测试是整个系统开发的重要环节之一。图5-1KEIL软件编程界面5.3系统的调试分析在本文设计的基于STM32的温控风扇系统硬件、软件测试完成后,保证了硬件环境的运行稳定、软件的封装独立后,要进行系统的软硬件的联合调试分析。要对每个数据采集、人机交互进行联合调试,检测在系统运过程中各个数据获取的衔接是否存在异常,在整个外围模块联合调试过程中,可能会因为模块相应、数据传输方式等问题,相关的数据显示、获取、打包可能会出现异常、乱码提示等错误。这个时候,就要进行兼容行的测试调整。当模块的初始化和调用出现空档期的时候,会出现数据异常、空值等情况,如果不考虑相关的情况,在接下来逻辑处理阶段就会出现意想不到的相应结果。对于多种获取模块、交互模块等的联合工作下,避免不了出现各种异常情况,只有在一次一次的迭代测试过程中,处理各种相关的情况,才能够及时的进行异常处理。在测试阶段完成后,实现一个攻守兼备的基于STM32的温控风扇系统,实现所需要达成的任务目标。最终功能实现:(1)第一个按键为模式选择键,当按下第一次时进行模式选择,随后按下第二个按键为自动模式A,第三个按键为手动模式M,如图5-2。图5-2模式设置(2)当第一个按键按下第二次时进行温度的阈值设定,第二个按键增加阈值,第三个按键减少阈值,阈值的默认值为25摄氏度,如图5-3。图5-3温度阈值设置(3)当第一个按键按下第三次时将前面选择的模式确定。(4)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论