1. 项目概述:当传统风扇遇上STM32
去年夏天帮朋友改造老式风扇的经历让我意识到,传统机械开关控制的风扇在智能化浪潮中显得格格不入。那次我用STM32F103C8T6最小系统板为核心,配合温湿度传感器和PWM调速模块,只花了周末两天就实现了温度自动调节功能。这种改造不仅成本低廉(总成本不到100元),而且让老风扇焕发新生——这正是嵌入式开发的魅力所在。
智能风扇系统的核心价值在于三点:一是通过环境感知实现自动化控制,比如根据室温自动调整转速;二是提供更精细的风速调节,传统三档开关升级为无级变速;三是增加远程控制等人性化功能。选择STM32作为主控是因为其性价比突出——以常用的STM32F103系列为例,价格在10-20元区间,却拥有72MHz主频、丰富的外设接口和成熟的生态支持。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 硬件组成解析
我的方案采用模块化设计,主要包含:
- 控制核心:STM32F103C8T6最小系统板(含ST-Link调试接口)
- 环境感知:DHT11温湿度传感器(精度±2℃,成本约5元)
- 人机交互:0.96寸OLED显示屏(SSD1306驱动,I2C接口)
- 执行机构:PC817光耦+BT136双向可控硅组成的调速电路
- 辅助功能:ESP-01S WiFi模块(可选,用于手机控制)
关键提示:可控硅选型要注意负载功率,普通桌面风扇建议选择3A以上规格,并务必加装散热片。我曾因忽略散热导致BT136在连续工作2小时后烧毁。
2.2 软件框架搭建
使用STM32CubeMX生成HAL库工程是最高效的方式:
- 时钟配置:72MHz主频,APB1总线36MHz(定时器基准)
- 外设初始化:
- ADC通道用于按键采样
- TIM3_CH1生成PWM波(频率建议16-20kHz避免可闻噪声)
- USART1连接ESP模块
- 任务调度:采用前后台系统设计,主循环处理显示刷新,中断处理关键事件
c复制// PWM初始化示例(CubeMX生成)
htim3.Instance = TIM3;
htim3.Init.Prescaler = 71; // 1MHz计数频率
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
htim3.Ini
