当前位置: 首页 > news >正文

基于51单片机手机无线蓝牙APP控制风扇调速设计

基于51单片机手机无线蓝牙APP控制风扇调速设计

1 系统功能介绍

本设计的目标是实现一个基于STC89C52单片机的智能风扇控制系统,用户可以通过手机APP发送蓝牙指令,来远程控制风扇的转速与工作模式。系统不仅能够完成低速、中速和高速的调节,还可以根据预设的时间(如1分钟)在指定转速下运行后自动停止,从而实现智能化与人性化的风扇管理。

该系统的功能概述如下:

  1. 风扇调速控制:风扇可分为低速、中速和高速三种模式,满足用户在不同环境下的需求。
  2. 定时功能:支持用户通过APP设定风扇在某一档位下运行1分钟后自动停止,避免能源浪费。
  3. 远程无线控制:通过蓝牙模块与手机APP进行数据通信,用户可以随时随地控制风扇。
  4. 扩展性强:由于采用单片机与蓝牙结合的设计,后期可扩展温度检测、自动调速等智能功能。

蓝牙指令协议如下:

  • 发送 TZ00 → 停止
  • 发送 GS00 → 高速
  • 发送 ZS00 → 中速
  • 发送 DS00 → 低速
  • 发送 GS01 → 高速运作1分钟后停止
  • 发送 ZS01 → 中速运作1分钟后停止
  • 发送 DS01 → 低速运作1分钟后停止

该设计在保证操作便捷的同时,也具备较强的实用性与教学意义,适用于智能家居与小型电气自动化实验项目。


2 系统电路设计

整个系统由 STC89C52单片机核心电路、风扇控制电路、蓝牙通信电路、电源电路 四部分组成。各部分相互配合,共同实现风扇的调速与远程控制功能。

2.1 单片机核心电路

本设计选用 STC89C52单片机 作为主控芯片。它是一种基于8051内核的单片机,具有稳定的性能和丰富的I/O接口,能够满足风扇控制和蓝牙通信的需要。

  • 晶振电路:采用11.0592MHz晶振,保证单片机稳定运行,并方便串口通信的波特率计算。
  • 复位电路:采用按键加电容、上拉电阻的复位方式,保证系统能够在通电和必要时恢复正常工作。
  • I/O分配:部分I/O用于控制风扇的PWM输出,部分用于与蓝牙模块的串口通信。

2.2 风扇控制电路

风扇控制电路的关键在于调速与驱动。由于单片机I/O口驱动能力有限,不能直接驱动风扇电机,因此采用 PWM调速+三极管/MOSFET驱动 的方式。

  • PWM调速:单片机通过定时器输出PWM信号,调节占空比以实现不同转速。
  • 驱动电路:采用NPN三极管或MOSFET作为开关器件,由单片机PWM信号控制,从而实现电机的启停与调速。
  • 风扇电机:采用直流小型电机,结合PWM控制可实现高速、中速和低速的切换。

2.3 蓝牙通信电路

本设计采用 HC-05/HC-06蓝牙模块,通过UART接口与单片机通信。

  • 连接方式:蓝牙模块的TXD与单片机RXD连接,RXD与TXD连接,完成全双工串口通信。
  • 波特率:设定为9600bps,兼顾通信稳定性与速度。
  • 数据处理:蓝牙模块接收来自手机APP的指令,单片机解析指令并执行相应的风扇操作。

2.4 电源电路

整个系统的电源采用5V供电方式,蓝牙模块和单片机工作电压均为5V,而风扇则由电源直接驱动。必要时可增加稳压模块(如AMS1117)来保证电路的稳定性。


3 系统程序设计

程序设计分为三个核心部分:蓝牙通信程序、风扇调速控制程序、定时功能实现程序。以下将分别进行介绍。

3.1 蓝牙通信程序设计

蓝牙通信程序的核心是串口初始化与数据接收。单片机通过串口中断接收来自APP的指令,并进行解析。

