基于51单片机的烟雾和温湿度检测控制系统仿真(智能防火系统,火灾报警灭火系统)
wx供重浩:创享日记
对话框发送:单片机防火
获取完整源码源文件+仿真源文件+论文报告+说明文档等

基于51单片机的光照及温湿度检测报警控制系统
由STC89C52单片机+LCD1602液晶显示屏+ADC0832模块+蜂鸣器+DHT11温湿度传感器 +烟雾传感器+LED+按键构成
具体功能:
1、LCD1602液晶第一行显示当前的烟雾值,第二行显示当前的温度和湿度值;
2、可以设置烟雾、温湿度上下限报警值。共4个按键:复位按键、减键、加键、设置键;设定的参数具有掉电保存,保存在STC单片机的内部,上电无需重新设置;
3、当烟雾值高于设定的报警值或温度湿度超出上下限范围,蜂鸣器和指示灯会发出声光报警;
4、当温湿度值低于或高于设定的范围时,相应的指示灯亮,蜂鸣器报警;
5、当同时满足烟雾过高、温度过高、湿度过低三个条件时,控制继电器吸合,以实现电机转动,表示灭火。
protues仿真

AD原理图

论文部分内容
为了实现实时温度、湿度、烟雾显示,及时报警,以降低火灾危害,本文将实现以下设计需求:
(1)精确、实时的检测别墅内的温湿度及烟雾值;
(2)直接、清晰明了的显示测得的温湿度值及烟雾浓度值;
(4)能够实现防火自动报警报警;
(5)操作简单、功能完善、精确度高。
具体如图2-1所示。

如图是本系统的硬件设计方案,具体地,硬件电路由以下模块构成:
(1)单片机最小系统。用于驱动和控制其他模块,以实现整体功能,其以STC89C51单片机为核心芯片,并辅以复位电路和晶振电路。
(2)信号采集电路。负责采集需要监测的数据,本设计中的信号采集电路由温度采集电路和烟雾采集电路、红外采集电路构成。
(3)AD转换电路。由ADC0832模块构成,其与传感器和单片机芯片相连,负责将模拟值转换为数字量,并发送给单片机。
(4)按键和显示电路。显示电路用于显示相关数据,按键电路用于控制芯片实现相关功能,直接与单片机相连。

根据本文设计需求,在第三章硬件电路设计的基础上,需要通过软件编程实现的具体功能:
(1)驱动各个模块工作,实现温度的采集与显示,实现烟雾浓度的采集与AD转换显示;
(2)按键设置功能。实现温湿度报警阈值设置、烟雾报警阈值设置、电机驱动等功能;
(3)报警功能实现。实现温度温度过高、温度过低、湿度过高、湿度过低、烟雾浓度过高的声光报警;
(4)继电器控制电机。当同时满足烟雾过高、温度过高、湿度过低三个条件时,控制继电器吸合,以实现电机转动,表示灭火。其设计流程如图所示。

仿真结果
(1)温湿度值与烟雾值的显示
开始仿真后,系统上电稳定后,单片机开始工作,LCD160显示屏显示如图5-3所示的测得的温度值、烟雾值及湿度值。仿真电路显示稳定,能够实现温湿度值和烟雾值的精确显示。

(2)温湿度报警阈值和烟雾报警阈值的设置
接着,我们按下按键“调节”开始设置温度报警阈值,通过“加键”和“减键”可以实现温度、湿度、烟雾上下限值的加减设置,如图5-4所示是温度上下限值设置界面。

(4)火灾自动报警
接着,我们将测得的温度调至44℃,由于已经超过了温度报警阈值,系统开始报警。如图5-5所示是温度报警的情况,具体地,报警时,温度过高指示灯亮,蜂鸣器响起。

(5)自动灭火
当同时满足烟雾过高、温度过高、湿度过低三个条件时,控制继电器吸合,以实现电机转动,表示灭火。具体如图5-6所示。

