1. 引言
智能家居的发展日益迅速,智能风扇作为其中的一种应用产品,受到了广泛关注。在当前的市场上,风扇并未随着空调的应用而淡出市场,因为其便携,价格低廉,风力温和,安全可靠,节能环保的特点,一直在市场中占据着一席之地。风扇在供风时,增加空气的流通性,并且有利于室内空气的交换。但传统的风扇工作方式较为死板,本文将在传统风扇的基础上,进一部创新,使其智能化,设计了一种智能风扇 [1] [2] 。
随着科技的不断进步和生活水平的提高,智能家居系统逐渐成为现代家庭的主要趋势之一。智能风扇作为智能家居系统的重要组成部分之一,不仅提供了舒适的室内环境,还能通过智能化的控制功能实现更高效、便捷的使用体验。随着单片机技术的不断发展,其体积小、重量轻、集成度高、抗干扰能力强、性价比高,尤其适合应用于小型的自动控制系统中 [3] 。因此将风扇和单片机技术相结合研究有重要意义。
就目前而言,有很多自动温控风扇能通过温度高低来控制其启动或停止的实现。虽然这解决了夏夜温度下降后人们因熟睡而受凉的问题,但是当温度升高时,它不能根据温度的变化改变转速,因此往往使人感到不便 [3] 。近年来,基于单片机的智能风扇设计研究主要集中在改善风扇的能效、噪音控制、风速调节以及远程控制等方面。以实现更加智能的能量管理和风速调节,从而达到更好的能源利用效果。本文将在此基础上,设计一种基于STC89C52单片机的智能风扇,实现摇头、转速自动调节、温度、档位显示、多档位调节和远程控制等功能,同时做出优化,希望在未来能够广泛应用在生活中。
2. 硬件设计
2.1. 系统整体设计
本设计整体设计由温度传感器模块、HC-05蓝牙模块、手动按键模块、驱动电机模块、显示模块和舵机摇头模块组成,能够实时检测环境温度,并给予反馈。STC89C52单片机作为主控芯片,该8位单片机具有强大的性能和广泛的应用范围,非常适合小规模嵌入式系统,它具有功耗低,外围设备接口丰富,具备较大的闪存和RAM容量,易于开发编程等优点。
为了实现智能风扇的控制逻辑,我们将根据温度数据设计合适的控制策略。当温度过高时,系统会自动打开风扇并调整风速,以及在合适范围内保持风扇关闭、低速或高速运行。同时,我们还将在用户界面上设置按键,以便用户可以手动控制风扇的开关和风速。除此之外,在本设计中还可以通过蓝牙,用户可以在手机上远程遥控风扇。各部分模块如图1所示。
`
图1. 智能风扇整体设计框图
2.2. 温度传感器型号及原理
温度传感器采用DS18B20数字温度传感器。DS18B20是一种数字温度传感器,它具有精度高、抗干扰能力强等特点,可以通过一根三线式接口与单片机连接。其具有3引脚小体积封装形式,温度测量范围为−55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.062 50℃,被测温度用符号扩展的16位数字量方式串行输出。工作电压支持3 V~5.5 V的电压范围 [1] 。
DS18B20采用单线接口方式,即与单片机仅需一根连线就可以完成双向通信,其内部具有一只三极管集成电路,同时还集成了转换电路,所以在使用的过程中不需要连接任何外界设备就可完成温度的测量,并直接传送给单片机。本设计采用5 V电源为DS18B20供电,其中DQ引脚连接到单片机的GPIO引脚P1.0,并通过一个10 kΩ的上拉电阻连接到VCC引脚,上拉电阻的作用是将DATA引脚维持在高电平状态,当传感器输出数据时,会拉低DQ引脚,单片机才能正确读取数据。DS18B20温度传感器的电路图如图2所示。
2.3. 电机驱动设计
本设计采用PWM信号加上电机驱动方式对风扇进行驱动,选择一个舵机用于实现风扇的摇头功能。舵机的转动角度将决定风扇头部的摆动角度。
电机驱动器模块:使用H桥电机驱动器模块来控制风扇电机的转速和方向。选用L298N作为风扇的电机驱动模块。该芯片输出电流大、功率强、电路简单、使用方便,可驱动1个四相电机,也可驱动2个二相电机。通过单片机发送PWM到IN1、IN2或IN3、IN4控制风扇运行状态 [4] 。L298N实物图如图3所示。在本设计中,因为风扇顺时针旋转或者逆时针旋转不会有影响,所以可任意选择。
因为L298N可驱动两个电机,智能风扇只用到一个电机,故只用到左边马达,L298N的原理图如图4所示。
风扇电机控制原理:
使用H桥电机驱动器控制风扇电机的转速和方向,它由4个三极管组成类似于字母H的电路,电机则在H的中央,接A、B两端如图5所示。通过单片机控制电机驱动器的输入,改变H桥的开关状态,从而控制电机的正反转和转速,例如,Q1、Q4导通时电机顺时针转动;Q3、Q2导通时,电机逆时针转动;Q1、Q3或Q2、Q4导通时,电机不转,所以电机转动的必要条件是H桥上必须是对角的三极管导通,电机才能工作 [5] [6] [7] 。通过调整PWM信号的占空比改变电机的转速。
摇头电机控制原理:
对于舵机,单片机输出一个PWM信号,舵机通过接收PWM信号控制舵机的转动角度。舵机通常有一个控制脉冲信号,通过改变PWM信号的占空比,可以控制舵机的转动角度,从而实现风扇的摇头功能。
2.4. 显示模块设计
显示模块采用液晶显示屏(LCD1602),LCD1602由16列和2行共32个字符组成,在一个显示单元中有横5个像素点,竖8个像素点,用于显示简单的文本信息和图形符号,可以显示更多信息,并提供更丰富的用户交互界面。它由液晶面板和驱动芯片组成,液晶面板是一个由液晶分子构成的薄膜,通过控制液晶分子的排列来显示图像。驱动芯片用于将图像数据转换成液晶面板所需的控制信号。
LCD1602显示屏具有较大的显示区域,可以同时显示更多的信息,如环境温度、风速模式、摇头状态。显示模块通过并行接口与单片机连接,将LCD1602显示屏连接到单片机的GPIO引脚,使用单片机的IO口和控制信号进行数据传输和显示控制。通过编程控制输出信号的状态和变化,可以在LCD1602上实时更新显示内容,向用户展示当前的环境信息和风扇状态,其实物如图6所示。
2.5. 按键模块设计
在该系统设计中,包括5个按键从S0到S4,S0为系统的电源键,当按下电源键时,系统开始工作。当按键S3键时,进行功能选择,分为智能温控和手动调档两种功能,当切换为手动调档键时,可自行加减档,当按下S2时,档位上升,按下S1键时,档位下降,以此来控制风扇的转速;当切换到智能风控功能时,再次电机S4键,进行设置阈值温度,S2为升高温度,S1为降低温度,当长时间按住,可以连续升降温度。最多可设置4个阈值,例如24℃、26℃、28℃、30℃,当超过30℃为最高风速,以此类推。阈值温度可以根据用户需求手动设定,实现其智能化。最后一个键位S4键则是系统复位键。S1、S2、S3功能按键,分别与单片机的P2.1、P2.2、P2.3引脚相连,输出控制信号。部分功能按键原理图如图7所示。

Figure 7. Function button module schematic
图7. 功能按键模块原理图
2.6. 通信模块设计
在本设计中,我们将采用HC-05蓝牙模块作为通信模块。HC-05是一个常见且易于使用的蓝牙串口传输模块,适用于与单片机进行串口通信如图5所示。HC-05的嵌入式串口通信模式有两种,一种是自动连接工作模式,另一种是命令响应工作模式。当使用自动连接工作模式时,模块又分为主、从、回环三种工作方式。用户可以向模块发送各种AT的命令,微模块设定控制参数或者发布控制命令 [8] 。用户可以通过蓝牙连接到风扇系统,实现用户手机与STC89C52单片机之间的通信,当HC-05蓝牙模块接收到用户的指令时,通过HC-05的TXD发送端,发送给单片机的接收端RXD,由单片机处理信息后,再通过单片机的TXD发送端,发送数据给HC-05的RXD接收端,反馈到用户手机上。STC89C52单片机与HC-05蓝牙模块之间的原理图如图8所示 [9] 。

Figure 8. Communication between STC89C52 microcontroller and HC-05
图8. STC89C52单片机与HC-05之间的通信
串口通信模块的TXD引脚连接到STC89C52单片机的P3.1 (RXD)引脚,RXD引脚连接到STC89C52单片机的P3.0 (TXD)引脚。完成硬件连接后,进行编程,完成风扇的通信模块,为智能风扇进行了进一步的优化和升级。
3. 软件设计
智能风扇设计控制模块软件设计方面主要包括传感器数据采集,风扇驱动控制算法以及通信模块的设计,其中通信模块利用蓝牙和手机相连,传感器实现数据的采集,风扇控制算法实现对风扇的摇头控制和转速控制。
3.1. 编程环境
Keil4是一款专业的嵌入式开发工具,由Keil Software (现为ARM公司的一部分)开发。Keil4作为STC89C52单片机编程的开发环境,具有许多优点。它是一款综合性的专业嵌入式开发工具,集成了编译器、汇编器、链接器、调试器等工具,为开发者提供了全面的解决方案。Keil4支持广泛的芯片架构,适用于不同类型的嵌入式系统开发,并且具有简洁直观的用户界面,使得初学者也能轻松上手。强大的调试功能允许开发者通过仿真器或硬件调试器进行硬件级调试,快速定位问题并进行调试。此外,Keil4的编译器针对不同的目标芯片进行了优化,生成高效的机器代码,提高程序的执行效率。丰富的软件库支持以及广泛的用户社区为开发者提供了大量的学习资源和技术支持。综合而言,Keil4为基于STC89C52单片机的编程提供了方便快捷、功能强大的开发环境,是实现智能风扇设计的优秀选择。
3.2. 数据采集与处理
在本设计中,DS18B20温度传感器是用来获取环境温度的关键部件。它是一种数字温度传感器,它通过单总线协议与单片机进行通信,并以数字信号的形式输出温度值。单总线协议允许多个DS18B20传感器连接到同一条总线上,通过唯一的64位ROM地址来区分不同传感器,根据DS18B20的通信协议,传感器在工作时必须利用其提供的ROM指令和存储器RAM指令进行操作,每次转换一般都经过复位操作、发送ROM指令、发送RAM指令三步,然后再读取温度 [10] 。此部分是自动模式的核心,在使用DS18B20之前,需要对其进行初始化,然后DS18B20采集温度信息,进行数据处理后传送给单片机,然后单片机与起初设置的阈值做比较,最后做出相应的控制,并将处理后的数据显示在LCD屏幕上,流程图如图9所示。

Figure 9. DS18B20 temperature sensor information acquisition and processing flowchart
图9. DS18B20温度传感器信息采集与处理流程图
3.3. 驱动控制设计
舵机通过接收PWM (脉冲宽度调制)信号来控制转动角度。PWM信号的脉冲宽度决定了舵机的转动角度。通过计算得到的角度值生成对应的PWM信号,控制舵机转动到目标角度,从而实现风向调节功能。
L298N驱动风扇转动的软件设计主要包括控制信号的生成和转向控制。通过控制ENA PWM信号,即左侧电机,调整风扇的转速。使能ENA为1后,对IN1和IN2接高地电平,控制风扇的正反转。进行调速时IN1接PWM控制输出,IN2接GND。
在编写程序时,PWM的占空比利用延时来进行控制,部分代码如下所示:
while(1)
{
cycle=0;
IN1=1; //正转
IN2=0;
for(k=0;k<200;k++)
{
delay_ms(10);//PWM占空比为50%,修改延时调整PWM脉冲
ENA=~ENA;
}
3.4. 程序设计
基于STC89C52单片机智能风扇的设计,需要进行软件设计控制风扇控制,首先对单片机各模块进行初始化,包括各个引脚的配置以及对外设进行初始化,接下来逐个模块依次打开,传感器开始工作。
通过温度传感器DS18B20采集到的温度信息转化为数字信号后传送给单片机,单片机接收到数据后,判断温度是否达到了起初设定的阈值,如果大于预先设定的阈值,风扇开启,转速自动提速,预先设定4个阈值,分为几个挡位,如果大于第一个阈值则跳到第二个档位,转速有所提升,如果大于第二个阈值,则提高到第三个档位,转速再次提高,以此类推。实现智能风扇的自动调档,自动控制转速。除此之外,还具有通信功能,可以通过手机蓝牙远程遥控风扇,同时本设计还具备传统风扇手动调档功能。该智能风扇的自动控制系统的程序流程图如图10所示。
4. 结果与分析
在系统设计完成后,我们整体进行了系统测试和分析并记录下来测试的数据,当按下S4键位选择到手动模式时,通过按键控制,用户可以手动打开或关闭风扇,并通不过不同档位来调整风速,这和传统风扇一样,为用户提供了更大的灵活性和便利性。接下来,我们模拟了炎热天气,在风扇传感器附近放了一盆热水,并通过LCD显示严格把控温度,以此来验证风扇是否能够通过温度来自行调节风扇转动速度,风扇预先设定阈值分别为24℃、26℃、28℃、30℃。测试结果表明,温度从22℃开始上升,当分别通过24℃、26℃、28℃时,风速依次提高,当通过30℃时,风速提高明显。通过事先设定的摇头角度,风扇能够完成相应的摇头控制,具体记录的数据如表1所示。同时LCD显示屏能够直观地显示当前环境参数和风扇状态,使用户能够轻松了解系统运行情况。

Table 1. Intelligent fan system test results
表1. 智能风扇系统测试结果
通过测试结果的分析和总结,我们可以得出以下结论:
智能风扇系统能够实现预期的目标,可以通过DS18B20温度传感器采集环境的温度信息,传送给单片机,进而单片机做出相应的控制,实现了自动模式。通过功能选择键,调到手动模式,通过按键控制PWM占空比的输出,来控制电机的转速,实现了手动调档功能,并且控制效果好,反应迅速,功耗低。显示模块能够实时更新,为用户提供更直观的数据,方便用户实时了解风扇的工作状态。为了进一步提升系统的功能和性能,我们可以考虑添加其他传感器,例如空气质量传感器或CO2传感器,清新房间空气,以扩展系统的智能化功能。将此技术转移到其他领域,也会有更好的发展。总而言之,智能风扇的设计满足智能化和人性化的需求,具有一定的实际应用价值与可观的市场前景。
5. 结语
本文设计了一种基于STC89C52单片机的智能风扇,根据实时温度数据自动调整转速,使得风扇在高温环境下提供更强劲的风力,而在低温环境下降低转速以节能降耗,用户可以根据实际情况选择适合的风速档位,共有5个档位来选择。同时为了提供更加便捷的使用方式,增设了远程遥控功能。显示模块能够直观地显示当前风扇的温度和转速状态,方便用户实时了解风扇的工作状态。该设计成本低,实际应用价值大,具有广泛的应用前景。
在未来,智能风扇可以和其他智能家居实现联动,实现更智能化的环境管理。通过不断探索,未来的智能风扇可以在实现空气质量的更新以及进一步的节能减耗方向上做出更大的贡献。
参考文献