基于STM开发板的多功能智能风扇(免费下载 源码、所需开发软件、和所需器件清单)

目录

 

摘要

智能风扇的设计与实现

一、系统设计要求及总体设计方案

1.1 系统设计要求

1.2 总体设计方案

二、系统硬件电路设计

2.1 4x4矩阵键盘

2.2 红外发送和接收模块

2.3 OLED显示器

2.4 PWM调节电子开关控制板

2.5 串口的显示与控制

2.6 温度传感器

三、系统软件设计

3.1 开发环境

MDK-ARM (Keil uVision):

串口助手:

MCUISP烧写软件:

3.2 编程语言

C语言:

3.3 软件模块

主控程序:

按键控制模块:

红外模块:

OLED显示模块:

PWM控制模块:

串口通信模块:

温度采集模块:

3.4 软件开发流程

系统初始化:

主循环:

自动模式:

手动模式:

系统状态显示:

远程控制:

四、系统测试

4.1 手动工作模式测试

4.2 自动工作模式测试

五、体会与总结

附录


摘要

        本设计介绍了一款智能风扇系统,采用STM32F0XC8T6处理器为核心。系统包括OLED显示器、红外遥控模块、功率驱动模块、USART和PWM等功能模块。通过红外遥控模块实现对风扇的远程控制,用户可以通过红外遥控器发送指令,如加速、减速、停止等。系统通过USART进行通信,接收红外遥控信号并显示在OLED显示器上,提供用户友好的交互界面。

        为实现风扇的速度控制,系统采用PWM技术驱动功率模块,可以调整风扇的转速。整个系统在设计中充分考虑了用户体验,通过OLED显示器清晰地展示风扇状态和当前速度。STM32的强大处理能力和丰富的外设资源使得系统功能得以完善实现。

       该智能风扇系统不仅提供了便捷的遥控功能,还通过OLED显示器向用户展示详细信息,提高了用户对风扇状态的感知。项目中使用的关键技术关键字有智能风扇、STM32、红外遥控、功率驱动模块、USART和PWM。整体而言,该系统兼具智能控制和用户友好性,为风扇的使用提供了更为便捷和智能的方式。

项目部分效果展示

总菜单

1.键盘控制菜单

2.串口控制菜单

3.红外线控制

4.温度控制菜单

多功能智能风扇视频演示

1.键盘控制功能

基于STM32的多功能智能风扇键盘控制功能

2.串口控制功能

基于STM32的多功能智能风扇串口控制功能

3.红外线控制功能

基于STM32的多功能智能风扇红外线控制功能

4.温度控制功能

基于STM32的多功能智能风扇温度控制功能

智能风扇的设计与实现

一、系统设计要求及总体设计方案

1.1 系统设计要求

该智能风扇系统需具备以下功能:

  1. 实现自动模式和手动模式的切换,切换按键可自定义。
  2. 在自动模式下,根据环境温度自动控制风扇的打开、关闭和转速。
  3. 手动模式下,通过键盘按键、遥控器、计算机串口助手实现风扇的开关和转速控制。
1.2 总体设计方案

为实现上述要求,设计以下总体方案:

  1. 工作模式切换: 设计按键,通过单击实现自动模式和手动模式的切换。

  2. 自动模式控制: 使用温度传感器监测环境温度,当温度高于设定值时,通过PWM控制风扇转速。转速可根据温度高低调节。

  3. 手动模式控制: 利用键盘按键、遥控器和计算机串口助手,设计相应的接口和控制逻辑,实现风扇的开关和转速控制。                              

     通过以上设计方案,实现了智能风扇在不同工作模式下的灵活控制,既满足用户手动控制的需求,又能够根据环境温度智能地自动调整风扇的运行状态。

二、系统硬件电路设计

2.1 4x4矩阵键盘

  • 连接4x4矩阵键盘,通过行列扫描方式读取按键状态。
  • 使用GPIO口进行按键输入的检测。
2.2 红外发送和接收模块

  • 连接红外接收模块,用于接收红外遥控信号。
  • 连接红外发送模块,用于发送红外信号,实现遥控器功能。
2.3 OLED显示器

  • 连接OLED显示器,使用I2C或SPI协议进行通信。
  • 实现显示相关信息,如系统状态、温度、风扇状态等。
2.4 PWM调节电子开关控制板

  • 使用PWM信号控制电子开关,实现风扇转速调节。
  • 连接电子开关和风扇,确保调节风扇转速的稳定性。
2.5 串口的显示与控制

  • 使用串口连接计算机或其他设备,实现远程控制和监测。
  • 设计相应的串口通信协议,用于与外部设备的数据交互。
2.6 温度传感器

  • 连接温度传感器,DS18B20,通过单总线协议读取温度值。
  • 使用模拟输入或数字输入,将温度值传递给STM32进行处理。

以上是每个硬件模块的概要设计说明。

三、系统软件设计

3.1 开发环境
  1. MDK-ARM (Keil uVision):

    • 用于嵌入式系统的软件开发,支持STM32系列微控制器。
    • 提供强大的调试和编译工具。
  2. 串口助手:

    • XCOM。
    • 用于调试串口通信,监控系统输出信息。
  3. MCUISP烧写软件:

    • 用于将编译好的固件烧写到STM32微控制器。
