当前位置:网站首页>51单片机的室内环境监测系统,MQ-2烟雾传感器和DHT11温湿度传感器,原理图,C编程和仿真
51单片机的室内环境监测系统,MQ-2烟雾传感器和DHT11温湿度传感器,原理图,C编程和仿真
2022-06-30 03:21:00 【蒋宇智】
设计要求
1.以51单片机为控制核心,利用温湿度传感器和烟雾传感器完成对室内环境数据的采集和处理;
2.LCD1602液晶实时显示温湿度、烟雾浓度等数据;
3.用户能够通过按键设置温湿度上下限报警阀值和烟雾报警阀值;
4.当室内温湿度不在设定范围内、烟雾浓度超限时,蜂鸣器和LED灯提供声光报警;
系统概述
本文设计了一款基于MQ-2和DHT11传感器的室内温湿度-烟雾报警系统,它可以实现对室内温湿度、可燃气/烟雾浓度的实时监测和显示,并提供预警值设定和声光报警功能。
系统硬件主要由AT89C52单片机最小系统、MQ-2烟雾传感器模块、DHT11温湿度传感器模块、LCD1602显示模块、按键模块和声光报警模块组成,系统框架如下。
其中,AT89C52单片机作为整个系统的控制核心,用于接收、处理由传感器采集的信息,并将处理后的信息发送到LCD进行实时显示。
当室内温湿度、可燃气或烟雾浓度超出用户设定的阀值时,相关LED指示灯点亮,蜂鸣器发声。
仿真电路图
原理图
仿真分析
打开名为室内温湿度烟感监测.pdsprj的仿真文件,双击单片机,在弹出的对话窗口中点击黄色文件夹小图标,加载Monitor.hex文件(位于C程序文件夹内),运行仿真,效果如下。
由图可知,LCD第1行显示Monitor System(监控系统),第2行显示当前室内温度为27℃,湿度为55%RH,烟雾浓度为14%。LCD显示结果与传感器上的数值一致,表示数据采样正确。
通过DHT11传感器上的3个红色小箭头来模拟室内温湿度的改变。前两个红色小箭头用于数值的增减,后一个小箭头用于温度和湿度的切换。
由于Proteus仿真没有MQ-2烟雾传感器元件,而MQ-2传感器的原理是把烟雾浓度直接转化为电阻的变化,所以这里用滑动变阻器来替代它。
通过点击滑动变阻器RV2上下红色箭头,模拟室内烟雾浓度的改变。
例如,我们调整室内温度为31℃,湿度为48%RH,烟雾浓度为7%,结果如下。
用户可通过调整键、加键和减键设置温湿度上下限报警阀值和烟雾报警阀值。
点击调整键,系统进入温湿度上下限、烟雾报警阀值设置界面,如下图所示。其中T代表温度,H代表湿度,S代表烟雾浓度。
系统默认的温度范围为:20-35℃,湿度范围为:40-85%RH,烟雾报警阀值为:15%。
进入设置界面后,温度下限值光标闪烁,此时可通过加/减键对其数值进行调整,调整完成后,继续点击调整键,温度上限值光标闪烁,这时可对上限值进行调整。
依次类推,全部参数都设置好后,再次点击调整键,即可退出设置界面,回到系统显示界面。
例如,我们设置温度范围为28-36℃,湿度范围为40-65%RH,烟雾报警阀值为5%。
当系统检测到室内温湿度不在设定的上下限范围内或烟雾浓度大于报警阀值时,蜂鸣器鸣叫,对应LED灯点亮。当室内环境恢复正常后,报警解除。
返回显示界面后,系统监测到当前室内烟雾浓度为7%,大于设定的5%,此时烟感报警灯点亮,蜂鸣器发声,提醒用户注意。
综上所述,仿真运行效果满足设计要求。
部分C代码
while(KeySet_P) // “设置键”没有被按下,则一直处于烟雾限值的设置
{
if(KeyDown_P==0) // 判断 “减按键“ 是否被按下
{
if(AlarmSK>0) // 只有当烟雾限值大于0时,才能减1
AlarmSK--;
LcdGotoXY(0,14); // 重新刷新显示更改后的烟雾限值
LcdPrintNum(AlarmSK);
LcdGotoXY(0,15); // 重新定位闪烁的光标位置
DelayMs(350);
while(!KeyDown_P);
}
if(KeyUp_P==0) // 判断 “加按键“ 是否被按下
{
if(AlarmSK<99) // 只有当烟雾限值小于99时,才能加1
AlarmSK++;
LcdGotoXY(0,14); // 重新刷新显示更改后的烟雾限值
LcdPrintNum(AlarmSK);
LcdGotoXY(0,15); // 重新定位闪烁的光标位置
DelayMs(350); // 延时
while(!KeyUp_P);
}
}
LcdWriteCmd(0x0C); // 取消光标闪烁
LcdShowInit(); // 液晶显示为检测界面的
DelayMs(10); // 去除按键按下的抖动
while(!KeySet_P); // 等待按键释放
DelayMs(10); // 去除按键松开的抖动
资料内容
(1)基于MQ-2和DHT11的室内温湿度烟雾报警系统设计论文;
(2)Proteus8.6仿真;
(3)C程序;
(4)AD原理图;
(5)Visio流程图;
(6)参考资料;
(7)元器件清单;
资料图





重要的事情说一遍!!!
由于室内环境监测系统设计是我的原创设计,获取全套资料,
请搜索查看我的【公】(众*)“号”:交院小智
边栏推荐
- 行政路线编码 字母+数字的排序方式
- HOOK Native API
- Mathematical solution of Joseph Ring
- 快速排序、聚簇索引、尋找數據中第k大的值
- WPF Initialized事件在.cs中绑定不被触发的原因
- &nbsp; Difference from spaces
- If you can tell whether the external stock index futures trading platform I am trading is formal and safe?
- Prompt learning a blood case caused by a space
- 华为面试题: 高矮个子排队
- O & M (20) make and start USB flash disk and install win10
猜你喜欢
![[live broadcast notes 0629] Concurrent Programming II: lock](/img/5c/42f5c9a9969b4d2bb950a7caac5555.png)
[live broadcast notes 0629] Concurrent Programming II: lock

【十分钟】manim安装 2022

O & M (20) make and start USB flash disk and install win10
![[practical skills] how to write agile development documents](/img/38/4bab396891ce3cc42595ae8cfd45ce.png)
[practical skills] how to write agile development documents

简单自定义MVC优化

What are outer chain and inner chain?

简单自定义mvc

X Book 6.97 shield unidbg calling method

【实战技能】如何撰写敏捷开发文档

X书6.89版本shield-unidbg调用方式
随机推荐
Deep learning: implementation skills of deep neural network
JS cross reference
Realization of BFS in C language by storing adjacency matrix of graph
Shell counts all strings before the last occurrence of a string
问题记录:fel_lib.c:26:10: fatal error: libusb.h: 没有那个文件或目录
通用分页(2)
Regular full match: the password consists of more than 8 digits, upper and lower case letters, and special characters
快速排序、聚簇索引、尋找數據中第k大的值
[live broadcast notes 0629] Concurrent Programming II: lock
正则全匹配:密码由8位以上数字,大小写字母,特殊字符组成
golang bilibili直播弹幕姬
简单自定义mvc
HOOK Native API
Linked list: insert a node in the head
Redis高并发分布式锁(学习总结)
GTK interface programming (I): Environment Construction
Huawei interview question: divide candy
个人PC安装软件
X书6.97版本shield-unidbg调用方式
Huawei interview question: tall and short people queue up