【STM32项目开源】基于STM32智能火灾报警系统 烟雾温湿度+光照检测+ESP8266 WiFi远程

家用烟雾温湿度监测|光照环境检测|WiFi远程控制|自动排烟通风

本文为完整开源项目详解文档,全面覆盖STM32智能火灾报警系统的项目背景、系统架构、硬件选型、软件设计、功能实现、调试方法及全套资料包。内容结构规范、描述详细、逻辑清晰,可直接用于课程设计、毕业设计、嵌入式学习与实际项目开发。系统以高稳定性、高实用性为设计目标,可实现24小时不间断室内环境监测,具备异常自动报警、自动排烟、远程监控等核心功能,适用于家庭、商铺、办公室、仓库、宿舍等多种室内安全防护场景,是智慧安防与物联网技术结合的典型应用案例。

目录

  1. 一、项目设计背景与意义
            
  1. 1.1 设计背景
  1. 1.2 设计意义
  1. 二、实物效果展示
  1. 2.1 实物整体效果图
  1. 2.2 实物功能演示视频
  1. 三、系统硬件功能详解
  1. 3.1 系统核心功能描述
  1. 3.2 完整元器件清单
  1. 四、系统结构框图与软件工作流程
           
  1. 4.1 硬件系统总框图
  1. 4.2 软件主流程图
  1. 五、硬件PCB设计说明
  1. 六、系统软件程序设计
  1. 七、项目完整资料包内容
  1. 八、总结与扩展方向

一、项目设计背景与意义

1.1 设计背景

在现代家庭、办公场所、小型商铺等室内环境中,各类电器设备、线路、插座、充电器、取暖器、厨房灶具等使用频率极高。长期运行易出现线路老化、短路打火、电器过热、易燃物被引燃等安全隐患,极易引发火灾事故。传统火灾检测设备大多仅具备本地蜂鸣报警功能,无环境数据实时显示、无自动排烟排风措施、无远程通知与远程控制能力。一旦发生险情,无法第一时间提醒人员,也无法自动启动应急措施降低危险程度,存在明显的安全漏洞。

随着物联网、嵌入式技术、无线通信技术的快速普及,智慧家居、智能安防设备逐渐走进日常生活。将多传感器检测、自动控制、WiFi无线传输、移动APP监控等技术融合到火灾报警系统中,可实现全天候自动监测、异常实时报警、险情自动处置、状态远程查看,大幅提升室内安全防护等级,降低火灾带来的人身与财产损失。在此背景下,设计一款低成本、高可靠、易使用、可扩展的STM32智能火灾报警系统具有重要的现实意义与应用价值。

1.2 设计意义

本项目以STM32单片机为核心控制器,结合温湿度、烟雾浓度、光照强度多维度传感器,构建一套集实时监测、本地显示、自动报警、自动排烟、远程控制于一体的智能化火灾安全防护系统。系统可实时采集室内环境关键数据,根据预设阈值自动判断安全状态,在温度过高、烟雾浓度超标等危险情况出现时,立即启动声光报警提醒周围人员,并自动打开风扇进行排烟通风,延缓险情扩散。

同时,系统通过ESP8266 WiFi模块将数据上传至机智云物联网平台,用户可通过手机APP随时随地查看室内温度、湿度、烟雾浓度、光照强度等实时数据,支持远程手动控制风扇开关,实现无人值守下的安全监控。

从工程实践角度,本项目融合了单片机外设驱动、多传感器数据采集、模数转换、OLED显示、无线通信、云端接入、自动控制逻辑、24C02数据存储、看门狗抗干扰等多项嵌入式核心技术,能够全面锻炼开发者的硬件识图、电路搭建、程序编写、系统调试与项目整合能力,具有极高的学习与教学价值。

二、实物效果展示

2.1 实物整体效果图

2.2 实物功能演示视频

【开源】STM32智能火灾报警系统https://www.bilibili.com/video/BV1BV9bByEbX/

三、系统硬件功能详解

3.1 系统核心功能描述

