基于STM32的实验室安防系统设计(RFID门禁+烟雾火焰检测+远程报警控制)
基于STM32的实验室安防系统设计(RFID门禁+烟雾火焰检测+远程报警控制)
实验室是科研工作的核心场所,里面既有贵重仪器和重要数据,也存在高温、易燃、易爆等风险因素,传统的人工巡查方式难以做到实时监控和快速响应。本文基于 STM32 单片机设计了一套实验室智能安防系统:身份验证由 RC522 RFID 刷卡和 4×4 矩阵键盘密码双重把关,密码连错三次立即触发报警;环境侧用 MQ-2 烟雾传感器、TEMT6000 火焰传感器和 DHT11 温湿度传感器实时监测,一旦烟雾超标或检测到明火,蜂鸣器声光报警的同时经 ESP8266 把警报推送到手机端,用户远程即可控制通风设备或解除警报;OLED 屏动态显示全部环境数据与操作状态,为实验室安全提供了一套低成本、高性价比的完整方案。
一、系统功能总览
| 功能模块 | 实现方式 | 功能说明 |
|---|---|---|
| 身份验证 | RC522 RFID + 4×4 矩阵键盘 | 刷卡或输入密码解锁门锁,双重验证方式 |
| 防拆报警 | 密码错误计数 | 密码连续输错三次触发报警,需手动按键解除 |
| 烟雾检测 | MQ-2 烟雾传感器(ADC) | 实时采集烟雾浓度,超标即报警并上传手机 |
| 火焰检测 | TEMT6000 红外火焰传感器 | 检测到明火立即报警并远程推送 |
| 温湿度监测 | DHT11 温湿度传感器 | 超出阈值自动启动通风设备调节环境 |
| 状态显示 | OLED12864 | 动态显示烟雾、火焰、温湿度及身份验证信息 |
| 远程控制 | ESP8266 + 手机端 | 远程接收报警、控制通风设备、解除警报 |
| 关门提醒 | 关门键检测 | 开锁后长时间未按关门键,系统报警提醒 |
二、核心模块选型对比
2.1 主控模块:STM32F103C8T6 vs NXP LPC1768
| 对比项 | STM32F103C8T6 | NXP LPC1768 |
|---|---|---|
| 内核/主频 | Cortex-M3,72MHz | Cortex-M3,96MHz |
| 存储 | 64KB Flash + 20KB SRAM | 64KB Flash + 12KB SRAM |
| 接口资源 | 3×UART、2×SPI、2×I2C | 支持更多外部设备 |
| 生态 | 应用广泛,开发支持成熟 | 相对一般 |
两颗同为 Cortex-M3 内核,但 STM32F103C8T6 的 SRAM 容量更大,对需要缓存传感器数据、串口报文的安防系统更有利。选择方案 1:STM32F103C8T6。
2.2 RFID 模块:RC522 vs PN532
| 对比项 | RC522 | PN532 |
|---|---|---|
| 通信接口 | SPI,集成简单 | I2C/SPI/UART 三种可选 |
| 读写距离 | 较短,标准应用足够 | 10cm 以上 |
| 卡片兼容 | MIFARE 系列、NTAG 等 | 广泛 |
| 成本 | 低 | 较高 |
门禁刷卡场景对读写距离要求不高,RC522 低成本、接口简单、兼容性好。选择方案 1:RC522。
2.3 烟雾检测模块:MQ-2 vs MH-Z19
| 对比项 | MQ-2 | MH-Z19 |
|---|---|---|
| 检测对象 | 烟雾、甲烷、LPG 等多种气体 | 专注 CO/CO₂ 检测(NDIR 红外) |
| 精度 | 一般,但适应性强 | 高精度、响应快 |
| 成本/生态 | 低成本,应用案例丰富 | 价格较高 |
实验室起火早期烟雾成分复杂,MQ-2 的多气体检测能力和成熟应用基础更符合需求。选择方案 1:MQ-2。
2.4 火焰检测模块:TEMT6000 vs HID-100
| 对比项 | TEMT6000 | HID-100 |
|---|---|---|
| 检测原理 | 火焰红外辐射 | 火焰可见光谱 |
| 高温稳定性 | 125°C 以上仍稳定工作 | 常温最佳,高温性能下降 |
| 适用场景 | 工业炉具等高温设备 | 需即时反应的场景 |
实验室可能有高温设备共存的环境,TEMT6000 的高温稳定性和耐用性更可靠。选择方案 1:TEMT6000。
2.5 键盘输入模块:矩阵键盘 vs 电容触摸按键
| 对比项 | 矩阵键盘 | 电容触摸按键 |
|---|---|---|
| 原理 | 行列扫描检测按键闭合 | 检测人体电容变化 |
| 引脚占用 | 8 引脚支持 16 键 | 每键独立 |
| 成本/寿命 | 成本低,技术成熟 | 无机械磨损但成本高 |
系统需要 0~9 数字、确认等多按键输入,矩阵键盘用最少引脚实现最多按键,成本敏感场景首选。选择方案 1:4×4 矩阵键盘。
2.6 温湿度检测模块:DHT11 vs SHT40
| 对比项 | DHT11 | SHT40 |
|---|---|---|
| 精度 | 常规精度 | ±0.3°C / ±2%RH |
| 量程 | 050°C,2080%RH | -40125°C,0100%RH |
| 接口 | 单总线 | I2C |
| 成本 | 价格实惠 | 较高 |
实验室环境温湿度监测属于基础需求,DHT11 的精度足以支撑阈值判断,且显著降低系统成本。选择方案 1:DHT11。
三、系统接线总表
| 模块 | 接口方式 | 引脚连接 |
|---|---|---|
| RC522 刷卡模块 | SPI | SDA/SCK/MOSI/MISO→单片机 SPI 引脚,RST 复位,IRQ 可选中断,3.3V 供电 |
| MQ-2 烟雾传感器 | ADC 模拟输入 | AO→单片机 ADC 输入端(本设计只用 AO),5V 供电 |
| TEMT6000 火焰传感器 | GPIO 数字输入 | OUT→单片机 GPIO(高电平表示检测到火焰),5V 供电 |
| 4×4 矩阵键盘 | GPIO 行列扫描 | 4 行线→数字输出引脚,4 列线→数字输入引脚 |
| DHT11 温湿度 | 单总线 | DATA→单片机 GPIO,VCC 接 3.3V,NC 悬空 |
| ESP8266-01S | USART2,115200bps | TXD→RX2,RXD→TX2,CH_PD 接 3.3V,RST→PA4 |
| OLED12864 | I2C | SCL/SDA→单片机 I2C 引脚 |
| 继电器(门锁/通风) | GPIO 输出 | 控制端接单片机 GPIO,触点接门锁与通风设备 |
| 蜂鸣器 | GPIO 输出 | 驱动端接单片机 GPIO |
主控最小系统:8MHz 晶振(HSE)+ 32.768kHz 晶振(RTC)构成双时钟体系;复位电路由按键、电阻、电容组成,电阻保持 NRST 高电平防误复位,电容延长复位信号持续时间确保初始化可靠。
四、系统软件设计
4.1 主程序设计
上电后完成 RFID、矩阵键盘、烟雾、火焰、温湿度、继电器、Wi-Fi 模块和 OLED 的寄存器配置与接口初始化,随后进入主循环:
while (1)
{
/* 1.实时采集:RFID、键盘、环境传感器数据并显示 */
smoke = Get_Smoke_PPM(); /* MQ-2 ADC均值 → PPM */
flame = GPIO_Read(FLAME_PIN); /* TEMT6000 电平 */
DHT11_Read(&temp, &humi);
OLED_Show_All(smoke, flame, temp, humi);
/* 2.身份验证:刷卡/密码正确→继电器开门 */
if (RFID_Check_OK() || Pwd_Check_OK())
Relay_Door_Open();
/* 3.密码连错三次:蜂鸣器报警,按键解除 */
if (Pwd_ErrCount >= 3) {
Beep_Alarm(); OLED_Show("ALARM");
if (KEY_AlarmOff()) Pwd_ErrCount = 0;
}
/* 4.环境报警:烟雾超标或明火→本地报警+Wi-Fi推送 */
if (smoke > SMOKE_TH || flame) {
Beep_Alarm();
ESP8266_Report("SMOKE/FIRE ALARM");
}
/* 5.温湿度超限:自动启动通风设备 */
if (temp > TEMP_TH || humi > HUMI_TH)
Relay_Fan_On();
/* 6.关门提醒:开锁后长时间未关门则报警 */
if (Door_Open_Timeout())
Beep_Alarm();
}
4.2 RFID 识别子程序
RC522 操作流程:复位引脚复位模块并发送 PCD_RESETPHASE 命令 → 配置 CRC 初值、计时器及 ModeReg/RxSelReg/RFCfg 寄存器 → 启用天线 → 发送寻卡请求(0x52)解析卡片类型 → 启用防冲撞机制并验证序列号 → 选择卡片并计算 CRC 校验码 → 发送验证指令(0x60/0x61)完成密码验证 → 读取 MIFARE 卡数据,每次读写都附加 CRC 校验确认数据完整性。
4.3 烟雾检测子程序
使能 ADC1 与 GPIO 时钟,引脚配模拟输入,复位并初始化 ADC 为独立模式、软件触发、数据对齐后校准。读取时启动软件转换,检测 ADC_FLAG_EOC 标志判断完成,结果为 0~4095;多次采样取平均抑制噪声,再基于 5V 参考电压与 12 位分辨率换算为电压值,最终折算出烟雾浓度(PPM)用于阈值比较。
4.4 火焰检测子程序
TEMT6000 的 OUT 引脚配置为输入模式,主循环中调用读取函数检查电平:高电平表示感应到火焰,立即执行报警与防护动作;低电平则保持监控状态,随时准备响应火焰信号。
4.5 温湿度检测子程序
单总线时序驱动 DHT11:数据引脚先设为输出发送约 1ms 低电平启动信号,拉高等待 20~40μs;再切为输入,等待传感器响应(低 80μs + 高 80μs);随后接收 40 位数据(湿度整数/小数、温度整数/小数、校验和),按高电平持续时间判位;接收完毕计算校验和验证有效性,最终提取温湿度数值。
4.6 无线通信子程序
串口 2 以 115200bps 与 ESP8266 通信,复位引脚 PA4 推挽输出:拉低复位 → 等 500ms → 检查缓冲区"ready"确认复位完成;依次发送 STA 模式设置、AT+CWJAP 连 WiFi(检查"OK")、AT+CIPMUX 关多路连接、AT+CIPSEND 进透传(检查"\r\nOK\r\n\r\n>“)、AT+CIPSTART 连 TCP 服务器(检查"CONNECT”),最后等待获取 IP 地址即完成入网上云,报警信息经此链路推送到手机端。
五、系统实现与测试
5.1 硬件与软件调试
焊接按电路图将各模块牢固焊接到电路板并检查焊点,再经 SPI、I2C、UART 接口与主控连接、核对供电电压;上电后逐一检查数据采集、通信和控制功能。软件在 Keil 中构建各模块驱动与主程序,使用状态机和中断机制处理 RFID 识别、环境监测与无线通信任务,ST-Link 单步调试跟踪变量与程序流,重点验证传感器数据读取逻辑。
5.2 功能测试
| 测试项目 | 测试方法 | 测试结果 |
|---|---|---|
| 刷卡开锁 | 使用授权卡靠近 RC522 | 验证成功,继电器动作模拟门锁打开 |
| 密码开锁 | 键盘输入正确/错误密码 | 正确密码开锁;连错三次蜂鸣器报警、OLED 提示,解除键可清除 |
| 关门提醒 | 开锁后长时间不按关门键 | 系统触发报警提醒及时关门 |
| 烟雾报警 | 模拟烟雾使 MQ-2 超阈值 | 蜂鸣器报警,报警信息上传手机端 |
| 火焰报警 | 火源靠近 TEMT6000 | 立即报警并远程推送 |
| 通风控制 | 温湿度超出设定范围 | 继电器自动控制通风设备运行 |
| 远程控制 | 手机端下发通风/解除警报指令 | 通风控制与报警解除正常响应 |
| 断网恢复 | 模拟网络不稳定 | ESP8266 可自动恢复连接,数据传输连续 |
六、总结
这套实验室智能安防系统在 STM32F103C8T6 平台上构建了"人防 + 技防"的双重保障:RC522 刷卡与矩阵键盘密码实现人员出入管控,密码连错三次的防拆报警机制挡住了暴力试探;MQ-2、TEMT6000、DHT11 三类传感器组成的监测矩阵覆盖了烟雾、明火、温湿度三类核心风险,异常时本地声光报警与手机远程推送同步动作,通风设备既可按阈值自动启动也可手机远程控制;OLED 实时呈现全部状态,关门未关提醒等细节进一步堵住了管理漏洞。测试表明系统各项功能稳定可靠、响应迅速,凭借低成本与模块化设计的良好扩展性,可直接推广到机房、仓库等对环境安全有类似需求的场景。
更多推荐


所有评论(0)