基于51单片机的厨房温湿度烟雾CO粉尘多参数环境监测报警系统设计
点击链接下载资料:https://download.csdn.net/download/m0_51061483/92081438
1. 系统功能概述
本系统是一款基于51单片机的多参数厨房环境监测与报警系统,旨在对厨房中关键的空气质量指标进行实时监控与安全预警。系统主要监测温度、湿度、烟雾浓度、一氧化碳(CO)浓度和粉尘浓度等环境参数,并通过LCD1602液晶显示屏实时显示当前数据。当任一参数超出设定阈值时,系统立即启动蜂鸣器与指示灯报警,提示用户采取相应措施,从而有效防止厨房火灾、中毒及空气污染等安全隐患。
系统整体采用模块化设计思路,由AT89C52单片机作为主控核心,配合ADC0832模数转换芯片实现模拟信号采集,集成MQ-2烟雾传感器、MQ-7一氧化碳传感器、粉尘传感器、DHT11温湿度传感器、LCD显示模块、报警模块及按键模块等电路组成一个完整的环境安全监控系统。
该系统不仅具备多传感器融合测量功能,还支持阈值设置与数据报警功能,响应速度快,适合厨房、餐饮店、实验室等对空气安全要求较高的场所应用。
2. 系统电路设计
系统的电路部分主要分为主控模块、传感器采集模块、模数转换模块、显示模块、报警模块、按键模块及电源模块七个部分。各模块间通过单片机协调工作,完成信号采集、数据处理与状态显示等功能。
2.1 主控模块——AT89C52单片机
系统核心控制器选用AT89C52单片机。该单片机具有强大的I/O口资源和稳定的定时中断功能,能够同时处理多路传感器信号。
其主要功能包括:
- 通过ADC0832读取传感器的模拟电压信号并进行数据处理;
- 根据检测数据与预设阈值进行比较,判断是否触发报警;
- 控制LCD1602显示监测数值;
- 响应按键输入,修改报警阈值;
- 控制蜂鸣器与LED灯的报警逻辑。
单片机的P1口与LCD1602连接作为数据口,P2口控制蜂鸣器与指示灯,P3口部分引脚作为串行接口与ADC0832通讯,P0口与DHT11温湿度传感器及按键接口相连。
2.2 模数转换模块——ADC0832
由于MQ系列气体传感器与粉尘传感器输出为模拟信号,因此需要模数转换芯片将模拟信号转化为数字信号供单片机处理。本系统采用ADC0832作为模数转换器,它具有两路8位输入通道,可灵活地完成多通道采样。
ADC0832与AT89C52采用SPI时序通信,通过CS、CLK、DI、DO四条信号线进行数据传输。该芯片精度高、转换速度快,能够稳定采集各传感器的模拟输出电压。
其主要连接方式为:
- CS → P3.2(片选控制)
- CLK → P3.4(时钟控制)
- DI → P3.5(输入数据线)
- DO → P3.6(输出数据线)
单片机通过周期性采样获得各传感器的电压值,并根据公式计算对应的物理量,如ppm浓度或mg/m³粉尘值。
2.3 烟雾与CO传感器模块
MQ-2 烟雾传感器
MQ-2是一种常用的可燃气体与烟雾检测传感器,具有高灵敏度与快速响应特性。其内部加热电阻与敏感元件协同工作,能检测到甲烷、丙烷、液化气、烟雾等气体。
当烟雾浓度上升时,传感器输出电压随之升高,经ADC0832转换后送入单片机进行处理。当电压超过设定阈值时,系统判定为“烟雾超标”,触发蜂鸣器报警。
MQ-7 一氧化碳传感器
MQ-7主要用于检测空气中CO浓度,其原理与MQ-2类似。系统实时读取其输出电压值,并依据标定曲线计算CO浓度。当CO浓度过高时(如超过50ppm),系统将执行报警动作,提示用户及时通风。
2.4 粉尘检测模块
粉尘检测模块选用GP2Y1010AU0F型光学粉尘传感器。该传感器通过红外光散射原理检测空气中粉尘浓度,输出模拟电压信号。
单片机通过ADC0832采样粉尘传感器的输出,并利用经验公式将电压转换为粉尘浓度(mg/m³)。当浓度超过阈值时,系统启动报警机制。粉尘监测可有效防止厨房油烟与颗粒物过多造成的空气污染问题。
2.5 温湿度检测模块
温湿度检测模块采用DHT11数字温湿度传感器。DHT11内部集成温湿度采集芯片,输出单总线数字信号,具有高稳定性与抗干扰能力。
单片机周期性读取温湿度数据,当温度或湿度超出安全范围(如温度>60℃或湿度>90%)时,系统触发报警并在LCD上显示相应提示。
2.6 显示模块——LCD1602
LCD1602液晶显示模块用于实时显示各传感器采集的参数信息。显示内容包括:
T:28℃ H:65%
SMK: 0.34V
CO : 0.29V
DST: 0.20V
该显示方式简洁直观,用户可在第一行查看温湿度信息,第二行查看烟雾、CO及粉尘检测值。LCD的控制端RS、RW、E分别连接单片机的P2.0、P2.1、P2.2口,数据端连接P1口。
2.7 报警与按键模块
当检测到任一参数超出预设阈值时,系统立即激活蜂鸣器报警与LED指示灯闪烁。蜂鸣器由P3.7控制,LED灯由P2.3驱动。报警模块可在多参数条件下同时响应,保证安全性。
系统还配备按键电路,用户可通过按键调整报警阈值,例如:
- K1:设置温度报警阈值
- K2:设置烟雾报警阈值
- K3:设置CO报警阈值
- K4:设置粉尘报警阈值
按键的输入通过查询方式读取,单片机在检测到按键按下后进入参数设置模式,新的阈值将被写入EEPROM中保存。
3. 系统程序设计
系统程序采用模块化结构设计,主要分为主程序、传感器采集模块、ADC采样模块、LCD显示模块、报警处理模块和按键设置模块。
3.1 主程序设计
主程序负责系统初始化、数据采集与状态控制。在系统上电后,依次完成端口初始化、LCD显示初始化、阈值读取、传感器采集与报警判断等过程。
主循环结构如下:
#include <reg52.h>
#include "lcd1602.h"
#include "adc0832.h"
#include "dht11.h"
#include "delay.h"
float Temp, Humi;
float Smoke, CO, Dust;
float Thres_Temp=60, Thres_Smoke=0.5, Thres_CO=0.4, Thres_Dust=0.35;
void main() {
LCD_Init();
ADC0832_Init();
LCD_ShowString(0,0,"Kitchen Monitor");
Delay_ms(1000);
LCD_Clear();
while(1) {
DHT11_Read(&Temp, &Humi);
Smoke = ADC0832_Read(0);
CO = ADC0832_Read(1);
Dust = ADC0832_Read(2);
Display_Data();
Check_Alarm();
Delay_ms(500);
}
}
该主循环不断采集各传感器数据,并调用显示与报警函数进行实时更新。
3.2 传感器采集与ADC模块程序
传感器采集模块负责将模拟信号通过ADC0832转换为数字信号。
float ADC0832_Read(unsigned char ch) {
unsigned char dat=0;
float voltage=0;
dat = ADC0832_Get(ch);
voltage = (float)dat * 5.0 / 255.0; // 转换为电压
return voltage;
}
该函数通过SPI协议读取指定通道的ADC值,并换算为电压,供后续判断使用。
3.3 温湿度采集模块
DHT11通过单总线通信协议向单片机传输温湿度数据。
void DHT11_Read(float *temp, float *humi) {
unsigned char buf[5];
DHT11_Start();
DHT11_Receive(buf);
*humi = buf[0];
*temp = buf[2];
}
采集的温湿度值将显示在LCD第一行,并参与报警判断。
3.4 显示模块程序
显示模块用于实时刷新LCD内容。
void Display_Data() {
LCD_ShowString(0,0,"T:");
LCD_ShowFloat(2,0,Temp);
LCD_ShowString(8,0,"H:");
LCD_ShowFloat(10,0,Humi);
LCD_ShowString(0,1,"S:");
LCD_ShowFloat(2,1,Smoke);
LCD_ShowString(8,1,"C:");
LCD_ShowFloat(10,1,CO);
}
通过LCD实时显示各监测数据,方便用户直观了解厨房环境状况。
3.5 报警模块程序
报警模块根据采集值与设定阈值进行逻辑判断,当任一参数超标即触发报警。
void Check_Alarm() {
if(Temp > Thres_Temp || Smoke > Thres_Smoke ||
CO > Thres_CO || Dust > Thres_Dust) {
P2 |= 0x08; // LED亮
P3 |= 0x80; // 蜂鸣器响
LCD_ShowString(0,1,"!ALARM DETECTED!");
} else {
P2 &= ~0x08;
P3 &= ~0x80;
}
}
报警函数保证系统在任何异常情况下均能立即发出声光信号,提高安全性。
3.6 按键与阈值设置模块
按键模块用于修改报警阈值。
void Key_Set() {
if(K1 == 0) { Thres_Temp += 5; }
if(K2 == 0) { Thres_Smoke += 0.1; }
if(K3 == 0) { Thres_CO += 0.1; }
if(K4 == 0) { Thres_Dust += 0.1; }
}
用户可根据厨房环境灵活调整阈值,使系统适应不同使用场景。
4. 系统总结
本设计实现了一个功能完善、性能稳定的多参数厨房环境监测与报警系统。系统基于AT89C52单片机,通过ADC0832采集模拟信号,结合多种传感器实现对温度、湿度、烟雾、CO及粉尘浓度的实时监测,并通过LCD1602显示、蜂鸣器与指示灯报警的方式实现安全防护。
系统的主要优点包括:
- 多参数同步检测,监测全面;
- 模块化设计,结构清晰,扩展性强;
- 实时报警机制,响应迅速;
- 支持阈值调节,提高实用性与灵活性。
整体方案结构紧凑,能够在实际厨房环境中长期稳定运行,为智能家居与环境安全监测提供了可靠的技术支持。
139