本系统以STM32F103C8T6为主控芯片,搭配ESP8266 WiFi模块、多类型传感器、执行设备与显示模块,实现一体化智能火灾监测与控制,具体功能如下:

  1. 多维度环境数据实时采集:系统可同时采集四路关键环境信息,包括环境温度、环境湿度、烟雾气体浓度、环境光照强度,数据采集稳定、响应速度快,能够全面反映室内安全状态。
  1. 本地OLED屏幕实时显示:采用0.96寸I2C通信OLED显示屏,无背光、低功耗、显示清晰,可实时展示温度值、湿度值、烟雾浓度值、光照强度值、系统工作模式、报警状态等信息,支持按键切换显示页面,方便现场查看与调试。
  1. 自动/手动双工作模式:系统支持自动模式与手动模式自由切换,可通过本地按键或手机APP进行控制。自动模式:系统完全自主运行,根据用户预设的温度上限、烟雾上限进行判断,一旦检测到超标,对应元件进行工作。手动模式:关闭自动判断逻辑,用户可通过手机APP远程手动开启或关闭排烟风扇,满足日常通风、主动换气等需求。
  1. 声异常报警:当系统判断出现烟雾超标等危险情况时,立即驱动蜂鸣器发出持续报警声,提醒效果明显,避免因环境嘈杂或距离较远而忽略报警。
  1. 自动排烟通风控制:在自动模式下,一旦触发报警条件,系统会立刻驱动打开排烟风扇,对室内烟雾、热气进行排出,降低室内有害气体浓度与环境温度,为人员撤离与险情处理争取时间。
  1. WiFi无线传输与云端上传:通过ESP8266-01S WiFi模块连接局域网,将采集到的所有环境数据实时上传至OneNET或机智云物联网平台,数据传输稳定、延迟低,支持24小时不间断在线。
  1. 手机APP远程监控与控制:用户通过手机APP可远程查看室内各项环境数据实时值远程切换系统工作模式,远程手动控制风扇开关,远程修改报警阈值,真正实现随时随地掌控室内安全状况。
  1. 阈值可设置与掉电保存:支持通过本地按键或手机APP修改温度、湿度、烟雾报警阈值,修改后自动存入STM32的24C02,断电重启后阈值不丢失,无需每次上电重新设置。
  1. 高稳定性运行保障:系统加入硬件看门狗与软件看门狗机制,有效防止程序跑飞、死机等异常情况,确保在长期不间断工作中保持稳定可靠,满足实际使用场景需求。

3.2 完整元器件清单

  • 主控模块:STM32F103C8T6最小系统板(核心处理单元,性价比高、资源充足)
  • 无线通信:ESP8266-01S WiFi模块(实现网络连接与数据上传)
  • 显示模块:0.96寸IIC接口OLED显示屏(本地数据实时显示)
  • 温湿度采集:DHT11数字温湿度传感器(采集室内温度与湿度)
  • 烟雾检测:MQ-2烟雾气体传感器(检测烟雾、液化气、天然气等可燃气体)
  • 光照检测:光敏电阻/模拟光照传感器(采集环境光照强度,辅助环境监测)
  • 报警模块:有源蜂鸣器+LED指示灯
  • 执行设备:直流散热风扇+继电器驱动模块(自动/手动排烟通风)
  • 人机交互:独立按键(模式切换、页面切换、阈值调整、手动控制)
  • 电源模块:Micro-USB 5V供电、防反接保护电路
  • 辅助配件:杜邦线、面包板/PCB、固定支架等

四、系统结构框图与软件工作流程

4.1 硬件系统总框图

系统以STM32F103C8T6为控制核心,各模块分工明确、协同工作:

DHT11温湿度传感器→采集信号→STM32主控

MQ-2烟雾传感器→采集信号→STM32主控

光照传感器→采集信号→STM32主控

独立按键→输入指令→STM32主控

STM32→驱动→OLED显示屏(数据显示)

STM32→驱动→蜂鸣器、LED(报警输出)

STM32→驱动→风扇(排烟输出)

STM32→串口通信→ESP8266→上传云端→手机APP

4.2 软件主流程图

  1. 系统上电复位
  1. 各模块初始化:系统时钟、看门狗、OLED、DHT11、MQ2、光照、按键、蜂鸣器、LED、继电器、风扇、USART、ESP8266
  1. 从FLASH读取历史保存的报警阈值
  1. 物联网平台初始化与配网连接
  1. 进入主循环,持续执行以下流程:
            
  • 喂狗,保证程序稳定运行
  • 采集温湿度、烟雾浓度、光照强度数据
  • 数据处理与滤波,提高显示与判断准确性
  • OLED屏幕刷新显示所有数据与状态
  • 将数据上传至云端平台,同步到手机APP
  • 判断当前系统工作模式
                
  • 自动模式:判断温度、烟雾是否超过阈值;超标:启动声光报警+打开风扇排烟;正常:关闭报警与风扇
  • 手动模式:监听云端APP指令与本地按键指令;收到开风扇指令:打开风扇;收到关风扇指令:关闭风扇
  • 按键扫描处理:模式切换、页面切换、阈值增减
  • 云端数据处理与指令接收
  1. 循环执行,实现24小时不间断监测

