【IoT】智能烟雾报警器

news2024/11/14 3:44:18

设计简介

硬件设计由AT89C51单片机、DS18B20温度传感器、4位共阳数码管、电源模块、报警模块、按键模块、MQ-2烟雾检测模块和ADC0832模数转换模块组成。

烟雾传感器MQ-2检测空气中的烟雾气体,通过ADC0832进行数据转换,经过单片机的运算处理后在数码管上显示浓度,同时采用DS18B20温度传感器检测环境温度,经过转换再经过单片机的运算也在数码管上进行显示。

单片机程序采用C语言编写,用Proteus仿真软件进行了仿真实验,并在仿真的基础上进行了实物的调试与制作。实物测试结果:当实际中的烟雾浓度和环境温度值大于设置的烟雾浓度和设置温度值时,蜂鸣器便发出报警声。通过实验表明本系统能够实现温度在测量范围从0度到99度报警以及在0-9等级烟雾浓度范围内的报警功能。

设计目标

制作一个可以实现以下功能的基于封闭环境下的烟雾报警系统,一是可以检测到可燃气体和烟雾,二是可以通过单片机对相应的驱动负载和报警设备进行控制,三是能够通过数码管实时显示烟雾的浓度值,并且可以通过按键来设定阀值。  

该项目主要完成的任务包括以下三部分:  

(1)硬件部分:由烟雾传感器的选择,烟雾信号模数转换电路的设计,显示模块的选择以及报警驱动电路设计组成。  

(2)软件部分:是由单片机控制程序的编制和原理图的绘制两部分组成的。 

(3)系统的调试与分析:在实物和程序都做好以后,要对系统进行一个测试与测验,分析观察系统的可靠性与实用性,来使系统达到正常工作状态。

系统总体设计方案

工作原理:烟雾传感器MQ-2实时检测空气中的烟雾气体,经过ADC0832模数转换芯片进行模数转换,再经过单片机的运算处理后在数码管上把烟雾的浓度显示出来,同时采用DS18B20温度传感器检测环境温度,经过转换,再传给单片机进行运算也显示在数码管上。

还可以用设置按键对烟雾和温度的报警值进行设定。当检测空气中的烟雾浓度和周围温度值大于或等于设置的烟雾浓度值和温度值(报警值)时,便会触发报警,蜂鸣器发出蜂鸣声。出现突发状况的时候可按紧急报警键,同样可以触发报警系统。

整个系统包括主控制模块、显示模块、烟雾检测采集模块、AD数模转换模块、按键控制模块和报警模块。

主控制模块

此设计中主控制模块控制核心是AT89C51单片机,是因为此类单片机具有它特有的优势:容易操作、简便、方便快捷、较强的抗干扰能力和抗静电能力,这样单片机就可以充分发挥出单片机资源丰富、强大控制功能和可位寻址操作功能的优点。

AT89C51单片机位操作指令十分丰富,单片机所有的I/O接口都可以按位寻址。单片机具有的足够的程序空间,来满足此设计,采用51 单片机控制,具有两个16位数据指针DPTRO/DPTR,因此软件编程的可选择性比较大,这样各种算术算法以及各种各样的逻辑控制便可以通过编程来实现,而且51单片机的体积比较小,这样硬件实现就变得简单,安装方便,而且此系统控制模块简单,数据量较小。所以选择ATC89C51作为核心。

主控制最小系统电路如图2-2所示。单片机最小系统硬件部分包括电源电路、复位电路、时钟电路三个部分[4]。AT89C51单片机的工作电压范围:3.3V-5.5V,所以在本设计中给单片机外界5V的直流电源,工作频率范围0-40MHz,但实际工作频率可达48MHz。 

 

复位电路(图中连接单片机RST的电路)就是确定单片机的初始化操作,目的是让单片机在确定的初始化状态,相当于完成单片机的启动过程。当单片机开始工作接通电源时或者按下复位开关键,便会与RST形成通路,此时便会形成复位信号,从而确定单片机起始状态。当单片机系统在运行的过程中中,受到某些无法预知的因素的影响导致程序错误时,此时可以按下复位按键,则单片机内部的程序便会重新开始运行。

单片机在稳定振荡器以后,在RESET端口连续接收到24个振荡周期即2个机器周期的高电平信号时就可以完成复位[5]。本设计采用的是简单的RC冲放电电路,电阻R18的目的是为了提高高电平的值。

