基于STM32F103C8T6的智能风扇控制系统设计
创作时间:
作者:
@小白创作中心
基于STM32F103C8T6的智能风扇控制系统设计
引用
CSDN
1.
https://blog.csdn.net/boybs/article/details/130039341
前言
这里是单片机毕业设计系列的第五篇,介绍基于STM32F103C8T6的智能风扇控制系统。这个项目集成了多种传感器和模块,实现了智能风扇的多种控制功能。
一、功能介绍
- 按键模式:通过按键可以手动调节风扇的档位,共设置4档。
- 自动模式:根据环境温度自动调节风扇的转速和档位。
- 定时模式:用户可以设定定时时间,到达设定时间后风扇自动停止。在定时期间,可以通过按键调整时间。
- 红外检测:通过红外传感器检测是否有人将手伸向风扇,检测到后风扇立即停止。
- 蓝牙控制:支持通过蓝牙改变风扇模式、档位和定时时间。
- 语音控制:支持通过语音指令改变风扇模式、档位和定时时间。
二、硬件介绍
硬件清单如下:
- 主控芯片: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的智能风扇控制系统的设计方案,包括功能实现、硬件配置和软件代码。这个项目展示了单片机在智能家居领域的应用,具有较高的参考价值。
热门推荐
美国公司命名指南:策略与法规解析
山水画中的自然观:中国古代哲学与艺术的完美融合
小孩爱积食怎么调理脾胃
智能教室:物联网设备如何创建互联的学习环境
物流行业巨变:从传统运输向智能化升级
《女神异闻录:夜幕魅影》制作人老V:要原汁原味适应移动端,要有中国色彩
夏季晚间锻炼,要注意这几点→
域名注册方法步骤和注意事项
猕猴桃适合北方种植吗
增发USDT对USDT的影响究竟有哪些?
团队领导如何做目标
一张承兑汇票如何撬动供应链信用、反哺企业
游泳技巧与安全指南
手术室感染控制:从洗手到一次性用品的全面指南
软磁合金是什么材质?
钕磁铁有什么用途?
宋应星的身份定位与历史贡献
如何识别和评估不同类型的指数?这些指数如何反映市场表现?
餐饮店运营流程:高效盈利的四大关键
CPU 温度该如何检查? 5 种方式总整理
交通事故7分责任怎么赔偿
吨与升的关系:如何通过密度进行准确换算与应用
稀有和奇异的宝石
榴莲的功效、作用、禁忌、食用方法是什么
广州如何顺利申领失业保险?申领过程中可能遇到哪些问题?
规范的房屋租赁合同书范本:如何制定合法合规的租赁协议
如何查找期刊是否被数据库收录:多种实用方法与详细指南
如何查询EI期刊有哪些
外部利益相关者
买菜板,经过评比,这4种材质最实用,认准3点买到优质好砧板