1. 项目概述
这个基于STM32的WiFi远程温控风扇系统,是我去年指导的一个通信工程专业毕业设计的实作项目。当时学生想要做一个既能展示嵌入式开发能力,又具备物联网特性的实用作品。我们最终确定的这个方案,不仅完整实现了基础功能,还在系统稳定性和用户体验上做了不少优化。
整套系统通过STM32微控制器作为主控,搭配温湿度传感器实时采集环境数据,再通过ESP8266 WiFi模块将数据上传到手机APP。当温度超过设定阈值时,STM32会自动控制风扇启停,同时用户也可以在任何地方通过手机远程手动控制风扇。这种"自动+手动"的双重控制模式,在实际测试中表现非常可靠。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件选型与电路设计
2.1 核心器件选型
主控芯片我们选择了STM32F103C8T6,这款Cortex-M3内核的MCU性价比极高,72MHz主频完全够用,而且有丰富的GPIO和定时器资源。更重要的是,它的开发资料非常完善,遇到问题基本都能找到解决方案。
WiFi模块选用的是ESP8266-01S,这个选择主要基于三点考虑:
- 成本低廉(单价不到10元)
- 支持AT指令控制,开发简单
- 自带TCP/IP协议栈,减轻了MCU负担
温湿度传感器方面,DHT11和DHT22之间我们最终选择了DHT22。虽然DHT11更便宜,但DHT22的测量精度更高(温度±0.5℃,湿度±2%),量程也更宽(-40~80℃),更适合需要精确控温的场景。
2.2 电路设计要点
电源部分特别需要注意:ESP8266的工作电流峰值可达300mA,所以LDO要选输出能力足够的型号。我们使用的是AMS1117-3.3,但实际测试发现当WiFi频繁传输时会出现电压跌落,后来改用了输出能力更强的RT9013-3.3GB才解决问题。
传感器接口要加上拉电阻(DHT22建议用5.1K),I2C接口的SCL/SDA同样需要上拉。风扇控制我们采用MOS管(IRLZ44N)而不是继电器,这样既避免了机械噪音,PWM调速也更平滑。
重要提示:ESP8266的RX/TX与STM32连接时,一定要做电平转换!3.3V的ESP8266不能直接接5V的STM32,可以用电阻分压或者专用电平转换芯片。
3. 软件架构设计
3.1 主程序流程图
系统上电后首先初始化各外设(U