时钟电路(图中XTAL1与XTAL2形成的通路)的作用对单片机来说就好比人的心脏对于人,只有在时钟的驱动下单片机才能工作。因为在AT89C51内部就含有一个晶振,所以在单片机的XTAL1和XTAL2引脚接一个频率为12MHz晶振,便可以形成自激振荡器,这个自激振荡器能在单片机内部产生时钟脉冲信号。

此次的正弦信号是由时钟电路提供。在单片机内部还有一个构成内部振荡器的反相放大器[6]。引脚XTAL1是反向放大器的输入,而引脚XTAL2是反向放大器输出;如果采用外部时钟源驱动,XTAL2则不需要连接;一般情况下同一个系统会使用同样频率的晶振,这样整个系统的每个部分便可以保持一致。

显示模块电路

显示模块用四位数码管显示,数码管显示的速度比较快,原理相对简单,很容易被使用,显示效果简洁,所以选择了数码管。数码管一般分为共阳极数码管和共阴极数码管[7]。本设计用的是共阳极数码管。共阳极数码管是把发光二极管的阳极连接在一起,公共阳极接正电压(通常是+5v),当某个发光二极管的阴极收到低电平的信号时,则这个发光二极管便会发光,此时这个发光二极管相应的段就可以显示出来。根据不同发光段组成想要的数字。

 在图中数码管的A-G,DP连接的是单片机的P1口,P1口(P1.0~P1.7,1~8 脚):P1口是一个双向I/O口。数码管的驱动一般分为静态驱动和动态驱动[8]。静态驱动就是数码管的每个LED灯对应单片机的一个I/O接口,这种驱动的优点是简单,但占用较多的I/O接口。图2-3中的三极管是用来做驱动的作用,因为单片机的接口输出电流比较小,从而导致驱动能力较弱,采用三极管起到放大电流的作用,提高了驱动能力。

温度传感器(DS18B20)电路

温度采集电路如图所示,DS18B20的数据脚和电源之间加了一个4.7K的电阻,目的是不仅为了保证数据的稳定,同时起到限流的作用。

温度传感器将采集的信号数据传输到单片机的P3.5口。因为从单片机的P3.5接口到温度传感器DS18B20 直接连接便可,而且温度传感器对温度信号的读、写以及温对度信号的转换的所需的电源而并不需要外部电源由数据线自身就可以提供,所以不需要备份电源,而且可以在1秒内把温度数据转换为数字,具有很高的效率。温度传感器对温度测量范围从-55度到+125度,增量值为0.5度,具有较高的测量温度和精确度,所以选择了DS18B20。

 

烟雾采集检测电路

烟雾采集检测电路如图2-5所示。烟雾采集检测电路是利用烟雾传感器检测周围空气的烟雾信号传输给模数转换电路。烟雾传感器采用的是MQ-2传感器。当烟雾传感器检测到烟雾时,烟雾时传感器的电阻值下降,通过测量传感器的输出电压值变化便可以反映烟雾浓度的变化,在此设计中,将传感器与电压串联,将电压信号传输到ADC0809A/D转换电路。MQ-2烟雾传感器具有较高的灵敏度、电导率波动范围大、恢复速度快、强大的抗干扰能力、输出的烟雾信号大、使用的时间长和工作相对稳定等优点。

AD模数转换电路

ADC0809模数转换电路如图2-6所示。AD数模转换电路是将烟雾传感器检测到的模拟信号转换成数字信号再次输入到单片机,单片机对接收到的数字信号进行相应的运算[9]。模数转换电路采用ADC0832,经过ADC0832采集后就可以得到烟雾各种气体后经过R14电阻的电阻分压的电压信号转换成数字信号,再传输给单片机,经过单片机运算分析后在数码管上把烟雾的浓度显示出来,

ADC0832芯片接口功能:CS片连接单片机的P3.2。当单片机给予低电平信号时ADC0832开始工作。CH0和CH1是模拟输入接口,接收由烟雾传感器检测的烟雾信号。在本设计中选择了CH0通道。D0与D1是转换数据输出接口,因为DO接口和D1接口在同时工作时并不是同时有效的所以将D0和D1并联 数据信号输出,再与单片机的p3.3相连,将转化的数字信号传给单片机。CLK 芯片时钟输入,连接单片机的P3.4,用于计数。 

