【proteus仿真设计】基于 STM32 单片机火灾监测报警系统设计(仿真图+程序)

一、项目概述

本系统以 STM32 单片机作为主控单元,完成环境温度、烟雾浓度采集,实现火灾隐患监测。系统搭载 DS18B20 温度传感器采集环境温度,配合 PCF8591 模数转换芯片读取烟雾传感器模拟信号;通过 OLED12864 显示屏实时展示温度、烟雾浓度数据;支持按键自定义报警阈值;当温度或者烟雾浓度超出设定阈值时,蜂鸣器与红色 LED 触发声光报警,继电器驱动灭火装置动作;同时通过串口将监测数据上传虚拟终端,便于上位机查看记录。本方案可用于课程设计、毕设仿真验证,在 Proteus 环境下完成全部硬件仿真,无需实物硬件即可验证整套逻辑。

系统功能:

  1. DS18B20 采集环境温度,烟雾传感器配合 PCF8591 采集烟雾浓度;
  2. OLED12864 实时显示温度、烟雾浓度数值;
  3. 4 个功能按键:阈值加、阈值减、设置模式、确认,自定义火灾报警阈值;
  4. 出现火灾隐患时,LED 亮、蜂鸣器鸣叫,继电器启动灭火装置;
  5. 串口输出监测数据,在虚拟终端打印温度、烟雾信息。

二、Proteus 硬件电路解析

1. STM32 主控最小系统

主控芯片 STM32,具备复位引脚、BOOT 启动配置引脚,提供完整主控运行基础,外设分别挂载到 PA、PB 端口,完成传感器、显示、按键、报警、继电器外设驱动。

2. 传感器采集电路

  • DS18B20 温度传感器:单总线数字温度传感器,PB15 引脚通信,直接输出温度数字信号,外围搭配上拉电阻,完成环境温度采集。
  • PCF8591 模数转换模块:I2C 通信,PB3、PB4 作为 SCL、SDA;烟雾传感器输出模拟电压送入 PCF8591 的 AIN0 通道,将模拟量转换为数字量,换算得到烟雾浓度。

3. OLED 显示电路

OLED12864C 显示屏,用来直观显示温度、烟雾浓度,界面同步展示报警阈值参数,实时刷新采集到的监测数据。

4. 按键模块

四路独立按键,实现阈值增加、阈值减少、进入设置模式、参数确认保存,用户可以自主设定温度、烟雾的报警触发门限。

5. 声光报警与灭火执行电路

三极管驱动蜂鸣器,PA15 控制;红色 LED 作为光报警;当检测到火灾条件,主控输出信号控制继电器 RL1 吸合,驱动外接灭火装置,完成应急处置。

6. 串口通信模块

PA9 (TX)、PA10 (RX) 对接 Proteus 虚拟终端,循环打印系统标题、温度、烟雾浓度数据,实现数据上传。

三、系统工作原理

  1. 数据采集:DS18B20 读取现场温度;烟雾传感器输出模拟电压,经 PCF8591 进行 AD 转换,计算烟雾浓度值;
  2. 阈值配置:按下设置按键进入参数调节模式,加减按键修改报警阈值,确认按键保存参数;
  3. 判断报警逻辑 :循环对比采集值和设定阈值。温度超阈值 或者 烟雾浓度超阈值,立即触发蜂鸣器、LED 声光报警,继电器闭合启动灭火机构;参数低于阈值,报警与灭火继电器关闭;
  4. 数据输出:OLED 刷新界面显示,串口持续上传数据至虚拟终端。

四、伪代码片段

复制代码
#include "stm32f10x.h"
#include "oled.h"
#include "ds18b20.h"
#include "pcf8591.h"

uint16_t temp_val,smoke_val;
uint16_t temp_thresh=60,smoke_thresh=50;	//默认报警阈值

void GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
	//蜂鸣器、LED、继电器IO初始化
}

