1. 项目概述:基于STM32的家庭环境监控系统
这个项目本质上是一个针对家庭环境的实时监控解决方案,核心功能是通过STM32单片机采集温湿度数据并监测漏水风险。我在实际开发中发现,这种系统特别适合南方潮湿地区或者家中有老人、婴幼儿的家庭使用。系统采用模块化设计,主要由STM32F103C6主控芯片、DHT11温湿度传感器、LCD1602显示屏和漏水检测电路组成。
提示:选择STM32F103C6是因为它性价比高,72MHz主频完全能满足这种实时监测需求,而且开发资源丰富,特别适合学生和电子爱好者入门。
系统工作时,DHT11每秒钟采集一次环境数据,通过单总线协议传输给单片机,处理后显示在LCD上。当检测到温湿度超过设定阈值或发现漏水时,会立即触发声光报警。我特别加入了三个独立按键用于参数设置,这样用户可以根据季节变化调整报警阈值,比如夏天可以把温度上限设高些,避免频繁误报。
2. 硬件设计与核心模块解析
2.1 主控芯片选型与最小系统
STM32F103C6是我最终选择的主控芯片,相比常见的51单片机,它有更丰富的外设和更强的处理能力。实际搭建最小系统时需要注意几点:
- 必须正确连接BOOT0和BOOT1引脚(通常都接地)
- 复位电路采用10kΩ上拉电阻和0.1μF电容组合
- 晶振电路建议使用8MHz无源晶振,匹配电容选择20pF
我在调试时发现一个常见问题:如果程序下载不成功,很可能是复位电路设计有问题。建议先用示波器检查NRST引脚的电平是否正常。
2.2 温湿度传感器模块
DHT11虽然精度不算高(温度±2℃,湿度±5%RH),但胜在价格便宜、接口简单。接线时特别注意:
- VCC接3.3V(不要接5V,虽然手册说支持但实测不稳定)
- DATA引脚需要接4.7kΩ上拉电阻
- 传感器与单片机距离最好不超过20米
传感器读取时序是关键难点。根据我的经验,DHT11的启动信号需要MCU先将DATA拉低至少18ms,然后拉高20-40μs等待响应。数据位的"0"和"1"通过高电平持续时间区分,这个时间窗口很窄,建议用定时器精确测量。
2.3 漏水检测电路设计
原项目没有详细说明漏水检测部分,我补充一个实用方案:
- 使用两个裸露的铜箔条作为检测探头
- 通过LM393比较器电路检测电阻变化