烟雾信号通过CH0进入ADC0832,D0将转换的数字信号传输到单片机的P3.3(外部中断)。

 

声音报警电路

烟雾检测仪系统电路采用PNP型S8550三极管驱动,蜂鸣器连接单片机的P3.6接口。当蜂鸣器接收到来自单片机的P3.6口输出的低电平信号时,此时三极管导通,便会触发报警。当蜂鸣器接收到来自单片机P3.6口输出的高电平时,三极管处于截止状态,电路发生断路,蜂鸣器因断电便停止报警。本设计的声音报警电路选择的是蜂鸣报警器电路,但是蜂鸣器的工作电流比较大,单片机的I/0口的电流偏弱并不能直接驱动蜂鸣器,所以此次设计的蜂鸣器前添加了一个PNP型三极管8550,这样就可以放大电流,从而来驱动蜂鸣器。图2-7中的电阻R13起到限流的作用,防止电流过大

系统主程序设计

烟雾报警系统主程序流程图如图3-1所示。需要注意的是当第一次使用时,第一步要给传感器预热,因为MQ-2型烟雾传感器在没有电源供应的情况下放一段时间后,当再次接通电源时,并不能立刻检测烟雾信号,所以预热这一步骤是必须的[11]。当预热结束后一段时间,报警系统才正式进入监控状态。

在报警系统工作过程中,烟雾浓度信号经ADC0832由模拟信号转换成数字信号后,再由AT89C51进行处理和运算,判断和控制系统是否触发报警。主程序包括数码管浓度字符显示功能(显示烟雾浓度和温度值)、手动报警功能、报警浓度等级和报警温度设定功能,中断子程序等。

检测烟雾信号浓度的同时检测温度传感器的温度,和设置的阈值做对比,如果大于设置阈值,便会触发报警,蜂鸣器发出滴滴蜂鸣声,此设计中温度报警阈值同样可以设定,这样的设计使报警器更加符合实际情况,是烟雾报警器的功能进一步完善,进一步满足报警器的要求,从而进一步降低火灾发生的几率。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【WEB前端进阶之路】 HTML 全路线学习知识点梳理(上)

前言 HTML 是一切Web开发的基础,本文专门为小白整理,针对前端零基础的朋友们,手把手教你学习HTML,让你轻松迈入WEB开发的行列。 首先,感谢 橙子_ 在HTML学习以及本文编写过程中对我的帮助。 文章目录前言一.HTML简介1.…

Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)

1 明确概念首先知道几个单词的意思:并集 union交集 intersection补集 complement析取 disjunction减去 subtract1.1 并集对于两个给定集合A、B,由两个集合所有元素构成的集合,叫做A和B的并集。记作:AUB 读作“A并B”例&#…

微纳制造技术——基础知识

1.什么是直接带隙半导体和间接带隙半导体 导带底和价带顶处以同一K值,称为直接带隙半导体 导带底和价带顶不处在同一K值,称为间接带隙半导体 2.扩散和漂移的公式 3.三五族半导体的性质 1.high mobility 2.wide bandgap 3.direct bandgap 4.三五族…

SWM181 串口功能使用介绍

SWM181 串口功能使用介绍📌SDK固件包:https://www.synwit.cn/kuhanshu_amp_licheng/✨注意新手谨慎选择作为入门单片机学习。🌼开发板如下图: 📋SWM181描述上写了有4个串口,在数据手册上,将引脚…

教你如何搭建设备-巡检管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建设备-巡检管理。1.2、应用场景设备管理员进行制定设备巡检时间/内容计划、记录设备巡检信息、可以查看今日待巡检设备。2、设置方法2.1、表单搭建1)新建表单【设备档案-履历表】,字段设置如下&#x…

activiti7执行流程详解

什么是工作流? 官方定义:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统…

阿赵的MaxScript学习笔记分享八《文件操作》

大家好,我是阿赵。继续分享MaxScript学习笔记第八篇 。这一篇主要讲文件操作,包括文件的I/O和导入导出。 1、获得3DsMax指定的一些目录路径 如果在电脑上安装了3DsMax软件,那么在文档里面会有一个3dsMax的文件夹,里面有一些3dsMa…