五、硬件PCB设计说明

本系统PCB电路板采用Altium Designer软件设计,布局合理、布线规范、抗干扰能力强,可直接用于打样生产,适合批量制作与实际安装。

PCB板特点:

  • 尺寸小巧,结构紧凑,适合安装在室内墙壁、配电箱等位置
  • 标准化接口设计,传感器、WiFi模块、风扇、按键全部采用插座式连接,拆装方便
  • 电源部分增加防反接、防过流保护电路,保障主控与模块安全
  • 预留SWD下载接口,方便程序下载与在线调试
  • 继电器驱动区域与弱电信号区分开,减少电磁干扰
  • 丝印清晰标注元器件名称、接口功能,便于调试与维护

(此处插入PCB顶层图、底层图、3D效果图,展示电路板整体设计)

六、系统软件程序设计

本项目软件基于STM32标准库开发,采用模块化编程思想,将各个功能独立封装,代码结构清晰、注释详细完整、可读性强,便于学习、修改与二次开发。

c
#include "stm32f10x.h"
#include "oled.h"
#include "dht11.h"
#include "mq2.h"
#include "ldr.h"
#include "key.h"
#include "beep.h"
#include "led.h"
#include "fan.h"
#include "usart.h"
#include "esp8266.h"
#include "flash.h"
#include "iwdg.h"
#include "gizwits_product.h"
#include "onenet.h"

// 传感器数据结构体
typedef struct {
uint8_t temp; // 环境温度
uint8_t humi; // 环境湿度
uint16_t smoke; // 烟雾浓度
uint16_t light; // 光照强度
} SensorData;

// 报警阈值结构体
typedef struct {
uint8_t temp_max; // 温度报警上限
uint16_t smoke_max; // 烟雾报警上限
} AlarmThreshold;

SensorData sensor;
AlarmThreshold threshold;

uint8_t work_mode = 0; // 0:自动模式 1:手动模式
uint8_t alarm_flag = 0; // 报警标志
uint8_t menu_page = 1; // OLED显示页面

int main(void)
{
// 系统与外设初始化
IWDG_Init();
OLED_Init();
KEY_Init();
BEEP_Init();
LED_Init();
FAN_Init();
DHT11_Init();
MQ2_Init();
LDR_Init();
USART1_Init(115200);
ESP8266_Init();

// 从FLASH读取掉电保存的阈值
threshold.temp_max = FLASH_R(0x0801F000);
threshold.smoke_max = FLASH_R(0x0801F002);

// 物联网平台初始化
userInit();
gizwitsInit();

while(1)
{
// 看门狗喂狗
IWDG_ReloadCounter();

// 传感器数据采集
DHT11_ReadData(&sensor.humi, &sensor.temp);
sensor.smoke = MQ2_Read();
sensor.light = LDR_Read();

// OLED显示数据与状态
OLED_ShowAllData(sensor, work_mode, alarm_flag);

// 数据上传云端
upload_data_to_cloud(sensor);

// 工作模式处理
if(work_mode == 0)
{
// 自动模式:判断报警条件
if(sensor.temp > threshold.temp_max || sensor.smoke > threshold.smoke_max)
{
alarm_flag = 1;
BEEP_ON();
LED_ON();
FAN_ON();
}
else
{
alarm_flag = 0;
BEEP_OFF();
LED_OFF();
FAN_OFF();
}
}
else
{
// 手动模式:APP/按键控制风扇
app_key_control_fan();
}

// 本地按键功能处理
key_scan_process();

// 云端指令处理
gizwitsHandle();
}
}

程序设计亮点

  1. 模块化驱动:OLED、传感器、WiFi、风扇、报警等功能相互独立,便于单独调试与替换。
  1. 看门狗抗干扰:软硬件结合,保证系统长时间稳定运行。
  1. 阈值掉电保存:使用内部FLASH存储,无需外接存储芯片,节省成本。
  1. 双云平台兼容:可快速切换OneNET或机智云,适配不同使用习惯。
  1. 自动控制逻辑:判断条件清晰,响应迅速,提高系统安全性。
  1. 代码注释完整:关键逻辑与函数均有中文注释,新手也能快速理解。

七、项目完整资料包内容

为方便学习者快速上手、完成开发与毕业设计,本项目提供全套资料包,获取方式见文末说明:

  1. 完整Keil5工程源码(带详细中文注释,可直接编译下载)
  1. 硬件原理图+PCB源文件(Altium Designer格式,可直接打样)
  1. 全套元器件采购清单(含型号、参数、参考价格)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