当前位置: 首页 > news >正文

基于STM32的光电感烟火灾报警器设计

一、系统概述

基于STM32F103C8T6微控制器,采用红外散射型光电感烟传感器,实现高灵敏度、低误报的火灾预警功能。系统符合GB 4715-2024《点型感烟火灾探测器》标准,支持动态阈值调整、污染检测、远程监控等功能,适用于家庭、办公室、仓库等场景。

二、硬件设计

1. 核心硬件选型

模块 型号/参数 功能
主控 STM32F103C8T6(72MHz,12位ADC) 信号采集、滤波、报警控制
光电传感器 红外散射型(如E3F3-D12) 检测烟雾颗粒(散射光信号)
信号调理 LM358运算放大器 放大传感器输出信号(增益1000)
报警模块 有源蜂鸣器+红色LED 声光报警
显示模块 0.96寸OLED(I2C) 显示烟雾浓度、报警状态
通信模块 HC-05蓝牙模块(UART) 远程数据传输(手机APP)
电源 5V USB供电+锂电池(3.7V) 系统供电(支持断电续航)

2. 电路设计要点

(1)光电传感器接口

  • 传感器输出模拟信号(0-5V),连接至STM32的PA0(ADC1通道0);

  • 采用LM358构成同相放大电路,增益设置为1000倍(将传感器输出的mV级信号放大至V级,适配STM32 ADC输入范围);

  • 电路图:

    VCC(5V) → 传感器VCC  
    传感器OUT → LM358同相输入端 → LM358输出 → PA0(STM32)  
    LM358反相输入端 → 反馈电阻(1MΩ) → 输出端
    

(2)报警与显示电路

  • 蜂鸣器:通过三极管(S8050)驱动,基极连接STM32的PB0(GPIO输出);

  • LED:阳极通过1kΩ电阻连接STM32的PB1(GPIO输出),阴极接地;

  • OLED:I2C接口,SCL连接PB6,SDA连接PB7(STM32硬件I2C)。

三、软件设计(C语言实现)

1. 主程序流程

#include "stm32f10x.h"
#include "adc.h"
#include "filter.h"
#include "oled.h"
#include "bluetooth.h"
#include "alarm.h"// 系统状态
typedef struct {uint8_t alarm_flag;    // 报警标志(0:正常, 1:报警)float smoke_value;     // 烟雾浓度(%obs/m)float threshold;       // 报警阈值(%obs/m)
} SystemState;int main(void) {// 初始化硬件System_Init();         // 时钟、GPIO、ADC、OLED、蓝牙Filter_Init();         // 初始化滤波算法(复合偏置滤波)Alarm_Init();         // 初始化报警模块(蜂鸣器、LED)SystemState sys_state = {0};sys_state.threshold = 0.5;  // 默认阈值(%obs/m)// 主循环while (1) {// 1. 采集烟雾信号(ADC转换)uint16_t adc_value = ADC_Read(ADC_Channel_0);float voltage = (adc_value / 4095.0f) * 3.3f;  // 转换为电压(0-3.3V)// 2. 数字滤波(去除噪声与基线漂移)float filtered_voltage = Filter_Process(voltage);// 3. 转换为烟雾浓度(%obs/m)sys_state.smoke_value = Voltage_To_Smoke(filtered_voltage);// 4. 报警判断(超过阈值则触发)if (sys_state.smoke_value > sys_state.threshold) {sys_state.alarm_flag = 1;Alarm_Trigger();  // 声光报警} else {sys_state.alarm_flag = 0;Alarm_Reset();    // 停止报警}// 5. 显示与远程传输OLED_Display(sys_state.smoke_value, sys_state.threshold, sys_state.alarm_flag);Bluetooth_Send(sys_state.smoke_value, sys_state.alarm_flag);// 6. 低功耗管理(空闲时休眠)if (!sys_state.alarm_flag) {Enter_Sleep_Mode(1000);  // 休眠1秒}}
}

2. 关键算法实现

(1)数字滤波(复合偏置滤波)

针对光电信号的基线漂移高频噪声,采用复合偏置滤波算法(结合FIR滤波与趋势判断):

// 复合偏置滤波结构体
typedef struct {float prev_output;     // 上一次输出值float threshold;       // 报警阈值uint8_t count;         // 超过阈值的次数
} CompositeFilter;// 初始化滤波
void Filter_Init(CompositeFilter* filter, float threshold) {filter->prev_output = 0.0f;filter->threshold = threshold;filter->count = 0;
}// 滤波处理
float Filter_Process(CompositeFilter* filter, float input) {// 1. FIR滤波(去除高频噪声)float fir_output = (input + filter->prev_output) / 2.0f;// 2. 偏置处理(去除基线漂移)float bias = fir_output - filter->prev_output;float output = fir_output - bias;// 3. 趋势判断(超过阈值则计数)if (output > filter->threshold) {filter->count++;if (filter->count > 3) {  // 连续3次超过阈值则触发报警filter->count = 0;return output;}} else {filter->count = 0;}filter->prev_output = output;return output;
}

(2)烟雾浓度转换

通过标定实验(用标准烟箱测试),建立电压-烟雾浓度的线性关系:

// 电压转换为烟雾浓度(%obs/m)
float Voltage_To_Smoke(float voltage) {// 标定曲线:smoke = a*voltage + b(a=0.2, b=0.1,需根据实际传感器调整)return 0.2f * voltage + 0.1f;
}

