问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于STM32F103C8T6的智能风扇控制系统设计

创作时间:
作者:
@小白创作中心

基于STM32F103C8T6的智能风扇控制系统设计

引用
CSDN
1.
https://blog.csdn.net/boybs/article/details/130039341

前言

这里是单片机毕业设计系列的第五篇,介绍基于STM32F103C8T6的智能风扇控制系统。这个项目集成了多种传感器和模块,实现了智能风扇的多种控制功能。

一、功能介绍

  1. 按键模式:通过按键可以手动调节风扇的档位,共设置4档。
  2. 自动模式:根据环境温度自动调节风扇的转速和档位。
  3. 定时模式:用户可以设定定时时间,到达设定时间后风扇自动停止。在定时期间,可以通过按键调整时间。
  4. 红外检测:通过红外传感器检测是否有人将手伸向风扇,检测到后风扇立即停止。
  5. 蓝牙控制:支持通过蓝牙改变风扇模式、档位和定时时间。
  6. 语音控制:支持通过语音指令改变风扇模式、档位和定时时间。

二、硬件介绍

硬件清单如下:

  • 主控芯片:STM32F103C8T6
  • 蓝牙模块:HC-05
  • 语音模块:SU-03T
  • 温湿度传感器:DHT11
  • 显示屏:OLED(0.96 IIC 4引脚)
  • 按键:散装独立按键
  • 红外检测:红外传感器
  • 风扇:直流电机风扇
  • 电机驱动:L298N
  • 电源:12V锂电池

此外,项目还包含一个自制的迷你版语音模块PCB,如下图所示:


三、部分源码

下面是项目主函数的部分代码:

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //设置系统中断优先级分组4

    delay_init(); //延时函数初始化
    Init_Usart(); //初始化串口
    LED_Init(); //初始化LED
    Exit_Init(); //按键初始化
    Buzzer_GPIO_Init(); //蜂鸣器初始化
    Infrared_Init(); //红外初始化
    DHT11_Init(); //温湿度初始化
    Motor_Init(); //电机初始化
    TIM3_PWM_Init(); //定时器初始化
    OLED_Init(); //初始化OLED
    OLED_Clear(0);
    Init_interface(); //初始化界面只显示一次
    printf("===============HardWare Init Finished============\r\n");
    //初始化成功提示音
    Buzzer_Voice();
    Buzzer_Voice();

    while (1)
    {
        DHT11_Read_Data(&temp, &humi);
        interface(work_mode); //界面刷新
        Fan_Speed_Mode(); //风扇转速模式
        Speed_Control_By_Tempearture(); //自动模式下风扇的控制
        clock_Action(); //定时功能
        infrared_task();
        usart_task(); //串口触发
        TIM_SetCompare2(TIM3, speed); //占空比调节
    }
}

总结

本文详细介绍了基于STM32F103C8T6的智能风扇控制系统的设计方案,包括功能实现、硬件配置和软件代码。这个项目展示了单片机在智能家居领域的应用,具有较高的参考价值。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号