浅谈基于STM32单片机的智能风扇控制系统设计
2021-07-15万方高卢俊宇卢俊诚卢泽林
万方高,卢俊宇,卢俊诚,卢泽林
(哈尔滨理工大学电气与电子工程学院,黑龙江 哈尔滨 150080)
1 系统总体设计
本文所设计的智能风扇控制系统主要由七大模块构成,分别是温湿度检测模块、人体感应模块、语音识别模块、风扇驱动模块、空气加湿模块、LCD触摸屏以及蓝牙模块。
具体实现的功能有:
(1)在LCD液晶屏上实时显示温湿度、风扇工作模式、风扇转速、加湿功能是否开启等相关信息;在蓝牙连接的情况下会将这些信息发送给手机,在手机APP上实时更新显示。
(2)可通过语音、手机和LCD触摸屏设置风扇的模式和各部件的运作。
(3)在手动模式下,风扇的转速根据用户输入的风力等级指令来变化,一共有3级风力等级可以设置。
(4)在智能模式下,用户可以自行建立风扇转速与温度的函数关系,风扇转速将依照该函数随温度的变化而变化。
(5)风扇配备人体感应模块,可实现人来风来、人走风停的功能。
2 硬件模块设计
2.1 主控芯片
本次选用的主控芯片是以Cortex-M3为内核的STM32F103ZET6单片机,该芯片不仅最高工作频率可达72MHz,而且还具有64KB SRAM、512KB FLASH、8个定时器、5个串口、1个FSMC接口以及112个通用IO口等,资源相当丰富,从性能与功耗两方面综合考虑,该控制芯片是一个极佳的选择。
2.2 温湿度测量模块
DS18B20是一款高精度的数字温度传感器,它具有体积小、适用电压宽、硬件开销低、抗干扰能力强、接口简单等优点。DHT11是一款湿温度一体化的低功耗数字传感器,该传感器包括一个电阻式测湿元件和一个NTC测温元件,与单片机进行简单连接后,就能够实时地采集本地湿度和温度。DS18B20和DHT11均具有“单总线”接口,仅需要一个I/O口便可以实现和STM32的通信,双方之间的通信协议采用单总线协议。由于DHT11的温度测量精度较低,故使用时只取其测量的湿度值,温度值通过DS18B20获得。
2.3 人体感应模块
本次设计采用HC-SR505人体感应模块检测人体,HCSR505是基于红外线技术的自动控制产品,它具有灵敏度高、可靠性强、体积小,工作电压低的优点。设计时,将HCSR05配置成可重复触发方式:感应到人体输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平。
2.4 蓝牙模块
本次设计采用HC-05蓝牙模块与手机端进行交互,HC-05蓝牙模块可连接到微控制器的串行端口,并允许微控制器通过蓝牙连接其他设备通信,其成本低、传输数据稳定、使用简单便捷,在使用时,需将其RX和TX端与STM32的RX和TX端交替连接,配置并统一好通信格式后便可以很轻松地与手机进行交互,使用者可通过手机控制风扇的运作。
2.5 语音识别模块
LD3320是基于非特定人体语音识别技术的语音识别芯片,LD3320芯片上集成了高精度的A/D和D/A接口,不再需要外接辅助的Flash和RAM,即可以实现语音识别以及人机对话功能,并且识别的关键词语列表是可以动态编辑的。该模块支持SPI与串口两种通信接口,本次设计中采用SPI接口与STM32进行通信。
3 软件设计
3.1 主程序设计
系统的主程序设计流程如图1所示,在主程序中先初始化系统和各个模块;然后,在主循环中进行温度检测;语音、蓝牙、LCD触摸屏的输入检测与处理,用户可以通过语音、蓝牙和LCD触摸屏来设置风扇的运行模式以及是否加湿空气等其他功能;接下来,LCD屏更新温湿度、风扇工作模式等相关信息;随后,判断当前系统的工作模式,如果是在智能模式下,则计算出风扇的转速,其中,v是风扇的转速,T是环境温度,k和b是风力调节参数,用户可以通过语音、手机APP等方式,结合自身喜好修改该参数;如果是在手动模式下,系统则根据用户输入的风力等级指令输出标定好的风扇转速;最后,系统会采用PID算法控制输出PWM波的占空比,以使风扇达到期望的转速。人体感应信号作为外部中断的触发信号,外部中断选择双边沿触发方式,进入中断后再读取感应信号的电平,判断是人靠近还是人离开,实现人来风来、人走风停的功能。
图1 主程序设计框图
3.2 PWM电机控制程序设计
STM32F103ZET6一共有8个定时器,其中6个定时器有4路输出比较通道,即可以同时输出4路PWM波,本次设计采用TIM3的CH1输出PWM波控制风扇电机的工作,其主要步骤如下:开启TIM3时钟,配置对应引脚为复用输出;初始化TIM3,设置TIM3的ARR和PSC;设置TIM3_CH1的PWM模式,使能TIM3的CH1输出;使能TIM3,修改TIM3_CCR1来控制占空比。TIM_CCR1的装载值是通过PID算法计算得出的,风扇电机带有检测其转速的编码器,将TIM4配置为编码器模式,读取单位时间内风扇编码器上的脉冲数,以此计算出风扇的实际转速,整定好PID各参数后,根据理想转速与实际转速采用位置式PID计算出TIM_CCR1的装载值,以此输出需要的PWM波,使风扇快速达到稳定、精准的转速。
4 结语
本次设计以STM32F103ZET6为核心控制芯片,是对传统风扇的智能化升级与改造。本系统的两种运行模式,使风扇能自如应对生活中多样化的需求,在智能控制下,能根据环境温度自动调节相应功能,而在人工模式下,则能通过液晶屏、手机APP、语音等多种手段,来自定义用户最舒适的环境体验。系统总体较为节能、高效,应用场景广泛,有着良好的市场前景。