void USART_SendData(uint16_t t,uint16_t s)
{
	printf("火灾监测报警系统设计\r\n温度:%d\r\n烟雾浓度:%d\r\n",t,s);
}

int main(void)
{
	GPIO_Config();
	OLED_Init();
	DS18B20_Init();
	PCF8591_Init();
	USART_Config();
	while(1)
	{
		temp_val = DS18B20_GetTemp();
		smoke_val = PCF8591_ReadADC(0);
		
		OLED_Show(temp_val,smoke_val);
		USART_SendData(temp_val,smoke_val);
		
		//按键阈值处理逻辑
		//报警判断
		if(temp_val>temp_thresh || smoke_val>smoke_thresh)
		{
			BEEP_ON;
			LED_ON;
			RELAY_ON;
		}
		else
		{
			BEEP_OFF;
			LED_OFF;
			RELAY_OFF;
		}
	}
}

五、仿真调试注意事项

  1. PCF8591 为 I2C 器件,注意 SCL、SDA 引脚不要接反,否则读不到 ADC 数据;
  2. DS18B20 单总线必须接上拉电阻,会出现温度读取错误、数据乱跳;
  3. OLED 屏幕 I2C 地址需要和程序保持一致,避免黑屏不显示;
  4. 继电器不能直接由单片机 IO 驱动,注意三极管驱动电路;
  5. 串口调试确认 TX、RX 引脚,对应虚拟终端,保证数据正常打印输出。

六、项目拓展方向

  1. 增加 ESP8266 模块,火灾报警信息上传云平台,手机远程查看监测数据;
  2. 添加蜂鸣器分级报警,危险程度越高鸣叫频率越快;
  3. 增加历史数据存储,记录发生报警时刻;
  4. 增加多个传感器节点,实现多点位火灾监测。

七、总结

本 STM32 火灾监测报警系统,集成温度采集、烟雾检测、OLED 显示、按键阈值设置、声光报警、继电器灭火执行、串口数据上报功能。整套系统在 Proteus 仿真环境运行稳定,电路结构清晰,适合学习 STM32 的 I2C 外设、单总线传感器、AD 采集、外设驱动开发,也可作为电子专业课程设计、毕业设计参考案例。

通过网盘分享的文件:仿真文件获取.zip 链接: https://pan.baidu.com/s/1V5zzxbpHc_fRqfGIzSdLfg?pwd=6666 提取码: 6666

相关推荐
一条破秋裤25 分钟前
STM32 学习笔记:OLED 调试工具与 Keil 在线调试
笔记·stm32·学习
一条破秋裤1 小时前
STM32 学习笔记:中断系统与 EXTI 外部中断
笔记·stm32·学习
jianqiang.xue1 小时前
低功耗产品架构专项优化:电池供电设备休眠、唤醒、漏电流、待机功耗极致优化
stm32·单片机·mcu·物联网·架构·esp32
Mount2561 小时前
STM32CubeIDE使用教程(自用)
stm32·嵌入式硬件
ACP广源盛139246256731 小时前
端侧 AI 硬件架构实践@ACP#中端边缘整机 PCIe 扩展与 IX7012 器件分析
大数据·数据库·人工智能·嵌入式硬件·开源·硬件架构
ACP广源盛139246256731 小时前
端侧 AI 硬件架构探讨@ACP#多外设高密度整机 PCIe 扩展与 IX7024 器件分析
大数据·数据库·人工智能·嵌入式硬件·开源·硬件架构
智购科技自动售货机工厂2 小时前
2026自动售货机异常重启根因分析:从日志挖掘到内存取证的技术实践~YH
开发语言·数据库·单片机·嵌入式硬件·人机交互
Json____2 小时前
宿舍安全卫生检查系统:Node 全栈开发实战
java·前端·数据库·毕业设计·课程设计·毕设·wwwoop.com
jianqiang.xue2 小时前
专栏简介:《嵌入式 AI 智能体设计实战》
人工智能·stm32·单片机·物联网·架构·esp32