《C++ Primer Plus》(第6版)第8章编程练习

《C Primer Plus》(第6版)第8章编程练习《C Primer Plus》(第6版)第8章编程练习1. 打印字符串2. CandyBar3. 将string对象的内容转换为大写4. 设置并打印字符串5. max5()6. maxn()7. SumArray()《C Primer Plus》(第6版…

【C++】C++11 异常

目录 1. C语言传统的处理错误的方式 2. C异常概念 3. 异常的使用 3.1. 异常的抛出和捕获 3.2. 在函数调用链中异常栈展开匹配原则 3.3. 异常的重新抛出 3.4. 异常安全 3.5. 异常规范 4.自定义异常体系 5. C标准库的异常体系 6. 异常的优缺点 6.1. C异常的优点&…

Spark性能优化二 Shuffle机制分析

(一) 什么情况下发生shuffle 在MapReduce框架中,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中&#xff0c…

Linux 学习整理(使用 iftop 查看网络带宽使用情况 《端口显示》)

一、命令简介 iftop 是实时流量监控工具,可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。 二、命令安装 yum install -y iftop 三、命令相关参数及说明 3.1、相关参数说明 -i:设定监测的网卡&#…

python未来应用前景怎么样

Python近段时间一直涨势迅猛,在各大编程排行榜中崭露头角,得益于它多功能性和简单易上手的特性,让它可以在很多不同的工作中发挥重大作用。 正因如此,目前几乎所有大中型互联网企业都在使用 Python 完成各种各样的工作&#xff0…

CAD中如何将图形对象转换为三维实体?

有些小伙伴在CAD绘制完图纸后,想要将图纸中的某些图形对象转换成三维实体,但却不知道该如何操作,其实很简单,本节CAD绘图教程就和小编一起来了解一下浩辰CAD软件中将符合条件的对象转换为三维实体的相关操作步骤吧! 将…

HID协议详解 - Report Descriptor报告描述符构建与解析

USB相关基础知识简述 报告描述符是HID协议里比较复杂的一部分,在理解报告描述符之前,可以对USB协议数据传输的一些基础知识做一些了解,更方便理解后续内容。 报告是USB协议里数据传输(Data Transfer)的一种&#xff…

Android正确使用资源res文件

观看此文注意首先有的UI改颜色,没用,发现无法更改按钮背景颜色。我的AS下载的是最新版本,Button按钮的背景颜色一直都是亮紫色,无法更改。为什么呢?首先在你的清单文件中看你应用的是哪个主题。我现在用的是这个可能你…

PYthon组合数据类型的简单使用

Python的数据类型有两种,基本数据类型和组合数据类型,组合数据类型在Python的使用中特别重要。 1.组合数据类型的分类: 2.序列类型 序列类型中元素存在顺序关系,可以存在数值相同但位置不同的元素。序列类型支持成员关系操作符&…

计算机编程基础

0与1的世界 计算机是由晶体管和电路板组成的电子设备。 不论是我们微信信息的呈现、图像的储存和数字之间的运算本质上都是0和1的信息。 0、1便可以代表电压的高低、开关的闭合以及电阻的导电和不导电。 0、1表示的数字便是“逢二进一”。计算机的最小的储存单位是位&#…

Java如何String字符串带括号转成List

问题现象 今天在做一个需求:将存入数据库中的数据读到后解析成list遍历分析 数据格式: "[1677660600000, 1677660900000, 1677661200000]" "[5, 4, 4,3,2,0,0]" 我一开始想到的就是使用逗号分割即可 结果变成了这样的…

电容笔和Apple pencil有什么区别?开学季电容笔排行榜

与苹果的 Pencil相比,市面上常见的电容笔在压感上是没有具备重力压感,只具备着一种倾斜压感。对于绘画没有过高要求的话,其实一支普通的平替电容笔,就能为我们解决日常很多问题。它不仅可以用在办公上,也可以用在笔记、…

算法小抄3-理解使用Python容器之列表

引言 首先说一个概念哈,程序算法数据结构,算法是条件语句与循环语句组成的逻辑结构,而数据结构也就是容器. 算法决定数据该如何处理,而容器则决定如何数据如何存储. 不同的语言对容器有不同的实现方式, 但他们的功能都是相似的, 打好容器基础,你就可以在各式各样的语言中来回横…