基于STM32的智能风扇
- 格式:doc
- 大小:306.00 KB
- 文档页数:15
基于stm32温控风扇系统实践总结
基于STM32温控风扇系统的实践总结如下:
1. 硬件设计:将STM32微控制器与温度传感器、风扇和显示
屏等硬件模块连接起来。
确保电路连接正确,并使用合适的电源进行供电。
2. 软件开发:使用STM32的开发环境(如Keil或Arduino)
进行软件开发。
首先,配置GPIO引脚和外设,以便控制温度
传感器和风扇的读取和控制。
然后,编写代码实现温度传感器数据的读取、温度与阈值的比较,以及风扇转速的控制。
3. 温度传感器数据读取:使用SPI、I2C或ADC等接口读取温度传感器的数据。
根据传感器的规格和手册,解析数据并将其转换为实际温度值。
4. 温度控制算法:根据应用需求和系统特性,选择合适的温度控制算法。
常见的控制算法包括比例控制、PID控制和模糊控
制等。
根据当前温度和设定的阈值,调整风扇的转速,以保持温度在可接受范围内。
5. 显示和调试:添加LCD显示屏,以便实时显示当前温度和
风扇转速等信息。
通过调试工具和串口通信,进行系统的调试和故障排除。
6. 优化和改进:根据实际情况和反馈,对系统进行优化和改进。
例如,通过增加温度传感器的数量,提高测量的准确性;通过
改进控制算法,提高温度的稳定性和响应速度;通过添加保护机制,防止温度超出安全范围等。
总之,基于STM32温控风扇系统的实践需要进行硬件设计和
软件开发,同时关注温度传感器的数据读取和风扇的控制算法。
通过持续的调试和优化,可以实现高效稳定的温控风扇系统。
基于stm32温控风扇系统实践总结在基于STM32温控风扇系统的实践中,我收获了很多经验和教训。
这个项目的主要目标是根据环境温度自动调节风扇的转速,以实现高效且静音的散热效果。
以下是我在实践中的总结:首先,我学会了如何使用STM32开发板和相应的软件工具。
我学习了如何使用STM32CubeMX来配置GPIO、定时器和中断等功能,以及如何使用Keil MDK进行代码编译和调试。
这些工具对于开发嵌入式系统非常重要,因此熟练掌握它们很有必要。
其次,我深入了解了PWM技术的原理和应用。
PWM(脉冲宽度调制)是一种通过控制电压的占空比来控制电机转速的方法。
我使用STM32的定时器功能生成PWM信号,并根据环境温度的变化调整占空比。
这样,当温度较高时,风扇转速会增加,从而提供更好的散热效果,当温度较低时,风扇转速会减小,从而降低功耗和噪音。
另外,我遇到了一些问题,例如传感器精度和噪声滤波。
在实践中,我发现温度传感器的精度对于系统的稳定性至关重要。
我尝试了不同类型的传感器,并通过校准和滤波算法来提高精度。
此外,由于环境中可能存在的噪声和干扰,我还需要使用滤波器来平滑传感器数据,以获得更准确的温度值。
此外,考虑到电路的稳定性和防止温度传感器故障,我还添加了一些保护功能。
例如,我设置了温度上限和下限,当温度超过上限或低于下限时,系统会自动关闭风扇并发出警报。
这能够保护电路和其他电子设备免受过高的温度损害。
最后,我还了解了如何使用串口通信将系统连接到上位机。
通过串口通信,我可以通过上位机监视和控制温控风扇系统。
这种连接方式为系统的调试和监控提供了便捷性。
总的来说,基于STM32的温控风扇系统的实践使我掌握了嵌入式系统开发的基本技能,并且对温控系统设计和实现有了更深入的理解。
通过这个项目,我还发现了一些问题并找到了解决方案,这对我的技术积累和职业发展都具有重要意义。
毕业论文基于Android的红外智能风扇设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
2019年第23期信息与电脑China Computer & Communication软件开发与应用基于STM32的智能风扇控制系统设计胡慧之(无锡城市职业技术学院,江苏 无锡 214153)摘 要:笔者设计的智能风扇控制系统以STM32F407为控制核心,结合温度检测、人体感应、语音识别、蓝牙数据传输等模块,对常用风扇进行了改进。
该系统具有人工控制和智能控制两种工作模式,在智能控制模式下,风扇会根据检测到的环境温度自动调整风扇转速,使环境温度恒定在人体最舒适的范围内;在人工控制模式下,用户可利用LCD触摸屏、手机APP和语音人为控制风扇转速。
此外,该系统还采用红外热释电传感器对人体进行检测,有人时正常工作,无人时风扇会延时一段时间再自动关闭,避免能源浪费。
关键词:STM32;智能风扇;PWM控制中图分类号:TM925.11 文献标识码:A 文章编号:1003-9767(2019)23-059-03Design of Intelligent Fan Control System Based on STM32Hu Huizhi(Wuxi City College of Vocational Technology, Wuxi Jiangsu 214153, China)Abstract: The intelligent fan control system designed by the author takes STM32F407 as the control core, and combines temperature detection, human body induction, speech recognition, Bluetooth data transmission and other modules to improve the common fans. It has two working modes: manual control and intelligent control. In the intelligent control mode, the fan automatically adjusts the fan speed based on the detected ambient temperature, so that the ambient temperature is constant within the most comfortable range of the human body. In manual control mode, the fan speed can be controlled manually using the LCD touch screen, mobile app and voice. In addition, the infrared pyroelectric sensor is also used to detect the human body. When someone is working normally, the fan is automatically turned off after a delay, and energy is saved.Key words: STM32; intelligent fan; PWM control0 引言传统电风扇大多数功能单一,只有选档吹风、定时、定速等功能,不能根据温度变化调整转速,存在一定的健康隐患和能源浪费。
STM32单片机下智能风扇控制系统设计探析提纲:1.智能风扇控制系统的功能和特点2.STM32单片机的控制原理和特性3.系统硬件设计方案的考虑和实现4.系统软件设计方案的考虑和实现5.系统性能测试及未来拓展方向的展望1.智能风扇控制系统的功能和特点智能风扇控制系统是一种可以自动监测室内温度、湿度等参数,并据此自动调节风扇转速、风量等参数的系统。
适用于家用、办公室等多种场合中,可大大提高室内舒适度,降低能耗和环境污染。
其主要特点包括:- 可自动监测温度、湿度等参数,并据此自动控制风扇的运行;- 可远程遥控,方便操作;- 可根据不同需求调节风扇转速、风向等参数;- 可与其他智能家居系统实现联动控制,更好地提高室内舒适度。
2.STM32单片机的控制原理和特性STM32单片机是一款高性能、低功耗的微控制器,广泛应用于智能控制系统中。
其主要特性包括:- 低功耗:采用了动态频率调节技术和功耗管理技术,可实现低功耗运行;- 高性能:内置高速时钟和优化指令集,可实现高速计算和高效率控制;- 丰富接口:支持多种外部设备接口,包括UART、SPI、I2C 等;- 大容量存储:集成大容量Flash存储器和SRAM内存,可存储大量的程序和数据。
3.系统硬件设计方案的考虑和实现硬件设计主要包括传感器模块、通信模块、风扇控制模块等。
传感器模块:可采用温度、湿度传感器等,用于监测室内环境参数。
通信模块:可采用Wifi、Zigbee等通信技术实现远程遥控。
风扇控制模块:可采用电机驱动芯片和PWM技术实现风扇的速度调节。
4.系统软件设计方案的考虑和实现软件设计主要包括参数监测、风扇控制和通信模块设计。
参数监测模块:通过定时采样温湿度传感器信号,实现室内环境参数的实时监测。
风扇控制模块:根据室内环境参数,实现风扇转速、风量等参数的智能控制。
通信模块:实现远程遥控功能,方便用户操作。
5.系统性能测试及未来拓展方向的展望系统性能测试主要考虑系统的响应速度、精度和稳定性。
第10期2023年5月无线互联科技Wireless Internet TechnologyNo.10May,2023作者简介:陈泽伟(2002 ),男,广东揭阳人,本科生;研究方向:硬件开发㊂∗通信作者:刘雯景(1988 ),女,湖北天门人,讲师,博士;研究方向:智能信息处理㊂基于STM32的人脸追踪智能加湿风扇陈泽伟,刘建豪,林育龙,范洁润,刘雯景∗(广东海洋大学,广东湛江524088)摘要:目前市场上大多数的智能风扇,需通过遥控器或者按键来控制风扇的吹风方向以及风扇的风速,使用时较为不便,且功能单一㊂文章以STM32为主控芯片,设计了一款在风扇的主体基础上,结合人工智能,实现对人脸的有效跟踪吹风,调节环境温湿度,同时可自主控制或者通过手机小程序控制的人脸追踪智能加湿风扇㊂关键词:人脸追踪;智能;风扇中图分类号:TP39㊀㊀文献标志码:A0㊀引言㊀㊀随着人们对生活品质要求的不断提高,家具和电器智能化已经成为主流趋势㊂目前,智能风扇已经开始投入市场,并且不断追求更加人性化的功能㊂目前,国内市面上的智能化风扇产品的销售份额超过40%,其中以智能控制㊁变频及红外遥控为主要的需求点,但目前市场上电风扇的自动跟随功能却鲜有实现,并且现有的风扇不能检测到人是否在风扇吹风范围内,因此时常导致风扇做无用功㊂针对市场对于此类智能风扇的空缺,本文设计的人脸智能识别风扇可以进行远程遥控,在风扇运行期间,可以主动追踪人脸,进行有效范围吹风,并且识别人与风扇之间的距离,实现吹出的风临体时温和舒适的效果㊂当风扇运作范围内无人时,可自动关闭,以此达到节能的目的,并且可根据用户需求和结合室内环境,进行加湿降温㊂1㊀人脸追踪智能加湿风扇总体设计方案㊀㊀该风扇由控制主板㊁摄像头识别㊁舵机云台㊁支撑结构4大结构组成㊂考虑到程序的复杂性和性能要求,选用STM32F103C8T6为主控芯片,超声波模板用于测距,DHT11温湿度模块用于检测环境温湿度,0.96寸OLED 显示屏用于显示当前风扇主要状态参数,ESP8266-WiFi 模板用于联网,主要连接MQTT 服务器实现远程操控,继电器模块主要用于控制加湿器的开关㊂风扇的人脸追踪通过摄像头识别抓取信息,风扇的整体结构采用3D 打印模型进行支撑,风扇的转向通过舵机云台实现㊂具体设计方案如图1所示,摄像头抓取人脸信息并给出对应的坐标信息,树莓派进行数据处理,并将处理后的信息通过串口发送到单片机,单片机收到具体坐标信息后,通过主控芯片控制数字舵机进行相应的动作,使得风扇能够对人脸进行跟踪㊂同时,DHT11温湿度模块获取湿度后,程序对其进行分析,与人体最适合的环境湿度进行对比,若湿度过低或过高,则通过主控芯片控制继电器操控加湿模块是否通电工作,从而达到是否加湿的目的㊂超声波模块对追踪到的人进行测距,若人与风扇的距离较近,风速会降低,使得人吹到的风较为温和;若人离风扇较远,则风扇的风速会增大,以此达到降温通风的效果㊂同时,也可以通过小程序来控制风扇的转速与加湿开关㊂图1㊀功能流程2㊀机器视觉模块的设计㊀㊀机器视觉模块包括摄像头㊁树莓派㊂摄像头采用市面上较为流行的OpenCV 进行识别;树莓派可以完成IO 引脚控制,运行相应的操作系统可以完成一些小型的测试㊁开发等㊂本文通过CascadeClassifier 函数来调取OpenCV 中自带的训练好的人脸检测模型进行人脸识别[1]㊂CascadeClassifier 是OpenCV 中人脸识别的一种级联分类器,可以使用LBP 特征和Haar 特征来区分人脸,本文通过Haar 级联分类器来区分人脸㊂Haar 特征是一种能反映图像灰度变化和像素分模块求差值的卷积模板,有中心㊁线性㊁边缘和对角线等特征组合成特征模板,其特征值由黑色矩形像素和减去白色矩形像素来表示㊂计算Haar 特征是通过改变特征模板的位置和大小在图像子窗口中举出大量的特征㊂特征模板在图像子窗口中扩展得到的特征称为 矩形特征 ;矩形特征的值定义为 特征值 ㊂矩形特征不仅存在于图像的任意位置,也可以任意改变大小,矩形的位置㊁大小和模板类别这3个因素的函数是矩形特征值㊂由于位置㊁类别和大小的变化多样,即使是很小的检测窗口也含有大量的矩形特征㊂Haar 级联分类器建立在Haar -like 特征的基础上,通过积分图加速计算,并利用Adaboost 训练的强分类器级联的方法进行人脸检测㊂先定义每个Haar -like 特征的特征值f i 为featurevalue i =weight white ðp ɪwitep -weightblack ðp Eblackp ,即f i =白色区域像素-黑色区域像素,weight 表示权重值,目的是维持白㊁黑两种矩形区域的像素数目相同,确保在灰度绝对均匀的地方其特征值都为0㊂Haar -like 特征的值经过运算可以反映该区域的灰度变化情况,将一幅输入图像的每一个区域做类似的运算后与训练集中图像的Haar -like 特征值对比[2]㊂例如,人脸鼻梁的颜色比鼻梁两边部位处更浅,脸颊的颜色比旁边两个眼睛部位处更浅等㊂根据上述特点,可以判断输入图像是否具有人脸特征㊂识别出人脸后,用蓝色的方框将人脸框起来,并且返回x ,y 的坐标值㊂获得人脸的x ,y 的坐标值后,将摄像头的区域平均分为9块,若返回的x ,y 的坐标值位于左上角那一块,即令x label 和y label 返回为(1,1),若为右下角那一块,则返回(3,3),根据不同的返回值,传输给树莓派㊂树莓派将信息通过串口发送给单片机,由单片机控制舵机将风扇旋转至不同的角度,起到令风扇能跟着人运动的功能[3]㊂3㊀智能风扇的硬件设计与主要功能实现原理3.1㊀硬件设计㊀㊀风扇的转向主要由舵机云台控制,分别由两个180ʎ旋转大扭矩数字舵机组成,可实现上下左右转向,人脸追踪识别采用工业级摄像头进行识别分析,加以算法收集数据并处理㊂风扇的搭建采用3D 打印品来支撑,3D 打印用品耗材均为PLA,利用SOLIDWORKS 建模软件分别设计风扇底架㊁电机轴套㊁超声波支架等,以此来搭建人脸追踪智能加湿风扇㊂主板芯片为STM32F103C8T6,搭配DHT11温湿度传感器㊁0.96寸OLED 显示屏㊁ESP8266-WiFi 模块㊁TB6612电机驱动模块以及继电器和相关电路所需元器件㊁降压芯片㊁晶振电路等㊂通过ESP8266-WiFi 模块,可以实现串口与WiFi 之间的转换,ESP8266-WiFi 模块与MQTT 服务器连接,MQTT 服务器提前订阅主题以及相关信息,WiFi 模块与其连接,从而可以与同样进行订阅发布信息等操作的手机小程序进行数据传输,以此达到通过手机小程序来控制智能风扇的效果㊂3.2㊀主要功能实现原理㊀㊀摄像头识别到人脸后,树莓派发送区域坐标给单片机,此时单片机控制舵机旋转至对应的角度,实现人脸追踪的效果[4]㊂利用超声波模块测距,可以实现风扇的风力随人与风扇的距离而变化,从而使人感受到风扇吹出的风是一种温和舒适的风㊂控制加湿功能的实现由DHT11温湿度传感器和继电器模块㊁加湿器共同完成,采集数据后,通过DATA 数据传输引脚给单片机,单片机接收到数据后进行分析处理并控制是否加湿,经查询,人体最适宜湿度在45%~65%,当湿度小于45%时,加湿器工作,大于则不加湿㊂4㊀调节系统的设计4.1㊀小程序界面设计㊀㊀本系统主要针对人脸追踪智能加湿风扇(以下简称风扇)进行设计,设计目的在于控制风扇的挡位㊁转向㊁加湿等功能㊂系统涵盖有控制模块,包含3个开关和1个滑动选择器,主要是风扇开关㊁转向开关㊁加湿开关和挡位调节滑动器,分别具备调节风扇开关㊁调节风扇转向㊁调节加湿与否和调节风扇挡位的功能㊂在页面设计中,点击下方tabBar 栏中的功能可到达控制页面㊂页面中包含风扇开关㊁转向开关㊁加湿开关和挡位调节,开关由switch 组件实现,而挡位调节由slider 组件实现㊂开关按键均默认为关,按下风扇开关按键时,风扇设备会接收到指令将风扇打开;按下转向开关按键时,风扇设备会接收到指令将风扇转向打开;按下加湿开关按键时,风扇设备会接收到指令将风扇加湿功能打开㊂风扇有3个挡位可供选择,默认为0档,当风扇开关被打开时,挡位默认调节为一档,后续用户可根据实际需求滑动调节挡位,根据选择器选择的挡位不同,风扇设备会接收到不同的指令进行挡位调节㊂当用户未将风扇开关打开而调节风扇挡位时,若挡位非0档,则风扇开关会自动跳转到开㊂若用户直接将挡位调节为0,则风扇开关也会跳转至关㊂当风扇开关被关闭时,所有按键全部都会被自动关闭㊂4.2㊀小程序功能实现㊀㊀消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)是一种基于发布或订阅模式的通信协议,MQTT最大的优点在于可以用极少的代码和有限的带宽,为硬件设备提供远程连接的实时消息服务,不添加多余的功能,消息推送和订阅更加方便,有较高的传输效率等[5]㊂本系统通过MQTT协议搭建手机客户端和硬件设备之间消息的推送和订阅,手机客户端向服务器发生请求,服务端收到请求后,向硬件设备返回响应,从而实现消息的推送和订阅㊂通过connect方法使得手机客户端连接到服务器,系统代码通过定义MQTT的IP为MQTT_IP=www. kinnon.xyz和调用client=mqtt.connect('wxs://'+ MQTT_IP,MQTT_OPTIONS)来实现手机客户端和服务器的连接㊂程序使用微信开发者工具进行运行,其前缀需用 wxs ,通过message.toString()函数获取手机客户端向服务器所推送的消息,最后使用sent函数向服务器推送消息,实现将手机客户端的操作指令发送给服务器㊂MQTT发布的服务质量保证(QoS)消息不是从客户端到客户端的,是客户端与服务端之间的㊂发布消息的QoS和主题订阅的QoS是决定订阅者收到MQTT消息的QoS级别,本系统使用QoS级别为0来操作使用,定义topic为fan㊂通过以上内容,实现硬件设备从MQTT服务器获得手机客户端的操作指令,从而进行下一步的设备操作㊂5㊀功能测试㊀㊀人脸追踪智能加湿风扇通电初始化后,摄像头开启工作,当摄像头识别区域内有人时,风扇开始运作,舵机开始跟踪人脸,将风扇对着人吹风,同时超声波模块与温湿度传感器开始工作,控制风扇的合理转速,并且根据环境湿度合理开启或关闭加湿器,显示屏同时显示此时风扇的工作状态㊂也可以通过手机小程序控制风扇的开关㊁风速㊁加湿功能,若摄像头识别区域内无人,则风扇自动断电,停止工作,等识别区内有人时,风扇再进行工作㊂6㊀结语㊀㊀本设计基于STM32,结合视觉算法,进行软件设计㊁硬件设计和结构设计,最终实现人脸追踪的智能加湿风扇㊂相比于一般家用电风扇,更为智能,可以自主跟踪人脸,调节环境湿度,给人最舒适的生活环境,可以极大地方便人们对家电的使用,在满足人们对风扇的基本功能和需求外,结合互联网特性,为今后的智能风扇发展提供了一定的参考㊂参考文献[1]李永杰,周桂红,刘博.基于YOLOv3模型的人脸检测与头部姿态估计融合算法[J].广西师范大学学报,2022(3):95-103.[2]车佳祺,许晓荣,梁颢铭.一种轻量级人脸追踪与识别系统设计方案[J].电子设计工程,2022(14): 58-63.[3]曹佳璐,余宝莲,邵佳慧,等.基于STM32的智能风扇控制系统设计[J].山西电子技术,2022(4):9-11,17.[4]刘庆俞,王孝延.基于人脸检测的智能风扇设计[J].安阳工学院学报,2021(2):20-23.[5]吉毅.基于物联网的智能家用风扇控制系统设计分析[J].造纸装备及材料,2020(4):112-113.(编辑㊀沈㊀强)Intelligent humidification fan based on STM32face trackingChen Zewei Liu Jianhao Lin Yulong Fan Jierun Liu Wenjing∗Guangdong Ocean University Zhanjiang524088 ChinaAbstract At present most of the intelligent fans in the market still need to control the direction of the fan and the wind speed of the fan through the remote control or button which is inconvenient to use and has a single function.In this paper STM32as the main control chip designed a fan outside the main body of the fan combined with artificial intelligence to effectively track the face of the air adjust the ambient temperature and humidity at the same time can control autonomously or through the mobile phone small program face tracking intelligent humidification fan. Key words face tracking intelligence fan。
开题报告内容大纲:一、前言1. 概述本文内容2. 对基于STM32的温控风扇毕业设计进行简要介绍二、毕业设计背景及意义1. STM32在嵌入式领域的应用前景2. 温控风扇在日常生活中的重要性和应用场景三、研究现状分析1. 当前温控风扇的设计方案及存在的问题2. 对市面上已有的基于STM32的温控风扇产品进行分析四、毕业设计的主要内容和目标1. 设计思路和技术路线2. 设计的主要功能和特点3. 实现的技术难点和解决方案五、参考文献1. 相关技术资料和文献2. 对已有成果和理论的借鉴和归纳六、总结与展望1. 对毕业设计的总结和展望2. 对未来在该领域的深入研究和应用前景的展望文章内容开始:一、前言在现代社会,随着科技的发展和人们对生活品质的要求不断提高,温控设备在生活中变得越来越重要。
基于STM32的温控风扇设计正是满足了这一需求。
本文将深入探讨基于STM32的温控风扇毕业设计的相关内容,以期为读者提供对该领域的深入理解和探索。
二、毕业设计背景及意义作为一种热控设备,温控风扇在夏季生活中发挥着重要作用。
然而,传统的温控风扇通常只能根据室内温度来控制,而不能满足人们对风速和风量的个性化需求。
设计一种基于STM32的温控风扇成为了必要。
三、研究现状分析目前市面上的温控风扇产品大多功能简单,无法智能化地对环境温度和人体需求进行精确控制。
并且,对于市面上已有的基于STM32的温控风扇产品,也存在性能不稳定、温度控制精度不够等问题。
设计一种性能稳定、精度高的基于STM32的温控风扇具有重要意义。
四、毕业设计的主要内容和目标我的毕业设计将采用STM32作为主控芯片,结合温度传感器和风扇驱动模块,实现对温控风扇的智能控制。
主要功能包括实时监测环境温度、智能调节风速和风量、并可通过APP进行远程控制等。
而在技术路线上,我将采用PID控制算法等先进技术,来解决温控风扇在温度控制精度、性能稳定性等方面的难题。
五、参考文献在毕业设计的过程中,我参考了大量相关的技术资料和文献,对市面上已有的基于STM32的温控风扇产品进行了深入的调研和分析。
基于单片机stm32f103c8t6的简单风扇控制系统设计代码一、概述本文将介绍基于单片机STM32F103C8T6的简单风扇控制系统的设计代码。
该系统通过控制电机的转速来实现风扇的调节,可以根据温度传感器采集到的温度数据来自动调节风扇转速。
二、硬件设计1. 硬件组成本系统硬件组成如下:(1)STM32F103C8T6开发板(2)温度传感器DS18B20(3)LCD1602液晶显示屏(4)电位器(5)直流电机及驱动模块L298N2. 接线图下图为本系统的接线图:三、软件设计1. 程序框图本系统程序框图如下:2. 代码实现以下为本系统代码实现,包括初始化函数、温度读取函数、PWM输出函数以及主函数等。
(1)初始化函数:void SystemInit(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;GPIO_Init(GPIOA, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = 999;TIM_TimeBaseStructure.TIM_Prescaler = 71;TIM_TimeBaseStructure.TIM_ClockDivision = 0;TIM_TimeBaseStructure.TIM_CounterMode =TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = 0;TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure);TIM_OC2Init(TIM3, &TIM_OCInitStructure);TIM_OC3Init(TIM3, &TIM_OCInitStructure);}(2)温度读取函数:float ReadTemperature(void){uint8_t temp_byte1, temp_byte2;int16_t raw_temperature;float temperature;OneWire_Reset();OneWire_WriteByte(0xcc);OneWire_WriteByte(0x44);delay_us(750000);OneWire_Reset();OneWire_WriteByte(0xcc);OneWire_WriteByte(0xbe);temp_byte1 = OneWire_ReadByte();temp_byte2 = OneWire_ReadByte();raw_temperature = (temp_byte2 << 8) | temp_byte1;temperature=(float)raw_temperature/16.0;return temperature;}(3)PWM输出函数:void PWMOutput(uint16_t CCR1_Val, uint16_t CCR2_Val, uint16_t CCR3_Val){TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_SetCompare1(TIM3, CCR1_Val);TIM_SetCompare2(TIM3, CCR2_Val);TIM_SetCompare3(TIM3, CCR3_Val);TIM_Cmd(TIM3, ENABLE);}(4)主函数:int main(void){SystemInit();LCD_Init();float temperature;uint16_t duty_cycle;while (1){temperature = ReadTemperature();duty_cycle = (temperature - 25) * 10;if(duty_cycle > 999) duty_cycle = 999;PWMOutput(duty_cycle, duty_cycle, duty_cycle);LCD_Clear();LCD_Write_String("Temperature: ");LCD_Write_Float(temperature);delay_ms(500);}}四、总结本文介绍了基于单片机STM32F103C8T6的简单风扇控制系统的设计代码。
基于STM32的智能风扇摘要随着高新技术的高速蓬勃发展,许多智能产品应运而生。
大家都在积极地改进传统家电,希望给它们加入智能元素,注入新的能量。
智能风扇,一种除了具备传统风扇的基本功能外,还具有远程调控、智能显示温度档位等功能的新式智能家电。
本设计以STM32单片机为基础,另外使用LCD1602液晶显示屏、温度传感器以及人体红外感应模块作为智能模块。
通过软件编程,设计出了一款能够根据外界温度调节风速档位和自动启停的智能风扇。
LCD1602液晶显示屏能够显示出设置好的温度、温度传感器检测到的温度、还有当前风扇是否工作以及档位,方便我们直观地了解风扇状态。
温度传感器能够把周围的温度检测到之后,把数据直接传送到单片机中进行处理。
人体红外感应模块可以检测到风扇前是否有人在活动,进而控制风扇是否工作。
我们使用的Keil5进行软件编程,下载到STM32单片机中来进行软件控制。
关键词:STM32单片机;电风扇;智能控制;人性化设计1 前言调档控制麻烦、电机噪声大、摇头方式比较单一的传统风扇不太适合现代人的生活需求。
针对这些传统风扇的缺点,本文以STM32F103C8T6单片机作为管控单元自制了一款经济性好、功耗比较低的智能电风扇。
该风扇结合了DS18B20温度采集模块、LCD1602液晶显示器、人体红外监测模块,运用了智能化的控制技术。
可以进行根据环境温度的采样转变风扇的风速的修改,而且可以把温度和风速档位的情况显示到液晶显示屏上。
1.1本设计的目的、意义及应达到的技术要求春夏(或者夏秋)交替时期,周围温度还比较高,我们这时候一般会使用传统的电风扇进行降温,这时候传统电风扇的弊端就显现出来了。
第一方面:我们想要打开电风扇需要手动开启,对于现代人来说这太麻烦了,需要一种远程控制开关的功能。
第二方面:传统风扇一般使用较大功率、转速高的风扇,然而风扇的功率与其噪音成正比,功率越大,噪音越大,导致平时我们开启风扇造成噪音比较大,不适合入睡。
第三方面:到了晚上,我们开风扇睡觉的时候,一般会选择较小档位,以免入眠后,周围温度下降导致感冒,而且会加一个定时让电风扇定时关闭,可是有时候电风扇关闭之后,人会感觉炎热,热醒后还得亲自重新打开电风扇,重新调整定时,实在不人性化。
对此,我想到了现在市场上流行的智能家居,里面的智能模块应用到电风扇上,可以解决以上这些问题。
使用温控模块实现自动控制风扇的开关,档位,用微控制器实时控制,用液晶显示器来显示温度以及档位,并且用户们可以设定相应的温度,使得单片机在该值进行启停或者调档的操作,十分准确。
预计风扇应具备功能有:①传统风扇的档位功能。
②环境温度检测功能。
③人体红外检测功能。
④液晶显示温度功能。
⑤自动模式和手动模式的切换。
1.2本设计在国内外的发展概况及存在的问题平时夏天炎热,为了电费和环保,人们比较趋向于使用电扇降温。
电扇还是很普遍的,电扇类型有很多,吊扇、电风扇还有新的USB插口的风扇和智能风扇在生活中都能很容易找到。
虽然空调作为另一种降温工具走进了我们的生活,但是电扇的地位还是无可替代的。
它的价格低廉,安装使用方便,功耗相对较低,是节能环保的降温首选。
商家在选用智能控制芯片时候,大多选用单片机,单片机不仅能够实现很多高智能化的控制,还不容易被干扰,而且它售价较低适合商家成本计算,广受大家欢迎喜爱。
其实市面上已经有不少的智能风扇问世,种类多种多样,传统的风扇可以手动调档还有定时关,但是就这些功能而言,对于我们现代人来说还是不够人性化、智能化。
在这个市场需求不断提高、风扇在中国市场上仍然占据一定比例的份额的情况下,智能风扇的市场,未来可期。
而为了抢占这个市场,制作的风扇必须得在技术含量上有一定的提升,通过提高风扇的人性化、智能化,符合现代人的使用需求。
同时为了检验自己大学三年的研习情况,我决定结合所学的相关软硬件知识来制作出一个以STM32芯片作为控制单元的电风扇。
该风扇应在兼具之前普通的风扇的功能的基础上,能够实现随着周围环境温度的升降调整风速档位,检测到无人时可以自动关闭,还能时刻显示出当前的档位和温度作为参考,给使用人一个自我设定的可能,达到刚才所说的个性化,智能化。
2方案论证2.1温度传感器的选择我们寻找了三种能够作为温度传感器的元件:方案一:我们尝试使用热敏电阻来检测温度,当热敏电阻检测到室内温度变化时,其阻值会发生改变,会是电阻相连的电压改变,如果是温度升高,那么阻值会降低,温度降低,阻值则会升高。
我们再使用数模转换芯片ADC0809把刚才的电压模拟信号转换成为数字信号,接着输入给我们的单片机里,让单片机处理后,就能得到我们所需要的加档减档的操作。
方案二:我们尝试使用热电偶来检测温度,让其利用测温的特性检测出温度后,把信号通过我们的桥式电路传到数模转换器中,数模转换器继续把模拟信号转换成为数字信号,让单片机处理数字信号控制电扇。
方案三:我们尝试使用数字式的DS18B20来检测温度,这种传感器可以直接把检测到的温度直接转换成为数字信号,方便单片机直接控制,实现各个控制功能。
对于方案一,在网上购买热敏电阻非常简单而且成本低,利于我们作品的设计。
热敏电阻有个特性叫负温度系数,当它检测温度的时候,温度高,它的阻值就会变低;温度低了,阻值反而升高。
它虽然反应速度灵敏,但是不稳定(线性度不好导致),即使是出售电阻元件的厂商,也难以给我们一个正确的阻值曲线作为参考。
这就导致我们如果使用热敏电阻来作为测温元件,将让我们在测试阶段难度大大提高,需要多次检测阻值对应的温度,而且容易不精确。
哪怕我们使用一些纠正电路来纠正阻值带来的误差,但同时电路的增加会让我们电路复杂性相应提高,让我们设计的作品稳定性变低,不利于作品的设计。
所以该方案不采用。
对于方案二,热电偶自身的线性比较好(和热敏电阻相比较),热电偶是把两种不同的金属焊接在一起,将其尾端通过焊接接在一起,再测出不加热的部位的温度,就可以获得加热点的温度。
但是我从网上所知,这种搭配的电路也比较复杂,而且它对温度的改变也不够灵敏,达不到智能风扇所需的温度检测精度需求,故这个方案也不合适。
对于方案三,DS18B20这个传感器模块比较智能,使用起来也简单方便,这样我们就不需要外加其他放大或者纠正电路了。
比较起来,不仅设计起来简单,而且稳定性也高了不少,温度的测量误差自然而然变少了。
该模块是直接将检测到的信号转换为数字信号输出,简化了电路的设计,而且它使用的是单总线技术,用单根信号线实现时钟和数据的传输,提高了它的抗干扰能力。
2.2控制核心的选择方案一:上网查找到电压比较器LM339是可以通过电压值来控制电路的。
我们可以利用这个特点,依靠热敏电阻或者热电偶来感受温度,当电阻值达到某个值或者热电偶测温温度达到某个温度时候,我们再利用集成运放比较电路获得对应的阻值或者温度信号,最后把这个数据转成电信号,依靠这个电信号的大小来调整电扇档位。
方案二:购买STM32单片机,利用这种普遍使用的高集成控制芯片来作为控制元件。
用编写程序的方式来实现我们想要的测温、调档、显示温度等功能。
对于方案一,采用电压比较器的话相对而言实现起来难度不大,它的电路不是很繁杂,连接起来较为简便,而且它没有编写的需要,省去调试程序的麻烦。
但是能够实现的功能过于单一,而且一旦设定就无法改变,不能让使用者自己调节预设温度,无法满足用户的个性化需求,虽然易于实现,但是不采用。
对于方案二,单片机功能比较强大,可以通过编程实现很多我们想要的操作功能。
可以通过软件使检测的温度显示到显示屏上,用户也可以使用按钮对应显示屏进行操作,改变上下限,达到用户自我调整的目的,满足个性化需求。
而且利用程序来检测温度,具有较高的精准度,减少误差。
故采用方案二。
2.3控制核心的选择方案一:选用五位共阳数码管显示温度,动态扫描方式显示。
方案二:选用液晶显示屏LCD显示温度。
对于方案一,购买共阳数码管比较简单也比较便宜,上网就可以买到。
而且它亮度比较高,显示温度的时候人眼比较容易看清,而且功耗低,由于我们设计供电是5V,这就很契合我们的需求,况且想要编写数码管的代码也不难。
这种显示方式也由经受了时间的检验,得到了绝大多数人的喜爱。
我们开始学习单片机的时候也是使用共阳数码管来实现数字显示的,具有广泛适用性。
缺点是:动态扫描是使五个数码管一一点亮,因此会有闪烁,人眼视觉暂留是20ms,当扫描周期小于这一时间,我们人眼将察觉不出闪烁,如果要使用数码管动态扫描,可以增加扫描频率的方法减轻数码管对人眼产生的闪烁感。
对于方案二,液晶显示屏可以显示出数字甚至是图案,美感相对数码管显示好得多,而且硬件连接简单。
2.4调速方式的选择方案一:改变风扇的转速的功能,我们尝试使用DAC0832转换芯片来控制。
思路是使用传感器先去测温,让温度数值传到单片机中,单片机就会把数字信号输出出来,模数转化芯片能够把单片机传过来的数字信号变成模拟信号。
利用这个模拟信号控制我们预先放置在电路中的晶闸管,通过晶闸管的导通角和无级调速电路来改变风扇的转速。
方案二:PWM(脉冲宽度调制)波调速。
我们单片机会把数字信号传出来,这时候PWM波就可以把数字信号利用起来,通过这信号来控制模拟电路。
PWM具有从CPU到被控系统或者元件的信号都是以数字形式来输出的优点,这样一来就不需要进行AD数模转换了。
其他元件控制电路的时候可能需要经过数模转化,可是PWM就不需要,它全程都是依靠数字来通信,这样可以降低电路的杂音问题。
PWM波就是一种矩形波,它只有两种状态,要么拔高的时候显示高电平,要么拉低显示低电平。
比如我们这个电扇用的是5V电源供电,用PWM波控制MOS管的导通时间进而控制电机转速,当PWM波高电平的时候,则MOS管导通,那么电机达到最高转速,如果低电平的时候,那么MOS管截止,电机就会停止转动,我们可以依靠定时器控制PWM波高电平的时长,来细微调整档位的高低。
有如下两种提案:①利用软件延时,当高电平“1”的延时时间到,对I/O口的电平进行取反,使高电平转变为低电平,然后再延时一个间隔;当低电平延时时间到时,再对该I/O口电平取反,如此反复进行,最后获得PWM波。
在本设计中应用了此解决方案。
②利用定时器。
控制方法与(1)相同,但是这里不同的是我们想要使用微控制器中自带的定时器来控制高电平与低电平的转变。
应用此方案时编程相对复杂。
我们来看方案一,该方案能够让智能风扇利用AD数模转换实现无级调速。
反应速度比较灵敏,但是其温控状态下无级调速的性能不高,所以不采用。
对于方案二,使用程序直接实现PWM波调速相较于其他软硬件结合更简单,成本更低,能够充分发挥单片机的控制性能,综上所述,决定使用PWM调速。
3硬控设计3.1智能风扇的总体设计本次设计选择STM32系列的F103C8T6型号微控制器作为主控芯片,通过DS18B20来采集温度信号,由LCD1602液晶显示温度和当前档位还有当前模式。