(3)报警控制

// 触发报警(声光)
void Alarm_Trigger(void) {GPIO_SetBits(GPIOB, GPIO_Pin_0);  // 蜂鸣器响GPIO_SetBits(GPIOB, GPIO_Pin_1);  // LED亮
}// 停止报警
void Alarm_Reset(void) {GPIO_ResetBits(GPIOB, GPIO_Pin_0);  // 蜂鸣器停GPIO_ResetBits(GPIOB, GPIO_Pin_1);  // LED灭
}

参考代码 消防报警器,光电感烟探测设计 www.youwenfan.com/contentcns/160905.html

四、符合GB 4715-2024标准设计

1. 响应阈值调整

  • 支持动态阈值调整(通过手机APP或按键),适应不同场景(如厨房、仓库);

  • 阈值范围:0.1-2.0%obs/m(符合GB 4715-2024中A型光电探测器的要求)。

2. 污染检测功能

  • 定期(每6个月)检测传感器污染程度(通过测量 baseline 电压变化);

  • 当污染超过阈值(如 baseline 电压变化超过0.5V),触发污染报警(OLED显示“请清洁传感器”)。

3. 电磁兼容(EMC)设计

  • 传感器信号线采用屏蔽线(如RVVP 2×0.5),减少电磁干扰;

  • 电源电路增加π型滤波(10μF电容+100Ω电阻+10μF电容),抑制电源噪声;

  • 符合GB/T 17626系列标准(静电放电、射频电磁场辐射抗扰度等)。

五、测试与验证

1. 功能测试

测试项 方法 预期结果
烟雾检测 用香烟烟雾靠近传感器 报警触发(蜂鸣器响、LED亮)
阈值调整 通过APP将阈值设为1.0%obs/m 烟雾浓度超过1.0%时触发报警
污染检测 用灰尘覆盖传感器 OLED显示“请清洁传感器”
远程监控 通过手机APP查看烟雾浓度 数据显示正常(与实际一致)

2. 性能测试

  • 灵敏度:对0.5%obs/m的标准烟雾(GB 4715-2024)响应时间≤10秒;

  • 误报率:在厨房环境(油烟、蒸汽)中,误报率≤1次/月;

  • 续航时间:锂电池供电(3.7V/1000mAh),连续工作时间≥72小时。

六、总结

本设计基于STM32实现了高可靠性、低误报的光电感烟火灾报警器,符合GB 4715-2024标准。系统通过复合滤波算法解决了光电信号的噪声与漂移问题,通过动态阈值调整适应了不同场景需求,通过污染检测保证了长期稳定性。

http://www.jsqmd.com/news/581487/

相关文章:

  • 全自动智能测量设备品牌实力测评:2026年选购指南 - 品牌推荐大师
  • 2026年4月万国官方售后服务中心网点考察报告(新址) - 亨得利官方服务中心
  • 三步突破Cursor限制:开源工具全攻略
  • 没有美国实体如何快速合规用工?找 Safeguard Global 名义雇主 EOR服务商 - 品牌2026
  • nfs介绍与使用
  • 新手零压力上手:用快马ai学习ubuntu24.04基础操作与配置
  • 如何确保Kando在Windows上的安全性?完整代码签名验证指南
  • 保温钢管怎么选?2026年优质厂家推荐清单,螺旋管/防腐钢管/焊接钢管/TPEP防腐钢管,保温钢管直销厂家找哪家 - 品牌推荐师
  • 2026年陕西做智慧食堂会员管理公司排名,哪家口碑好 - myqiye
  • TaskingAI Docker部署终极指南:5分钟快速搭建AI应用开发平台
  • 如何实现八大网盘直链下载:终极解决方案指南
  • 提升中文编辑效率:notepad--本土化配置指南
  • 高效批量下载B站视频:BilibiliDown智能工具全攻略
  • 快马平台助力Nodejs后端服务快速原型验证,十分钟搭建可运行API
  • 2025 年 7 个压箱底 VS Code 插件,都是神器!
  • 西安智慧食堂管理综合服务,好用的公司有哪些? - mypinpai
  • 构建私有化ChatGPT:基于Nanbeige 4.1-3B与内网穿透的安全对话系统
  • 5步实现文档自动化下载:让kill-doc提升你的文档获取效率
  • RMBG-2.0开源镜像免配置教程:24GB显卡5分钟跑通透明背景生成
  • Z-Image Atelier 高可用部署架构设计:基于内网穿透的本地开发与测试
  • 百度网盘秒传工具:跨平台文件极速分享解决方案
  • 扫描仪哪个牌子比较好?选型避坑与推荐 - 工业三维扫描仪评测
  • 开源工具解决华硕笔记本性能配置难题:效率提升解决方案
  • 公司代办注册公司流程是怎样,壹隆注册公司性价比高不 - 工业推荐榜
  • 2025届学术党必备的五大降AI率神器推荐榜单
  • Kando数据持久化终极指南:如何完美保存和同步菜单配置
  • 开源阅读鸿蒙版:5分钟打造你的个性化数字图书馆
  • 谷歌时隔一年发布“更加开源“的 Gemma 4,意图何为?
  • Windows 相关设置
  • 终极指南:Supercookie自定义路由生成与用户向量计算的深度优化技巧