摘要:本文设计的基于单片机的智能火灾报警系统, 适于家庭环境, 主要用来检测室内的烟雾浓度和温度, 从而发出警报。系统将单片机与传感器技术结合, 主要由单片机最小系统、LCD显示模块、按键模块、温度检测模块、烟雾检测模块及报警指示模块组成。系统将检测的温度和烟雾浓度值与预设定报警阈值相比较, 也能将检测值显示在LCD液晶显示屏上。系统只需一次设定好火灾报警的温度及烟雾浓度阈值即可实现自动监控, 无需人工干预, 简单方便, 易操作, 成本低。
关键词:单片机; 传感器; 智能报警;
Abstract:This article is about a intelligent fire alarm system based on microcontroller which is suitable for home environment, it is mainly used to detect indoor smoke concentration and temperature, thus giving an alarm. The system combines the one-chip computer and sensor technology, which is composed of the smallest system of the single chip microcomputer, LCD display module, key module, temperature detection module, smoke detection module and alarm indication module. The system compares the detected temperature and smoke concentration values with preset alarm thresholds and also displays the measured values on the LCD screen. The system only needs to set the temperature and smoke concentration threshold of fire alarm once to realize automatic monitoring without manual intervention, which is simple and convenient, easy to operate and low in cost.
Keyword:microcontroller; sensor; intelligent alarm;
随着科技的不断进步, 人们的生活水平也在不断提高, 越来越多的人们涌进城市生活, 城市的人口越来越密集。因此, 城市的楼房越建越高, 用火用电频率也越来越高, 因此, 在楼道或者家庭内部更要预防火灾的发生。当楼道内或者室内发生火灾时, 周围温度将迅速上升, 也会大量烟雾, 其浓度也将迅速上升。如何设计一款操作简单, 报警及时, 成本低廉的智能火灾报警系统是刻不容缓的需求。目前市场上使用的智能火灾报警系统多数采用ARM处理器[1], 也有一些采用BP神经网络算法完成火灾探测[2], 也有通过Zig Bee通讯技术研制构建了无线智能火灾报警系统[3], 通过外部一些传感器及CAN总线结合监控家庭综合情况[4], 这样的火灾报警系统要求联网监控, 不仅监控范围要求高, 并且造价较高;也有一些系统仅仅是为了采集温度而设计的, 不能实现火灾的预警[5]。为了解决这类问题, 本系统采用STC89C52单片机作为控制核心, 结合LCD显示模块、按键模块、温度检测模块、烟雾检测模块及报警指示模块, 不仅能够将检测到的温度和烟雾浓度与设定阈值相比较, 并发出报警外, 造价低廉, 操作方便, 适于家庭或小范围环境使用。
1、系统总体设计
按照系统设计的功能要求绘制的系统总体框架结构图如图1所示。在此电路系统中, 主要由单片机最小系统, 测温电路, 烟雾检测电路, LCD1602显示器, 按键电路和报警指示电路等级部分组成。最小系统由晶振电路、电源电路、复位电路以及单片机STC89C52组成, 单片机放在中心位置表明它是整个系统的核心控制部分。
图1 系统结构图
该系统是通过数字温度传感器和烟雾传感器采集环境温度及烟雾浓度, 由于烟雾传感器采集的信号是模拟信号, 因此需要使用一个AD转换电路进行数字转换, 然后将温度数据和烟雾浓度数据发送到单片机内处理, 然后通过LCD1602进行显示, 按键用于设定温度及烟雾浓度的阈值, 当超过设定阈值时驱动报警指示电路工作。单片机若要正常工作, 必须保证最小系统正常, 晶振电路为单片机工作提供时钟周期, 当系统处于死机或瘫痪状态的时候可以使用复位电路进行重启, 电源电路为整个系统提供工作电压。
2、硬件电路设计
在本系统的电路设计中使用的是单片机STC89C52作为主控器, 系统电路主要由单片机最小系统、测温电路、按键电路、烟雾检测电路、报警指示电路、LCD显示电路组成。最小系统给单片机正常工作提供必要条件, 测温电路用于采集环境温度, 按键电路用于设定温度和烟雾浓度的报警阈值, 烟雾检测电路用于采集和转换环境的烟雾浓度信号, 报警指示电路用于检测值超限时的报警提示, LCD1602显示电路用于显示当前检测的温度和烟雾浓度值以及设定的报警阈值。
2.1、电源电路的设计
本系统正常工作离不开一个稳定并且合适的电源系统, 而单片机STC89C52的工作电压范围是3.3V到5.5V之间, 因此, 如果要让系统稳定工作, 需给单片机电源管脚加上一个稳定的直流5V电源。单片机的第40脚位电源正极, 第20脚为电源地, 只有给单片机通电才能保证稳定工作。在此电源电路中, 使用一个火牛接口作为5V直流电源的接入口, 通过一个电源开关S5控制整个系统的电源, 当开关合上的时系统得电, 断开的时候系统断电。系统电源电路如图2所示。
图2 电源电路
2.2、LCD显示电路
液晶显示器LCD1602一般是用在显示字符数字上, 由于其能显示2行, 每一行只能显示16个字符。液晶LCD1602内部RAM有很多, 通常使用到的也就是40个。如果需要在第一行显示的话, 需要在其第一行地址写入数据, 对应的第一行首个地址是0x80, 由于一行只能显示16个字符, 因此第一个最后一个地址是0x8f。同样的第二行首个地址是0x80+0x40, 最后一个地址是0x8f+0x40。LCD1602具有8位数据口, 通过3个控制管脚进行通信, 其通讯时序采用6800方式。设计中使用单片机P0口控制LCD的数据口, D0-D7对应着P00-P07, 液晶LCD1602 RS管脚接在MCU的P27口, 由于只需要LCD1602上面进行显示, 故读写管脚直接接在GND上即可, 液晶LCD1602 EN口接在MCU的P26口上。液晶显示电路如图3所示。
2.3、按键电路
按键电路是为了能够预先对系统设定火灾报警的参数, 可以通过按键设定温度及烟雾浓度的阈值, 当检测值超过了设定阈值后就会触发报警, 可以提前处理火灾灾情。由于按键个数不需太多, 使用3个按键即可, 一个用来控制模式的切换, 1个用来进行数据加, 1个用来进行数据减。设计中采用的是独立按键接法, 即将3个按键一端共地, 一端接在单片机的I/O口上, 当按键按下的时候单片机的管脚电平就会被拉低, 因此只需要判断对应管脚是否为低电平即可。我们将按键S1接在单片机的P16管脚上, 按键S2接在单片机的P17管脚, 按键S3接在单片机的P32管脚上, S1是模式切换功能, S2和S3是加减功能。具体电路如图4所示。
图3 LCD显示电路
图4 按键电路
2.4、测温电路
为了更加精确预测火灾, 除了对烟雾浓度的进行测量以外, 还需对温度进行检测。由于温度传感器DS18B20具有单总线接口, 而我们使用的单片机则不具备此接口, 因此需要将单片机管脚模拟单总线通信时序。此系统是将数字温度传感器DS18B20的数据口接到单片机的P10管脚上, 通过此管脚模拟单总线时序与DS18B20进行通信。在测温电路中还在数据口上加了一个10K的上拉电阻, 这个主要是保证总线空闲的时候为高电平, 防止外界的干扰。测温电路如图5所示。
图5 测温电路
2.5、报警指示电路
报警指示电路的设计中使用的是一个有源蜂鸣器和2个LED指示灯作为报警提示装置。由于单片机管脚的驱动能力有限, 不能直接驱动蜂鸣器, 而需要进行电流放大, 一般在电路中会使用一个PNP三极管进行电流放大来驱动蜂鸣器。三极管的基极接在单片机的P20管脚, 当单片机P20管脚输出一个低电平的时候就会使PNP三极管导通触发蜂鸣器报警, 如果输出一个高电平的话就会使PNP三极管截止, 蜂鸣器不发声。LEDR红色指示灯接在单片机的P22管脚上, LEDY9黄色指示灯接在单片机的P24管脚上, LEDR是温度报警指示灯, LEDY是烟雾浓度报警指示灯。DP1表示温度报警指示, DP2表示湿度报警指示。报警指示电路如图6所示。
图6 报警指示电路
2.6、烟雾检测电路
电路的设计中我们使用了一个MQ-2烟雾传感器作为烟雾量的采集, 由于烟雾采集后的信号是模拟量变化的, 单片机不能直接处理模拟信号, 需要使用一个AD转换电路进行数字转换才能使用, 所以在设计烟雾检测电路的时候采用ADC0832芯片来转换, 将烟雾传感器模拟信号输出管脚接在AD芯片的通道0上进行转换AD芯片的通信管脚接在了单片机的P12, P13和P15上, 通过这3个管脚就可以实现烟雾浓度数据的转换。电路如图7、图8所示。
图7 烟雾检测电路
图8 AD转换电路
3、系统软件设计
系统软件设计需要完成对温度和烟雾浓度的检测与显示, 以及按键设定报警阈值。如果检测的温度和烟雾浓度值高于按键设定的阈值还需要控制蜂鸣器和LED发光报警。主函数的功能就是对程序设计中使用的变量及模块初始化并将各功能子模块进行调用, 主函数流程图如图9所示。
图9 主程序流程图
硬件电路设计中考虑到了超限报警, 所以流程图中设置了一个蜂鸣器和2个对应的LED作为声光报警装置, 蜂鸣器是有源的, 只需要一个低电平即可触发报警, 一个高电平就可以点亮LED。烟雾传感器检测的信号只是一个模拟信号, 要让单片机使用这个数据还需要进行数字转换, 所以使用了一个ADC0832进行转换, 这是个具有串行通信接口的芯片。硬件电路中还用到了温度传感器DS18B20来对环境温度的检测。
图10 LCD初始化流程图
LCD1602液晶需要初始化, 通过一段时间的延时, 根据个人要求选择具体的显示模式, 可以以选择显示光标或者光标闪烁等, 最后对LCD进行一次清屏, 将内部RAM的数据全部清除, 等待下一次的显示。LCD初始化的一个流程图如图10所示。
4、结论
本系统使用STC89C52单片机设计了一款智能火灾报警系统, 包括各功能模块电路设计及软件设计, 其中软件设计中主要是温度和烟雾浓度的采集与LCD1602液晶的驱动显示, 当采集的温度和烟雾浓度超过设定值的时候驱动蜂鸣器与对应的指示灯报警。硬件电路设计中主要单片机最小系统及烟雾检测电路的搭建。本系统能够实现室内或者小范围环境内的烟雾浓度和温度的检测及报警, 并将检测的值显示在液晶显示器上;能够预先设置温度和烟雾浓雾阈值, 如检测值超限, 可发出警报。本系统成本低, 操作简单, 可普遍使用。本系统还有一些功能有待提高, 譬如如果能够检测雾霾值就会更加方便人们的生活, 需要在以后的研究中加以尝试研究。
参考文献
[1]赵志成.基于ARM的机车火灾智能报警灭火系统[D].江西理工大学, 2012.
[2]杨晨娜.居室智能火灾报警系统控制策略研究[J].自动化与仪器仪表, 2015 (12) :237-238.
[3]岳博棽, 龚晓婷, 王泽, 孙统, 杜熹, 张嘉琪.基于Zig Bee通讯技术的火灾智能报警系统构建[J].天津理工大学学报, 2014, 30 (05) :61-64.
[4]刘辉.基于CAN总线的智能火灾报警系统的设计与实现[J].工业控制计算机, 2001 (06) :23-24.
[5]翟政凯.基于单片机的单总线多点温度测控系统[J].电子测试, 2017 (01) :3-4.