经过以上一系列的仿真测试,本文设计的“基于51单片机的智能家居控制系统”能够完成了2.1节的系统需求,具体仿真实现了以下功能:
(1)温湿度值测量及显示稳定、精确;烟雾值测量及显示稳定、精确;
(2)可以通过按键设定温湿度报警阈值,且测得的温湿度超过设定的阈值时,报警指示灯闪烁,蜂鸣器报警;可以通过按键设定烟雾报警阈值,且测得的烟雾浓度超过设定的阈值时,烟雾报警指示灯闪烁,蜂鸣器报警;
(3)当同时满足烟雾过高、温度过高、湿度过低三个条件时,控制继电器吸合,以实现电机转动,表示灭火。
相关文章:
基于51单片机的烟雾和温湿度检测控制系统仿真(智能防火系统,火灾报警灭火系统)
wx供重浩:创享日记 对话框发送:单片机防火 获取完整源码源文件仿真源文件论文报告说明文档等 基于51单片机的光照及温湿度检测报警控制系统 由STC89C52单片机LCD1602液晶显示屏ADC0832模块蜂鸣器DHT11温湿度传感器 烟雾传感器LED按键构成 具体功能&…...
【多线程】静态代理
当使用静态代理模式时,我们会有一个真实的对象(RealSubject),一个代理对象(ProxySubject),代理对象将请求转发给真实对象,并可以在请求前后执行额外的操作。 真实对象和代理对象要实…...
线性代数 第二章 矩阵
一、概念 个数排成的m行n列的表格 二、运算法则 三、初等变换 (1)用非零常数k乘矩阵的某一行(列); (2)互换矩阵某两行(列)的位置; (3&#…...
vue实现自定义字体
1、字体资源查找 网址 https://eng.m.fontke.com/ 选择想要的字体之后下载 获取文件夹内的.ttf文件 2 、字体引入 在项目根目录下新建font文件夹,将ttf文件放在里面 3、相应的页面vue文件中引入 在style标签中加上 font-face { font-family: ‘ZCOOLXiaoWei’…...
Selenium安装WebDriver Chrome驱动(含 116/117/118/119/120/)
1、确认浏览器的版本 在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号(只看大版本)下载对应文件 2.2 116版本…...
springboot的安全机制
一.jwt Spring Boot是一个用于开发Java应用程序的开源框架,它提供了一种快速、简单和可扩展的方式来构建独立的、生产级别的应用程序。在最新的版本Spring Boot 2.5中,引入了对JWT(JSON Web Token)的支持。本文将介绍如何在Spring Boot 2.5中使用JWT,并提供一个简单的示例…...
学习c++的第四天
目录 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 运算符优先级 运算符 算术运算符 算术运算符是 C 中用于执行基本算术操作的运算符。 加法运算符 ():将两个操作数相加。例如,A B 将得到 30,因为 …...
BIOS开发笔记 – 显示
UEFI启动流程跑完前三阶段,UEFI环境的准备基本完成,到BDS阶段的任务就是准备引导OS。在此之前还需要使一些必要的硬件工作起来,比如键盘设备,屏幕等,怎么让屏幕工作呢?简单的说就是执行其相关的UEFI驱动。要注意一下的是,这里所说的驱动并不是屏幕的驱动,而是GPU的驱动…...
数据库实验:SQL的数据视图
目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一…...
k8s-调度约束
目录 工作机制 调度过程 指定调度节点 亲和性 键值运算关系 Pod亲和性与反亲和性 污点(Taint) 和 容忍(Tolerations) 维护操作 故障排除步骤 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了…...
C++设计模式_26_设计模式总结
本篇为C++设计模式的总结课,此篇再回到原帮助大家梳理一下。 文章目录 1. 一个目标2. 两种手段3. 八大原则4. 重构技法5. 从封装变化角度对模式分类6. C++对象模型7. 关注变化点和稳定点8. 什么时候不用模式9. 经验之谈10. 设计模式成长之路1. 一个目标 管理变化,提高复用!…...
解锁AI语言模型的秘密武器 - 提示工程
文章目录 一、LLM概念1.1 什么是LLMs1.2 LLMs类别1.3 如何构建LLM 二、提示工程简介2.1 基础提示2.2 使用提示词的必要性 三、 提示3.1 如何写好提示词3.1.1 使用分隔符3.1.2 结构化输出3.1.3 风格信息3.1.4 给定条件3.1.5 给出示例3.1.6 步骤分解3.1.7 不断迭代 3.2 提示工程3…...
qt手撕菜单栏
最近有个项目需要手写菜单栏。 就写了一个简单的程序,供大家参考! #include <QApplication> #include <QMainWindow> #include <QMenuBar> #include <QMenu> #include...
UE5——网络——RPC
RPC(这个是官方文档的资料) 要将一个函数声明为 RPC,您只需将 Server、Client 或 NetMulticast 关键字添加到 UFUNCTION 声明。 例如,若要将某个函数声明为一个要在服务器上调用、但需要在客户端上执行的 RPC,您可以…...
基于ASP.NET MVC + Bootstrap的仓库管理系统
基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用,含有简单的说明文档。 适合单仓库,基本的仓库入库管理,出库管理,盘点,报损,移库,库位等管理,有着可视化图表。 系统采用Bo…...
Jetson NX FFmpeg硬件编解码实现
最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看,发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改,因此需…...
5.2用队列实现栈(LC225-E)
算法: 其实这道题不用像上一道题一样,用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候: 比如队列[1,2,3],要模拟一个栈入栈就是直接append(其实就是C中的push࿰…...
项目上线前发现严重Bug怎么办?
今天分享一个面试问题,现在有一个面试场景: 项目计划明天发布,但是在今天你作为测试人员发现了一个严重的bug,市场相关人员又在催发布的事情,这个时候你应该怎么办? 这是测试工程师不管是在面试࿰…...
【WPF系列】- Application详解
【WPF系列】- Application详解 文章目录 【WPF系列】- Application详解一、Application简介Application 类具体有以下功能: 二、初始App.xaml二、自定义Main方法启动WPF应用程序第一种:启动应用程序的代码第二种:启动应用程序的代码第三种:启…...
常见的内置方法:__call__,__getitem__,__iter__,__next__
1.__call__方法 在创建好一个实例后,直接调用一个实例会报错。但使用__call__后,可以让这个实例可以像方法一样被调用(就是一个函数后面加个括号的函数调用形式) class Person:passp1 Person() p1() # 实例这样无法直接被调…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
