基于 STM32 的智能家居环境监测与控制系统
项目背景
随着物联网技术的普及,智能家居已成为改善居住体验的重要方向。然而,当前市场主流产品普遍存在功能割裂、智能化程度不足、安全隐患突出等问题。传统单一功能设备无法形成环境安全联动,导致安全响应滞后、能源浪费严重。
本研究设计并实现了一种基于 STM32F103C8T6 单片机的智能家居环境监测与控制系统。系统通过集成多参数环境传感器,构建了完整的家居环境感知 - 决策 - 执行闭环,实现了对室内温湿度、烟雾浓度、一氧化碳、空气质量、光照强度及大气压强的精准监测。测试表明,系统在典型家居环境中温湿度误差<±2%,气体浓度误差<±5%,关键安全事件响应时间<3 秒,WIFI 连接成功率>98%,功耗控制在待机<1W 的水平。
系统总体设计
需求分析
环境监测:支持温湿度(0-60℃/0-100%RH)、烟雾(0-10000ppm)、CO(0-1000ppm)、空气质量(AQI 0-300)、光照(0-10000lux)、大气压(300-1100hPa),采样频率 1-5 秒/参数。
显示功能:0.96 寸 OLED(128×64 像素)分页显示,30 秒无操作自动降低亮度,2 分钟无操作关闭显示。
控制功能:
- LED 照明:10 级 PWM 调光(0-100%),双色温(3000K/5000K)
- 步进电机:28BYJ-48 驱动,开窗角度 0-90°,精度±2°
运行模式:
- 手动模式:APP 远程控制 LED 开关/调光、窗户开闭,支持历史数据查看与异常推送。
- 自动模式:
- 气体超标:烟雾>2000ppm 或 CO>50ppm → 蜂鸣报警 + 开窗通风
- 光线不足:光照<100lux → 自动开启 LED(50% 亮度)
- 联动策略:夜间气体超标时开窗 + 低亮度 LED 指引逃生
阈值调节:本地按键步进调整(烟雾±100ppm,光照±10lux),APP 滑动条连续调节,断电保存。
硬件架构
系统采用四层硬件架构:
- 感知层:DHT11(温湿度)、MQ-2/MQ-7/MQ-135(气体)、光敏电阻(光照)、BMP180(气压)传感器,经信号调理电路接入 MCU。
- 控制层:LED 驱动(MOSFET+ 恒流电路)、步进电机驱动(ULN2003)、蜂鸣器(5V 有源),配合 OLED 与 4 键矩阵键盘实现人机交互。
- 通信层:ESP8266-01S WIFI 模块(802.11 b/g/n),通过 UART 连接 STM32,采用 MQTT over TLS 1.2 协议。
- 核心处理层:STM32F103C8T6(72MHz Cortex-M3),配合 AT24C32 EEPROM(存储参数)和 W25Q16 Flash(存储固件)。
硬件设计亮点:PCB 四层板分区布局(模拟区/数字区/功率区/通信区),关键信号线阻抗匹配;外壳采用阻燃 ABS 材料,IP30 防护等级;BOM 成本 326 元(较商用产品低 35-60%)。
软件架构
软件采用五层分层架构:
- 硬件抽象层:封装寄存器配置与中断管理
- 驱动层:传感器/执行器/通信驱动(如 DHT11_Read())
- 中间件层:数据滤波(中值 + 滑动平均 + 卡尔曼)、任务调度
- 服务层:环境监测/自动控制/通信管理
- 应用层:模式切换/UI 管理/用户交互
关键设计:事件驱动 + 轮询混合调度,优先级 0 任务(安全事件)中断响应<100ms;分层架构确保模块解耦,便于后期扩展。


