基于51单片机的室内烟雾温度与人体监测报警系统设计
基于51单片机的室内烟雾温度与人体监测报警系统设计
点击链接下载资料:https://download.csdn.net/download/m0_51061483/91698894
1. 系统功能介绍
本系统是一种基于51单片机的多参数环境监测与安全报警系统,主要用于室内安全监测与防护。通过检测环境温度、烟雾浓度以及人体存在情况,系统能够在环境出现异常时及时报警,保障用户的生命与财产安全。
系统以STC89C52单片机为核心控制单元,通过MQ-2烟雾传感器采集空气中的烟雾浓度信息,使用DS18B20数字温度传感器实时监测室内温度,并通过红外人体检测模块判断室内是否有人活动。LCD1602液晶模块用于实时显示温度值、烟雾浓度及检测状态,使用户能够清晰了解环境情况。
此外,系统设有按键模块,可对温度与烟雾浓度的报警阈值进行灵活设置,以适应不同的使用场景。当温度或烟雾浓度超出设定阈值时,系统通过蜂鸣器与LED进行声光报警提示。同时,若检测到室内无人,则系统可自动降低检测频率,节省能耗,体现出良好的智能特性。
该设计广泛适用于家庭、实验室、仓库、地下室等场所,具有安全可靠、操作简单、功能全面等优点,为现代智能家居与安全监控系统提供了基础方案。
2. 系统电路设计
系统硬件部分由单片机最小系统、温度检测模块、烟雾检测模块、人体红外检测模块、显示模块、按键设置模块以及声光报警模块组成。以下分别介绍各部分的设计原理与功能。
2.1 单片机最小系统设计
系统的控制核心为STC89C52单片机,它是一款基于8051内核的高性能微控制器,具有8KB Flash存储、256字节RAM和丰富的I/O接口,能够满足多模块数据采集与控制的需求。
最小系统主要包括以下部分:
- 时钟电路:采用12MHz晶振与两只30pF电容构成振荡电路,确保系统时序稳定。
- 复位电路:由电容、电阻及复位按键组成,用于在系统上电或需要重新启动时对单片机进行复位。
- 电源电路:系统工作电压为5V,通过AMS1117-5.0稳压芯片提供稳定电源,为单片机及外围模块供电。
单片机通过I/O口与各模块连接,实现数据采集、逻辑判断与报警控制功能,是整个系统的核心。
2.2 温度检测模块设计
温度检测部分采用DS18B20数字温度传感器。该传感器采用单总线通信方式,测温范围为-55℃~125℃,精度可达±0.5℃。它可以直接与单片机的任意I/O口相连,通过软件时序实现数据读写。
在实际应用中,DS18B20每隔一定时间将温度信息发送至单片机,单片机通过读取数据寄存器获得当前温度值。由于DS18B20输出的是数字信号,无需外部ADC电路,简化了系统设计。
系统设计中,单片机周期性采样温度数据,当温度值高于用户设定的报警阈值时,系统会触发报警信号,并通过LCD1602实时显示当前温度及报警状态。
2.3 烟雾检测模块设计
烟雾检测部分选用MQ-2气体传感器。MQ-2对烟雾、液化气、甲烷等可燃性气体极为敏感,输出为模拟电压信号。由于单片机无法直接采集模拟信号,系统引入ADC0832模数转换芯片,将模拟电压信号转换为数字信号供单片机读取。
ADC0832为8位精度A/D转换器,采用SPI接口通信方式,具有两路模拟输入通道。本系统将MQ-2传感器输出端连接至其CH0通道,实现烟雾浓度数据采集。
单片机周期性采集ADC0832转换结果,换算成对应的烟雾浓度值。当浓度超过设定阈值时,系统自动执行报警,并在LCD上显示“SMOKE ALERT!”提示信息。
2.4 人体红外检测模块设计
人体检测部分采用HC-SR501红外人体感应模块。该模块基于热释电红外传感器原理,能够感知人体红外辐射的变化。当检测到有人经过时,模块输出高电平信号;无人时输出低电平。
单片机通过读取HC-SR501输出端的电平状态,判断环境中是否存在人体活动。当检测到有人时,系统进入正常监测模式;当检测到无人时,系统进入节能监控状态,仅保持低频检测,以降低功耗。
此外,红外模块还可用于触发报警复位或模式切换,实现更加智能的人机交互。
2.5 显示模块设计
显示部分采用LCD1602液晶显示屏,用于显示温度、烟雾浓度、人体检测状态以及报警阈值信息。LCD1602为16×2字符型显示器,可显示两行共32个字符。
单片机通过4位数据总线方式与LCD1602通信,节省I/O资源。显示内容包括:
- 第一行:显示当前温度与烟雾浓度值;
- 第二行:显示人体状态及系统运行模式(NORMAL/ALERT)。
该模块通过定时刷新实现实时更新,使用户直观了解系统状态。
2.6 按键设置模块设计
按键部分包括三个独立按键:温度阈值设置键、烟雾阈值设置键以及确认键。通过按键操作,用户可以调整报警阈值并存储在EEPROM中,断电后依然保持设置。
单片机通过读取按键电平变化实现功能判断,采用软件延时消抖技术确保按键响应准确。阈值设置完毕后,LCD会显示当前阈值供用户确认。
2.7 声光报警模块设计
报警模块由蜂鸣器与LED指示灯组成。蜂鸣器用于提供声响报警,LED用于提供视觉提示。当温度或烟雾浓度超过阈值时,蜂鸣器鸣响、红色LED闪烁,同时LCD显示报警信息。
在检测到异常消失后,系统自动复位报警状态,重新进入监测模式。
3. 系统程序设计
系统软件采用模块化结构设计,主要分为主程序模块、温度采集模块、烟雾采集模块、人体检测模块、显示模块、按键设置模块与报警控制模块。程序编写语言为C,开发环境为Keil µVision。
3.1 主程序设计
主程序负责系统的初始化、各模块调用与状态判断,是系统运行的总控制单元。其主要流程为:
- 初始化各模块;
- 读取温度与烟雾浓度;
- 检测人体存在;
- 判断是否超出阈值;
- 执行相应报警操作;
- 更新LCD显示。
主程序代码如下:
#include <reg52.h>
#include "lcd1602.h"
#include "ds18b20.h"
#include "adc0832.h"
#include "key.h"
#include "buzzer.h"
#include "pir.h"float temperature;
unsigned int smoke_value;
bit human_exist;
unsigned char temp_threshold = 40;
unsigned char smoke_threshold = 100;void main() {LCD_Init();DS18B20_Init();ADC0832_Init();PIR_Init();Buzzer_Init();Key_Init();LCD_ShowString(1,1,"Env Monitor Sys");while(1) {temperature = DS18B20_ReadTemp();smoke_value = ADC0832_Read(0);human_exist = PIR_Check();Key_Process();Alarm_Check();LCD_Update(temperature, smoke_value, human_exist);DelayMs(500);}
}
该主程序周期性执行传感器采集与报警判断,确保系统实时响应环境变化。
3.2 温度采集程序设计
float DS18B20_ReadTemp() {unsigned char LSB, MSB;int temp;DS18B20_StartConvert();DelayMs(750);DS18B20_ReadScratch(&LSB, &MSB);temp = (MSB << 8) | LSB;return temp * 0.0625;
}
此函数通过单总线读取温度寄存器数据并转换为实际温度值,分辨率为0.0625℃。
3.3 烟雾采集程序设计
unsigned int ADC0832_Read(unsigned char channel) {unsigned int value = 0;// SPI通信读取过程// 读取8位数据,返回烟雾浓度return value;
}
该函数通过SPI协议读取ADC0832的数字信号,并换算为烟雾浓度。
3.4 人体检测程序设计
bit PIR_Check() {if(P3_3 == 1) return 1;else return 0;
}
读取红外模块输出信号,高电平表示检测到人体活动。
3.5 按键设置程序设计
void Key_Process() {if(Key_Read(1)) temp_threshold++;if(Key_Read(2)) smoke_threshold += 5;if(Key_Read(3)) Save_Threshold();
}
通过按键调整温度与烟雾报警阈值,并调用存储函数进行保存。
3.6 报警控制程序设计
void Alarm_Check() {if(temperature > temp_threshold || smoke_value > smoke_threshold) {Buzzer_On();LED_On();} else {Buzzer_Off();LED_Off();}
}
该函数根据实时数据与设定阈值比较结果执行声光报警。
3.7 LCD显示程序设计
void LCD_Update(float temp, unsigned int smoke, bit human) {LCD_ShowString(1,1,"T:");LCD_ShowFloat(1,3,temp);LCD_ShowString(1,10,"C S:");LCD_ShowNum(1,13,smoke,3);LCD_ShowString(2,1,"Human:");LCD_ShowString(2,8,human ? "YES":"NO ");
}
LCD1602实时显示环境温度、烟雾浓度与人体检测状态,使用户随时掌握环境信息。
4. 总结
本设计基于51单片机构建了一个功能完善的室内烟雾、温度与人体监测报警系统。系统通过DS18B20与MQ-2传感器实现环境参数检测,结合红外人体检测模块实现智能判断,能够在温度或烟雾浓度超过阈值时进行声光报警提醒,具有良好的实时性与可靠性。
系统支持报警阈值自定义设置,增强了适应性;LCD实时显示监测数据,使用户能够直观了解环境状态。整个系统硬件结构简洁、软件逻辑清晰、控制策略合理,具有较高的实用价值与推广意义。
本系统不仅可用于家庭防火预警与安全监控,也可作为单片机综合应用的教学实验平台,为智能安防系统设计提供了参考。