摘 要
本篇论文从实际出发,设计一个可以有效解决实际问题、精准预测火灾发生的火灾自动报警器。该系统是以
STM32F103C8T6单片机作为核心,预测火灾同时驱动水泵灭火。本系统的工作流程是通过对环境中的烟雾浓度和温度
等进行收集,然后向核心单片机进行数据的传输,核心单片机根据系统设定的报警值进行对比,判断是否会发生火
灾,当现场的温度和烟雾值超出标准值时,可实现蜂鸣器报警,同时水泵开始工作实现灭火功能,达到损失最小
化。这个系统具有很大的发展前景,可以结合很多安全防范项目,具有一定的实现价值和意义。
关键词:STM32F103C8T6单片机;自动报警;传感器;水泵灭火
1绪论
1.1课题背景研究及意义
火灾是遍发生的一种灾害,是具有伤害性最大的灾害之一。由于火灾给人类造成的伤害是不可逆,因此人们主
要关注的问题是火灾前期的预防和一些具体的防范措施,减少火灾的发生和尽量避免火灾对人们造成的损失。社会
的快速进步新能源和新材料的出现,火灾发生的频率和以及损失也在不断增多。[1]因此火灾自动报警器就是为了满
足减少火灾发生的次数这一要求而设计的,假如环境中的烟雾浓度和温度达到上限标准值,则需要采取一些必要的
措施尽量避免火灾的发生以此减少不必要的损失,以此来保证人类的安全问题。因此,通过研究检测烟雾浓度值和
温度值来发展火灾自动报警系统是非常好的一个研究方向。
1.2国内外研究概况
国外对于火灾的报警系统和火灾的处理都有较为先进的技术,在早期美国首先研发火灾自动报警系统首次进入
人们的视野。[2]美国对于这方面的研发技术在早期时远远超过中国,美国该技术的成功对于中国有很大程度的借鉴
意义,随着大数据的不断发展,美国将此技术与其他安全监测系统相结合,这些都在云端赢得了很大的市场,近些
年来,火灾自动报警系统结合无线通信技术正在国内外不断地发展和进步,我们可以利用无线电通信技术来预测火
灾和进行快速地灭火处理,将火灾造成地损失降到最小,这个先进的技术适用于各类场合,但是市场价格比较高,
成本比较高。我们可以不断借鉴国外的技术发展的成功经验,同时不断经济我国的火灾自动报警技术。[3]
1.3本论文主要完成的任务分析
本论文主要研究火灾自动报警器系统
第一:系统的总体分析和结构设计
第二:该系统采用STM32F103C8T6作为核心,其硬件部分由烟雾传感器模块、温度传感器模块、报警模块、显示
模块、水泵组成。
软件系统部分,主要分为主程序流程设计、温度采集程序、烟雾采集程序、报警电路程序、抽水电机模块程序。
第三:系统的综合调试与功能实现
2火灾报警系统总设计方案
火警自动报警器是通过探测周围的烟雾和周围的温度来进行对火灾的预判,在烟雾浓度或者温度到达设定值
时,系统将会启动声光报警,同时水泵工作实现灭火功能。为尽可能准确预测火灾减少居民和工业的损失,设计烟
雾报警器具有显示报警并使用水泵喷水灭火。
为实现对火灾的准确预报,以STM32为核心芯片,其他模块为辅助,尽可能的缩短时间,以最快的速度报警,这
样可以减少火灾造成损伤。该系统的设计包含两个部分硬件和软件。从设计的要求来分析该设计须包含如下结构:
STM32单片机控制模块、烟雾探测模块、温度采集模块、声光报警部分、lcd显示模块、水泵灭火等模块。电路总体
框图如图一所示:
图1 总设计框图
该系统模块是软件的控制下进行一系列的功能。烟雾传感器和温度传感器采集环境中的数据,将其转换为电信
号,单片机接受到电信号以后,进行判断数据是否超过设定值,若达到上限值则进行声光报警,同时水泵开始灭火
工作。
3系统的硬件选择和设计
单片机经过这么多年的发展,单片机技术已经相当的具有先进性,单片机的发展规模越来越大,在不同的领域
都有发展,并且发展具有先导性。单片机在整个火灾自动报警器系统上面都发挥着重要的作用,因此在选用单片机
时一定要选择符合现实情况的,这样能够更加精准的解决问题。在选择上,要尽量选择符合该电路设计的系统,同
时考虑性价比和执行速率。所以本论文采用STM32F103C8T6单片机系统。
STM32F103C8T6单片机的特点:STM32F103C8T6是一款32位处理器,其内存容量是64KB,要求电压2V~3.6V,运行
电压是3.3V。在未运行或者待机状态时,该芯片的功率消耗是非常低的。3个16比特计时器,每个计时器有多达4个
用于输入/输出口,以进行PWM或者脉冲计数。1个16位的死区和紧急闸,PWM先进的电机控制器;2个看门狗定时器。
系统时间计时器和24位自减型计数器。[4]如下图3-4TM32F103C8T6 管脚图:
图2 STM32F103C8T6引脚图
3.2 烟雾传感器模块
近些年来烟雾传感器技术发展比较迅速很多不足已经得到完善,烟雾传感器的作用时通过对环境中的烟雾值进
行探测,然后对设定的烟雾浓度报警值进行对比,若达到该系统设定值以后,系统会立即报警处理。烟雾传感器被
广泛的应用于国家的消防事业,为减少火灾发生时造成的损失做出了巨大贡献。然而一个好的烟雾传感器都具备以
下的几个要求:
第一:必须要选择单一烟雾进行检测,这样可以防止其他烟雾的干扰,以至于造成火灾误报。
第二:需要具有比较高的反应度,能够更准确的识别烟雾值
第三:能够快速的检测数据,并且可以重复。
第四:工作时能够维持于稳定状态同时需要具有耐用性。[5]
烟雾传感器能够使用的场所是非常广泛的,它可以快速的对环境中的衙进行检测同时可以和很多消防用品和报
警电路结合,同时也可以单独使用;更多时候用于消防安全。具有不易被腐蚀的特点、较高的灵敏、功耗低、价格
比较低廉、维修也比较方便等特点。对于火灾发生的初期不可见的烟雾也能够灵敏稳定的识别,且能具体避免其他
情况的误报。
MQ-2一种传感器是用一种小型的AL2O3陶瓷管,一种感光材料,一种由SnO2灵敏层、一种测量电极、一种加热装
置组成的感应元件。[6]该气体传感器包括6根针,4根用于提取信号,2根用于加热。
MQ-2 烟雾传感器的特点:MQ-2型传感器的灵敏度是非常优秀的,MQ-2型传感器具有良好的工作性能、响应数据
比较精准,MQ-2型传感器不容易受环境中其他因素的影响,只专注于检测的烟雾,它可以在24 V或更小的电压范围
内;加热的电压是5±0.2 V。MQ-2烟雾传感器的工作原理:MQ-2是一种半导体气敏元件,当在规定的温度范围内
时,二氧化锡会与空气中的氧气相互作用,使得氧气中的负电离子减少,由此电阻值不断地增加,当烟雾在环境中
出现时,氧气中的离子会脱离,由于电子密度增加,电阻值将会变小,利用烟雾会引起电导率的变化来证明烟雾的
存在,以此来进行对烟雾的浓度信号的探测,将其收集到的烟雾浓度信号转变程电信号传送至单片机。
3.3温度传感器模块设计
DS18B20系列的温度传感器时美国研发法人一款智能化智能检测温度的元件,由于结构和功能都便于实现,所以
在后来别不断地广泛使用,它可以更加直接的对温度进行测量或者检测,进行数据编程时可以达到9-12位的数字直
读,可行性更强。DS18B20温度传感器具有的特点有,多点分布、不需要外来设备、 可使用数据线路来实现供电使
得待机使零功耗,温度以0.5℃上升、温度以9位数字量读出、用户可以自定义温度报警设置并且不易失去、报警监
控系统指令标识没有超出规定温度的设备应用、应当包括温度计、测温系统、工业温度测量[7]。温度传感器的设计
DS18B20引脚定义:DQ是数据的输入或者输出端口,GND为电源地,VDD是外接供电的输入端。[8]在此电路中,
DS18B20由单片机控制,即可采集出当时的温度。当火灾发生时现场会产生大量的热量,周围温度还会不断升高,
DSl8B20温度传感器是监测范围内的温度变化,将采集到的温度值转换为电信号,将数据输送到核心单片机以达到报
警目的
3.4声音报警电路
蜂鸣器是一广泛应用于报警电路的元器件,它同时也可以结合多种电路应用于更多的电子产品。在我们日常生
活中很多生活用品中都有蜂鸣器,但是在日常生活它通常和放大电路一起使用,蜂鸣器的正级性接口一端需要连接
到5V的电源上面,另一端需要连接到三级管的集电极,三极管的基级由单片机的PD8管脚来控制,当PD8管脚比较低
时,三极管导通,就会有电流回路形成,使蜂鸣器成功报警,PD8管脚来控制蜂鸣器。
3.5液晶显示模块
该电路系统用LCD1602液晶显示屏,电路设计较为简单并且功能消耗比较低,显示数字变化灵敏,并且程序设计
很简单,便于我们更加精准的观察数据,减少系统误差,液晶显示电路设计图如下所示。
3.6按键电路设计模块
按键电路设计模块共有四个键,分别是加减键、紧急报警键、设置键,在遇到紧急事件或者无法控制的时候,
可以触发紧急报警键,[10]进行报警处理,按键设置的主要目的是为了调整温度和烟雾浓度报警的上限值,按键的
设置可以更加精准的进行报警。
3.7电源接口电路设计模块
使用5v的电源供电,既方便又快捷,同时又可以满足系统对电的需求,以便达到对系统的稳定供电,帮助系统
正常运行,电源的接口电路设计电路图如下所示,P4时供电电源的接口,SW1是供电电源开关。
3.8抽水电机模块
抽水电机的设计具有一定的现实意义,在火灾自动报警器报警以后能够第一时间进行扑火操作,将损失降到最
低。将此电机放进水中,接上电源以后,一旦温度和烟雾浓度超过了标准值,在蜂鸣器进行报警的同时水泵启动进
行抽水灭火处理,能够更好将火灾消灭。由于抽水电机的工作性能好。被广泛应用于实际生活中。抽水电机电路设
计模块如下图所示
4系统的软件设计
4.1开发环境介绍
本系统的开发主要采用的是C语言编写程序,由于C语言编写较为简练和清晰能够更好的观察结构设计。Keil
uVision是非常方便的一个开发软件,它可以快速的进行开发设计,效率是要比其它的更高,Keil uVision是一个非
常实用的开发系统,具有更先进的编译器系统,这些都能更好的帮助我们完成开发。
4.2主程序流程图
该系统主要是由STM32F103C8T6单片机作为控制芯片,主要功能模块包括:数据采集模块、报警模块、抽水电机
模块等这些模块的设计更好的实现了火灾报警的功能。 当对系统软件进行模块化设计之后,我们更能直接的观察问
题,更加方便我们不断精进程序设计,在连接上电源以后,对各个模块进行初始化,进行数据采集,对比数据判断
是否有火灾的发生,下一步进行声光报警,最后进行水泵灭火。这个系统模块主要包括主程序、报警模块程序流程
图、温度和烟雾模块程序流程图,下图是主程序的流程图。
图11 主程序流程图
4.3温度模块程序设计
当系统接入电源以后,然后给数据一个高电平,然后延长时间,最后把电平拉低,再通过把数据拉高,这是可
以等待初始化完成。当初始化状态完成以后,该DS18B20温度传感器进行采集火灾发生时的数据
经过不断地调试把遇到地问题逐一解决掉,最后运行出正确结果,如下图所示;
5、系统的调试
5.1软件调试
火灾自动报警器的设计软件部分是用 Keil uVision软件进行编写的,编写过程和调试过程中遇到的问题及解决
方案如下;
首先,我们安装好软件打开以后,我们第一步需要先建立一个源文件,将他命名为exam11。
其次我们需要打开菜单里面的project里面的new uVision project建立一个文件夹Target1将自己已经编写好的程序
导入进去,将工程数值调到默认值。[13]
最后我们进行编译和连接,点击菜单中project里面的build taget进行编译,编译结束后下面会出现编译结果,如果程序中出现错误,我们可以点击出现错误显示,找到对应的地方,进行修改和再次编译。
调试过程中遇到的问题及解决方法:
(1) 屏幕中显示的数据可能会出现差错或者不准确的现象
经过调试得知显示时不可以重复占用同一显示地址,否则就会发生乱码的情况。
(2) 在硬件部分没有问题的情况下,采集到的数据输出或者输入出现错误时,我们应该对温度传感器采集程
序和烟雾浓度采集程序进行一一的检查发现其程序代码错误,点击出现错误的代码上进行修改并且重新进行编译。
(3) 输入时,程序中不小心混入了中文标点符号导致,编译出现错误。
我们需要找到错误的对应位置然后将中文标点符号改成英文标点符号,解决此问题。
(4)当进行程序调试时出现cannot open source input file “core_cm3.h”: No such file or directory错
误时,这是开始检查程序结果发现工程文件未完全打开,当把工程文件完全打开在软件中,之后问题便得到了解
决。
经过不断地调试把遇到地问题逐一解决掉,最后运行出正确结果,如下图所示
5.2硬件调试
在软件的设计准备完成后,需要进行电路的焊接,焊接方面需要我们高度重视,只要出现错误就会造成很大的
麻烦,因此我们需要非常的小心,保证我们焊接的板子没有出现问题然后再进行对电路进行调适。在开展调试工作
前我们要按照设计进行对设备的规格、型号、所需要的数量以及相应的配件和仪器,检查是否符合要求同时需要进
行检查他们的有效日期,要保证每个部件都没有过期才能保证系统整体运行,同时要检查系统的线路是否有连接错
线、短路、虚焊等情况的发生,这些小问题都有可能造成失误,当这些初步检查结束以后,我们开始接电源,观察
板子上面的各个模块的器件是否可以正常运行,如果芯片可以正常运行那么就没有问题,如果芯片运行过程中出现
错误,则系统在硬件或者软件中可能会存在一个问题,需要我们不断进行调试解决出现的错误,这样可以避免系统
运行过程中出现差错或者误差。
5.2.1液晶显示模块调试
当接通电源以后,液晶显示模块初始化,LCD1602液晶显示屏幕里有四种状态值,分别是系统采集到的烟雾浓度
值和温度值,系统设定的烟雾浓度上限值,系统设定的温度上限值,[14]当屏幕中显示出的数值不是我们最初的设
定值时,我们需要使用按键进行对屏幕中显示的数据进行调试,将其调到正确的显示值。
可以通过下面的四个按键来调试,报警值的上限制,按键从左到右的顺序依次是紧急报警按键、减键、加键、
设置键,按下设置键可以多上限进行调试,调试到合理范围内,如下图所示,将温度值调试在35摄氏度,烟雾浓度
值调适到100左右。
5.2.2报警模块调试
使用热毛巾模拟火灾现场的温度值,当温度达到设定的数值时,蜂鸣器进行报警,黄色警报灯也会同时亮起
来。在此过程中可能会出现温度值达不到设定值,或者温度值一直不上涨的情况出现,这是我们需要考虑热毛巾的
温度是否可以达到设定的温度值,同时还需要检查温度传感器是否出现问题导致不灵敏温度一直不上涨。
使用打火机放气营造火灾现场的烟雾浓度值,当烟雾浓度达到上限值以后,红灯亮同时蜂鸣器进行报警。该过
程中出现了报警值不够和报警值不增加的情况,当出现这两个问题时我首先考虑到时因为我放气的方式不对或者时
烟雾传感器出现了问题,当我尝试着改变我的放气方式以后,烟雾浓度值开始不断增加甚至超过了设定值,由此解
决了出现的问题,同时也排除了烟雾浓度传感器有故障的问题。调试报警图如下图所示;
图21 烟雾浓度报警图
5.2.3抽水电机模块调试
接入电源以后抽水电机进行初始化,然后将抽水电机放入水中,当烟雾浓度达到上限值以后,声光报警的同是
水泵进行抽水灭火处理,在此过程中可能出现不出水和出水比较缓慢的情况,这是需要我们考虑是否电源不稳定或
者电机出现问题和故障,当我们检查电源以后,若此情况得到改善,那么就可以排除电机故障问题,若当我们检查
过后,问题依旧没有得到改善,这个时候需要我们去检查电机是否出现故障,若出现故障我们需要对其进行维修或
者更换一个新的电机,以便能够解决此问题,调试图如下所示;
图22 抽水电机工作图
接入电源以后抽水电机进行初始化,然后将抽水电机放入水中,当现场温度值达到设定数值以后,进行声光报
警同时水泵进行抽水灭火处理,这是我们也需要观察水泵是否出水,出水速度是否合乎常理,因为此问题关系到是
否能够第一时间解决火灾问题,所以我们需要多多观察,出现问题以后,第一时间分析出现的原因,找准病因,才
能更好的解决问题,调试如下图所示;
图23 抽水电机工作图
附录一:总电路图
附录二:PCB图
6总结
火灾报警器在我们的日常生活中发挥着至关重要的作用,避免了很多危险的情况发生,例如:工业以及生活的
爆炸事例、煤气中毒的发生,一些家庭火灾的发生。它是我们日常生活中和消防事业发展中必不可少的一部分,它
具有非常大的发展前景。
本论文对温度和烟雾传感器对于报警系统做了比较深入的研究,通过不断地对比和研究报警系统得到了完善和
改进,并对整个系统和总体结构做了详细的分析和设计。经过不断努力,本论文实现了火灾自动报警器的设计并使
之达到该有的标准。该系统由stm32单片机、温度传感器、烟雾传感器、蜂鸣器、电源、指示灯、水泵、按键组成,
具有长期工作稳定性等优点。[15]该火灾自动报警系统可以实现蜂鸣器和信号灯报警、水泵灭火等功能,他的主要
工作原理就是通过探测周围环境中的烟雾和温度数据,与报警值进行对比,一旦超过设定值,就立即启动声光报警
进行水泵灭火处理,这样能够更好有效的预防火灾的发生,并且使用起来非常的便捷同时该火灾自动报警器的功能
的实现也是非常方便的。在研究火灾报警器的时候,我们应该多做扩展,使其功能更加的完善,同时可以进一步的
提高安全性能,使之在很多复杂的环境中可以进行报警处理。火灾自动报警系统实现起来比较简单容易操作,所以
很受大家和用户的喜欢,因此该火灾自动报警系统能广泛应用于小区、居民楼、工业、办公楼等一些场合,对于保
护人类安全和财产安全具有重大的意义。