#include <reg52.h>
#include <string.h>#define uchar unsigned char
#define uint unsigned intuchar rx_buffer[10];
uchar rx_index = 0;void UART_Init()
{SCON = 0x50;    // 串口模式1,允许接收TMOD |= 0x20;   // 定时器1工作在方式2,自动重装TH1 = 0xFD;     // 波特率9600TL1 = 0xFD;TR1 = 1;        // 启动定时器1EA = 1;         // 总中断开ES = 1;         // 允许串口中断
}void UART_Interrupt(void) interrupt 4
{if (RI){RI = 0;rx_buffer[rx_index++] = SBUF;if (rx_index >= 4)   // 接收4字节指令{rx_index = 0;Process_Command(rx_buffer);}}
}

3.2 风扇调速控制程序设计

风扇调速通过PWM实现,分别对应不同占空比,从而得到低速、中速和高速。

sbit FAN = P2^0;  // 风扇控制端口void Fan_Control(char mode)
{switch(mode){case 'D': // 低速// 设置PWM低占空比break;case 'Z': // 中速// 设置PWM中等占空比break;case 'G': // 高速// 设置PWM高占空比break;case 'T': // 停止FAN = 0;break;}
}

3.3 定时功能实现程序设计

定时功能由定时器实现。当接收到类似 GS01 的指令时,单片机先启动高速模式,并开启定时器。1分钟后自动停止风扇。

uint timer_count = 0;
bit timer_flag = 0;void Timer0_Init()
{TMOD |= 0x01;   // 定时器0模式1TH0 = 0x3C;     // 50ms定时TL0 = 0xB0;ET0 = 1;        // 允许定时器0中断TR0 = 1;        // 启动定时器
}void Timer0_ISR(void) interrupt 1
{TH0 = 0x3C;TL0 = 0xB0;timer_count++;if (timer_count >= 1200)  // 50ms * 1200 = 60s{timer_flag = 1;timer_count = 0;}
}void Process_Command(uchar *cmd)
{if (strcmp(cmd, "TZ00") == 0) Fan_Control('T');else if (strcmp(cmd, "GS00") == 0) Fan_Control('G');else if (strcmp(cmd, "ZS00") == 0) Fan_Control('Z');else if (strcmp(cmd, "DS00") == 0) Fan_Control('D');else if (strcmp(cmd, "GS01") == 0) { Fan_Control('G'); timer_flag=0; }else if (strcmp(cmd, "ZS01") == 0) { Fan_Control('Z'); timer_flag=0; }else if (strcmp(cmd, "DS01") == 0) { Fan_Control('D'); timer_flag=0; }if (timer_flag){Fan_Control('T');timer_flag = 0;}
}

3.4 程序逻辑说明

  1. 系统上电后,初始化串口和定时器,等待APP指令。
  2. APP通过蓝牙发送指令,单片机接收并解析。
  3. 若为速度控制指令,则立即执行风扇的调速。
  4. 若为定时指令,则启动定时器,1分钟后自动关闭风扇。

4 总结

本设计基于 STC89C52单片机,通过蓝牙模块与手机APP交互,实现了对风扇的远程无线调速与定时控制。系统结构清晰,功能全面,具有如下特点:

  1. 操作简便:用户通过手机即可完成所有操作。
  2. 功能实用:支持低、中、高速控制以及定时自动停止。
  3. 扩展性好:后续可增加温湿度检测、自动调节转速等功能,进一步提升智能化水平。

该系统不仅能应用于日常生活中的小型智能家居电器控制,同时也具备较强的教学和研究价值,是嵌入式系统与蓝牙无线通信结合的典型案例。


文章转载自:

http://NTcer6HN.zqcdL.cn
http://a5aFXcdh.zqcdL.cn
http://MT2tmTXU.zqcdL.cn
http://5sDSQmPv.zqcdL.cn
http://8nIDqWVH.zqcdL.cn
http://72NrnkPj.zqcdL.cn
http://Z01VfOIj.zqcdL.cn
http://VXdVvGqX.zqcdL.cn
http://9KubwNst.zqcdL.cn
http://oqWUbuMS.zqcdL.cn
http://gHKUVBaI.zqcdL.cn
http://dA4wQFLP.zqcdL.cn
http://hkJt4vmm.zqcdL.cn
http://6ndPpUdb.zqcdL.cn
http://RckLzwYs.zqcdL.cn
http://5HWmSOeN.zqcdL.cn
http://UvYqeUUK.zqcdL.cn
http://yd9mvQlD.zqcdL.cn
http://YYsoFZYk.zqcdL.cn
http://pWK5sQWE.zqcdL.cn
http://cJ9ZrXVZ.zqcdL.cn
http://7YcmOX8I.zqcdL.cn
http://AfEOHA8R.zqcdL.cn
http://o1J1tjmE.zqcdL.cn
http://DOiYAcu6.zqcdL.cn
http://eYGzHd0b.zqcdL.cn
http://DBQMOvEM.zqcdL.cn
http://KIjfe3rj.zqcdL.cn
http://wKYgYe9s.zqcdL.cn
http://cgFeV25K.zqcdL.cn
http://www.dtcms.com/a/371322.html

相关文章:

  • 力扣hot100:相交链表与反转链表详细思路讲解(160,206)
  • 如何在 DevOps 管道中实现 AI?
  • 【Java基础07】面向对象进阶
  • 动态维护有效区间:滑动窗口
  • 桌面时间 Catime
  • 解锁服务器网络配置新姿势:Wisdom SSH 助力之旅
  • 设计模式:状态模式(State Pattern)
  • 【ARM基础知道】
  • SpringCloud Alibaba微服务--Gateway使用
  • 基于脚手架微服务的视频点播系统-播放控制部分
  • 【C++详解】C++ 智能指针:使用场景、实现原理与内存泄漏防治
  • 【iOS】push,pop和present,dismiss
  • HiCMAE 论文复现:基于 RAVDESS 数据集的音视频情感识别
  • axios的两种异步方式对比
  • uniapp结合uview制作美食页面
  • Spark mapreduce 的一个用法
  • [iOS] push 和 present Controller 的区别
  • 五.贪心算法
  • vue中axios与fetch比较
  • 【iOS】block复习
  • 打造第二大脑读书笔记目录
  • 【Docker】Docker基础
  • 一、CMake基础
  • 【音视频】WebRTC P2P、SFU 和 MCU 架构
  • VBA 自动转化sheet到csv文件
  • rabbitmq 重试机制
  • 《C++进阶之STL》【set/map 使用介绍】
  • 【RabbitMQ】----初识 RabbitMQ
  • WebRTC开启实时通信新时代
  • JVM-默背版