3.2 编程语言
  • C语言:
    • 主要用于STM32的嵌入式软件开发。
3.3 软件模块
  1. 主控程序:

    • 包括系统初始化、中断处理、主循环等。
    • 负责协调各个功能模块的工作。
  2. 按键控制模块:
    • 通过轮询或中断方式检测按键输入。
    • 切换系统工作模式,调整风扇状态和转速。
  3. 红外模块:
    • 处理红外接收信号,解析遥控指令。
    • 控制风扇状态和转速。
  4. OLED显示模块:
    • 刷新OLED显示器,显示系统状态、温度和风扇信息。
  5. PWM控制模块:
    • 生成PWM信号,控制电子开关,调节风扇转速。
  6. 串口通信模块:
    • 处理计算机串口助手发送的指令,实现远程控制。
  7. 温度采集模块:
    • 读取温度传感器的数值,用于控制风扇的自动模式。
3.4 软件开发流程
  1. 系统初始化:
    • 初始化硬件模块,包括按键、红外、OLED、PWM等。
  2. 主循环:
    • 不断轮询按键状态,响应用户操作。
    • 处理红外接收信号,解析遥控指令。
  3. 自动模式:
    • 根据温度传感器采集的数值,自动控制风扇的状态和转速。
  4. 手动模式:
    • 通过按键、红外、串口等方式,手动控制风扇状态和转速。
  5. 系统状态显示:
    • 刷新OLED显示,实时显示系统状态、温度和风扇信息。
  6. 远程控制:
    • 通过串口与计算机通信,实现远程控制功能。

以上是软件设计的概要说明。

四、系统测试

4.1 手动工作模式测试

基于STM32的多功能智能风扇键盘控制功能

基于STM32的多功能智能风扇串口控制功能

基于STM32的多功能智能风扇红外线控制功能

4.2 自动工作模式测试

基于STM32开发板的多功能智能风扇温度控制功能

五、体会与总结

        在完成智能风扇系统的设计与实现过程中,我深刻领略到了嵌入式综合设计所涵盖的广度和复杂性。这个项目不仅涉及了硬件电路设计,还需要精心构建软件算法,两者之间的紧密协作为整个系统的稳定运行提供了坚实基础。

        在硬件设计方面,我首先搭建了STMF10XC8T6最小系统,整合了多个硬件模块,包括4x4矩阵键盘、红外发送和接收模块、OLED显示器、PWM调节电子开关控制板、串口的显示与控制、温度传感器等。每个模块都需要精心选择和连接,通过原理图和电路图的设计,逐步构建起整个硬件体系。

        而在软件设计方面,我运用MDK等开发软件,编写了风扇控制的算法。实现了自动模式和手动模式的切换,使得系统能够根据环境温度智能地调节风扇转速。同时,我还实现了通过本地开关、遥控器和计算机串口助手的远程控制功能,丰富了系统的操作方式。

        整个项目的经历让我更加深刻地认识到了嵌入式设计中的协同工作的必要性。硬件和软件之间的无缝衔接是项目成功的关键,需要对底层硬件有深刻理解,同时又要具备扎实的软件编程能力。这一过程不仅考验了我的团队协作能力,也促使我不断学习和提高,增强了解决问题的实际经验。

        在技术难题和挑战面前,我学到了很多新知识,对嵌入式系统设计的理解更为深入。通过项目,我也提高了解决问题的能力,锻炼了自己的工程实践技能。这次经历将成为我未来工作中的宝贵财富。

​​参考文献

  1. 朱文涛, 张建梅, 等. 基于STM32的智能家居远程监控系统设计[J]. 现代电子技术, 2017, 40(23): 44-47.

  2. 郭丽英, 刘风华, 等. 基于物联网的智能家居系统设计[J]. 计算机应用研究, 2018, 35(5): 1470-1473.

  3. 杨明, 张磊, 等. 基于STM32的智能温室控制系统设计[J]. 电脑知识与技术, 2019, 15(2): 58-60.

附录

硬件实物图

程序代码(部分主要代码) 

main.c代码

#include "stm32f10x.h"
#include "sys.h"
#include "delay.h"
#include "keyscan.h"
#include "OLED_I2C.h"
#include "led.h"
#include "oled.h"
#include "usart.h"
#include "tim.h"
#include "exti.h"
#include "remote.h"
u8 keycode=0;
u8 puls=0;

int main(void)
{
  GPIOC_Init();  //初始化
	GPIOB_Init();
	delay_init();  
	I2C_Configuration();
	OLED_Init();
  usart1_init(9600);
	timbase_init();
  timoc_init(puls);
	mainmenu();
	while(1)
  {
		keycode=keyscan();
		if(keycode==1){keyctr();} //键盘控制
		if(keycode==2){usart();}  //串口控制
		if(keycode==3){ray();}   //红外线控制
		if(keycode==4){temp();}  //温度控制
		//if(keycode==5){代加功能}
  }
}


源码、所需开发软件、和所需器件清单(免费下载) 

 感觉还可以的话,给博主我点个赞、收藏、关注、一键三连吧,是对博主我最大的支持,后续我也会持续更新分享干货!!!

博主我还是一名在校大三学生,项目有什么可以完善的,欢迎大佬在评论区指正,写这篇文章真的写到晚上2点多,给个小小一键三连的支持吧!!!

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值