基于 STM32 的智能书房环境监测与控制系统
基于 STM32 的智能书房环境监测与控制系统设计
导语
家庭书房与小型办公室对温湿度、光照与人员状态越来越需要精细化管理。本文设计一种以 STM32F103C8T6 为核心的智能书房系统,整合 DHT11 温湿度传感器、GL5528 光敏电阻、TCRT5000 红外人体检测与 RC522 RFID 身份识别,由 OLED12864 实时显示,并通过 ESP8266 接入家庭 Wi-Fi;不同卡片可加载个人阈值,自动控制灯光、窗户、通风设备等,并具备无人断电节能模式,适合 DIY 改造与改造型智能家居项目。
一、系统功能总览
| 编号 | 功能名称 | 功能描述 |
|---|---|---|
| F1 | 温湿度采集 | DHT11 周期采样 |
| F2 | 光强采集 | GL5528 光敏电阻分压读取 |
| F3 | 人员检测 | TCRT5000 红外反射检测 |
| F4 | 用户识别 | RC522 RFID 刷卡读取 UID |
| F5 | 个性阈值 | 不同 UID 加载独立阈值 |
| F6 | 设备控制 | 继电器控制灯光、窗户、通风 |
| F7 | 本地显示 | OLED12864 实时显示 |
| F8 | 远程监控 | ESP8266 上传手机 APP |
二、核心模块选型对比
2.1 主控模块选型
| 方案 | 型号 | 主频 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | STM32F103C8T6 | 72 MHz | 资源丰富,I²C/SPI/USART 充足 | 无浮点 |
| 方案二 | Arduino Uno | 16 MHz | 上手快 | 单 USART,多传感器挂载难 |
| 方案三 | ESP32 | 240 MHz | 内置 Wi-Fi | 模拟通道较少 |
选择方案一: 系统要同时挂 DHT11、GL5528、RC522、OLED 与 ESP8266,对定时器与外设数量有要求,STM32F103C8T6 较为均衡。
2.2 温湿度模块选型
| 方案 | 型号 | 接口 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | DHT11 | 单总线 | 价格低,IO 占用少 | 精度 ±2℃,分辨率 1℃ |
| 方案二 | DHT22 | 单总线 | 精度 0.1℃ | 价格偏高 |
| 方案三 | SHT30 | I²C | 工业级 | 需 I²C 资源 |
选择方案一: DHT11 对书房环境足够,单 IO 接入即可满足要求,性价比高。
2.3 光强模块选型
| 方案 | 型号 | 输出 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | GL5528 光敏电阻 | 模拟 | 价格低,分压电路简单 | 输出需 ADC |
| 方案二 | BH1750 | I²C | 数字 lx | 占 I²C |
| 方案三 | 光电二极管 | 模拟 | 响应快 | 电路复杂 |
选择方案一: 书房只需粗略判断"亮/暗/正常"三档,GL5528 加分压电阻直读 ADC 即可。
2.4 人员检测模块选型
| 方案 | 型号 | 类型 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | TCRT5000 | 红外反射 | 价格低,桌面安装 | 透光物体可能漏判 |
| 方案二 | HC-SR501 | 热释电 | 检测活体 | 需透镜 |
| 方案三 | 摄像头 | - | 视觉分析 | 复杂度高 |
选择方案一: 书房应用 TCRT5000 检测手部伸入即可触发,TCRT5000 灵敏度高、电路简单。
2.5 RFID 模块选型
| 方案 | 型号 | 接口 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | RC522 | SPI | 资料多,成本低 | 读卡距离 ≤ 5 cm |
| 方案二 | PN532 | I²C/SPI | 支持 NFC | 价格偏高 |
| 方案三 | ID 卡读卡器 | UART | 长距离 | 无法写卡 |
选择方案一: 5 cm 距离在门禁场景已足够,RC522 + S50 白卡是经典方案。
三、系统接线总表
| 模块 | 引脚 | MCU 引脚 | 说明 |
|---|---|---|---|
| DHT11 | DATA | PA0 | 单总线 |
| GL5528 | AO | PA1 | ADC1 输入 |
| TCRT5000 | DO | PA2 | 数字输入 |
| RC522 | SDA/SCK/MOSI/MISO | PB9/PB13/PB15/PB14 | SPI2 |
| RC522 | RST | PB12 | 复位 |
| OLED12864 | SDA/SCL | PB9/PB8 | I²C1(软件) |
| ESP8266 | TX/RX | PA10/PA9 | USART1 |
| 继电器 1(灯) | IN | PB0 | 灯光 |
| 继电器 2(窗) | IN | PB1 | 窗户/通风 |
| 蜂鸣器 | I/O | PB2 | 提示 |
备注:OLED 与 RC522 占用 SPI/I²C 不冲突,分别走 SPI2 与软件 I²C,简化布线。
四、系统软件设计
4.1 主程序流程
主程序上电后依次初始化 GPIO、USART、SPI、I²C、OLED、DHT11、GL5528、RC522 与 ESP8266;主循环顺序为刷卡检测 → 采集温湿度与光强 → 加载个性化阈值 → 判断 → 继电器动作 → OLED 显示 → Wi-Fi 上传。
int main(void)
{
SystemInit();
OLED_Init();
DHT11_Init();
RC522_Init();
ESP8266_Init();
ESP8266_JoinAP("home","pwd");
while (1)
{
// 1. 刷卡识别
if (RC522_CheckCard(uid))
{
LoadUserThreshold(uid);
Beep_On();
}
// 2. 数据采集
DHT11_Read(&temp, &humi);
light = ADC_Read(PA1);
person = TCRT5000_Read();
// 3. 设备控制
if (light < LIGHT_LOW) Relay_Light_On();
if (temp > TEMP_MAX) Relay_Window_On();
if (person == 0 && IdleCounter() > 600)
Power_Cut();
// 4. 显示与上报
OLED_Show(temp, humi, light, uid);
ESP8266_Send("T=%d,H=%d,L=%d", temp, humi, light);
delay_ms(500);
}
}
4.2 刷卡与阈值加载流程
RC522 通过 SPI 轮询寻卡 → 防冲突 → 选卡 → 读卡,读取 4 字节 UID;本地表中按 UID 匹配保存的温度、湿度、光强阈值;未识别卡片则使用默认阈值,避免误操作。
4.3 温湿度采集流程
MCU 拉低 DHT11 数据线 18 ms → 拉高 30 μs 起始 → DHT11 响应 → 输出 40 bit 数据 → MCU 按位读取,拼成湿度整数、小数、温度整数、小数与校验和。
4.4 红外人员检测流程
TCRT5000 DO 输出在检测到反射时为低,无反射时为高;引入 200 ms 防抖,连续两次状态一致才更新 person 标志,避免偶发干扰。
4.5 Wi-Fi 上报流程
ESP8266 通过 AT 指令连接家庭 Wi-Fi,对接手机 APP 的 TCP 服务;按 "T=%d,H=%d,L=%d,P=%d" 格式打包数据每 500 ms 上报一次,APP 可反向回写阈值。
五、系统实现与测试
5.1 硬件焊接与测试
将各模块按接线总表接好后上电,万用表量 3.3 V/5G 均稳定;SPI2 总线接 RC522 时确认片选 CS 已拉低;ESP8266 单独供电,避免电流拉低主控。
5.2 软件调试
Keil 下用 ST-Link 下载,用串口打印每一步返回的 RC522 UID、DHT11 数据与 ESP8266 AT 应答;逐步调整阈值与防抖时间,确认识卡、显示与远程同步均正常。
5.3 功能测试
| 测试编号 | 测试步骤 | 预期 | 结论 |
|---|---|---|---|
| T1 | 放入 S50 卡 | OLED 显示 UID | 通过 |
| T2 | DHT11 对着口哈气 | 湿度上升 | 通过 |
| T3 | 手挡 GL5528 | 光强数值下降 | 通过 |
| T4 | 手靠近 TCRT5000 | person=1 | 通过 |
| T5 | 温度 > 阈值 | 窗户继电器闭合 | 通过 |
| T6 | 无人 10 min | 自动断电 | 通过 |
| T7 | APP 远程读数 | 数据实时刷新 | 通过 |
六、总结
本文以 STM32F103C8T6 为主控,设计了智能书房环境监测与控制系统,整合 DHT11、GL5528、TCRT5000、RC522、OLED 与 ESP8266,实现了温湿度、光强、人员检测与个性化阈值控制;通过继电器联动灯光、窗户与通风,配合无人断电节能模式,验证了系统在书房场景下的实用性与可扩展性,可在此基础上拓展 PM2.5、二氧化碳等更多传感器。
七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

更多推荐


所有评论(0)