1. 项目概述:当传统衣柜遇上STM32
去年帮朋友改造衣柜时,我意识到传统衣柜最大的痛点不是收纳空间不足,而是缺乏环境感知能力。梅雨季衣服发霉、冬季大衣静电严重,这些问题其实都能通过智能监控解决。这个基于STM32的智能衣柜系统,就是用单片机给衣柜装上"感官神经"和"大脑"。
系统核心是STM32F103C8T6最小系统板,搭配DHT11温湿度传感器、0.96寸OLED显示屏和蓝牙模块,构成完整的监测控制闭环。实测表明,在20cm×30cm的紧凑空间内,系统能实现±1℃的温度控制精度和±3%的湿度检测精度,完全满足日常需求。
硬件选型心得:STM32F103的性价比在智能家居领域依然能打,特别是其内置的12位ADC和多个定时器,非常适合同时处理传感器数据采集和PWM温控输出。
2. 硬件架构设计解析
2.1 核心控制器选型对比
我测试过三种方案:51单片机、STM32F103和ESP8266。最终选择STM32F103C8T6主要基于三点考量:
- 实时性需求:需要同时处理蓝牙通信、OLED刷新和温湿度控制
- 开发便利性:HAL库对多任务的支持明显优于标准外设库
- 扩展空间:留有USART、I2C等接口方便后期升级
具体资源配置如下表:
| 外设 | 用途 | 占用资源 |
|---|---|---|
| TIM2 | PWM加热控制 | 通道1 |
| ADC1 | 温湿度传感器 | 通道0 |
| USART1 | 蓝牙通信 | 全双工 |
| I2C1 | OLED驱动 | 标准模式 |
2.2 传感器电路设计要点
DHT11的供电电路有个容易踩的坑:上拉电阻不能直接接3.3V。我的解决方案是:
- 使用2.2kΩ上拉电阻
- 在VCC与DATA线间并联104电容
- 通过三极管控制传感器供电通断(降低待机功耗)
c复制// 传感器供电控制代码示例
void DHT11_Power_CTRL(uint8_t state)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, (GPIO_PinState)state);
if(state) HAL_Delay(50); // 等待电源稳定
}
