基于LoRa的分布式火灾监测报警系统的设计与实现
2020-08-31文渊博牛澳毛夏煜张桃靖冯兴乐
文渊博 牛澳 毛夏煜 张桃靖 冯兴乐
摘 要:物联网技术的飞速发展实现了人与物、物与物间的通信与控制,使我们的生活更加趋于智能化。在实际生活中,常见的有线按压式火灾报警装置无法自动报警,在发生火灾时需要人为按下开关才能工作,而且在发生火灾时其供电电路往往会被烧毁,使开关无法发挥作用。因此急需研究一种基于LoRa的分布式火灾监测报警系统,该系统可以用来远距离监测多种场景下的火灾情况,并在发生火灾时及时上报并报警。经过反复实验,该系统能够可靠地反馈场景火灾情况,且LoRa较远的传输距离与极低的功耗能够充分满足系统需求。
关键词:物联网;火灾监测报警;LoRa;串行口通信;单片机;传感器
0 引 言
据统计,2019年3月份全国共接火灾报警2.24万起,伤亡近200人,直接财产损失约2.14亿元。其中室内火灾9 084起,占到总数的40.5%,是人们生命财产安全受到伤害的一大源头[1]。由此可见,室内的火灾实时监测是亟待解决的重要问题。
目前来说,考虑到成本问题,多数建筑内部使用的报警装置均安装在楼道或者主要仓室等地方,室内特别是私人办公室很少见到火灾报警装置,并且大多数建筑使用的是传统按压式报警系统,该装置需要人为按压才能进行火灾报警,具有一定的滞后性与危险性。虽然目前已经出现了许多类型的自动火灾报警系统,如基于视觉分析,ZigBee,WiFi,蓝牙等,但造价昂贵、传输距离短等缺点使许多用户对其望而却步。鉴于此,设计造价低廉、通信距离远、传输速率大、功耗极低且能被广泛应用的基于LoRa的火灾报警系统便成为最佳选择。该系统可在发生火灾时由子节点第一时间报警并发送火灾信息至汇总节点,方便用户尽早发现火灾并采取相应措施,避免造成大的人员伤亡和财产损失[2]。
1 系统的设计与架构
按照主要功能的不同可以将系统分为感知端、收集端和应用端。
(1)感知端包括MSP430F149单片机、感光火焰传感器、LoRa无线通信模块等,负责感知其范围内是否有火灾发生,生成包含当前地址和火灾信息的数据并发送至收集端。
(2)收集端包括LCD显示模块、LoRa无线通信模块等,负责收集来自感知端的数据,分析所得数据,得出包含的地址信息和火灾状态后,在LCD对应位置进行显示并将这些信息发送至应用端。
(3)应用端是基于面向对象的Java程序设计语言开发的、适用于该系统的、可拓展的串行口通信软件平台,其主要负责分析由收集端上传的数据,并在分析后判断是否某一子节点有火灾发生并显示该子节点状态,若发生火灾便立即报警。
系统整体架构如图1所示。
2 系统的实现
2.1 感知端的实现
感知端通过火焰传感器判断是否发生火灾,在接收到由收集端下发的回送数据命令后将包含地址信息和火灾情况的数据发送至收集端,根据是否发生火灾改变节点处的火灾指示灯状态与是否报警。该端以MSP430F149单片机为控制核心,它是一个16位、具有精简指令集、低功耗的单片机,拥有多路I/O设备接口,可以实现两路串行通信,大大简化了开发流程[3]。该端的主要实现电路如图2所示。
采用感光火焰传感器判断是否发生火灾。该传感器能将外界红外光的强弱变化转化为电流变化,探测角约60°。为更加方便地获取传感器状态,结合可调精密电位器和反相电压比较器LM393共同构成火焰探测模块,其中可调精密电位器用来调节感知火焰的灵敏度,以满足在不同场景下监测火源對于灵敏度的不同要求。电压比较器作为输出口输出逻辑电平,以提高该模块的驱动能力,保证输出波形良好。当传感器感知到有火灾发生时,输出波形会产生一个下降沿令MCU产生外部中断,进入中断后将执行蜂鸣器响、指示灯亮、回送数据等操作。火焰探测模块电路连接方式如图3所示。
为实现向收集端发送数据的功能,该系统使用由ALIENTEK公司推出的低功耗、高性能、远距离收发的LoRa无线通信模块,其采用高效的ISM频段SX1278扩频芯片。SX1278芯片采用LoRa线性扩频调制技术,其具有很强的通信抗干扰能力,对于相同频率的干扰和噪声具有极强的抑制能力;其抗多径衰落能力表现良好,传输数据的误码率极低[4]。该模块频段范围为410 MHz~441 MHz,以1 MHz为步进信道,共32个信道,功率为100 mW,接收灵敏度为-136 dBm,传输距离约为3 000 m。LoRa无线通信模块与ZigBee,WiFi,蓝牙等无线通信类型的对比见表1所列。在与MSP430F149单片机连接前,需要通过AT指令设置该模块工作在透传模式,其波特率也应与单片机串行口通信设置的波特率一致,如此才能确保传输数据调制解调正确进行[5-6]。配置完成后,需要定义模块的TXD引脚、RXD引脚与单片机的对应引脚,并将其设置为特殊功能引脚,从而实现模块与MCU串行口的正常互通。
2.2 收集端的实现
收集端用于接收来自各节点的数据,并对数据进行分析,得出其中所包含的地址信息和火灾状态。在LCD中对应位置显示后再将数据重新打包发送至上位机。该端的功能主要利用LoRa模块和串行口通信实现,其主要实现电路如图4所示。
2.2.1 LoRa软件协议
在实际生活中,需要同时监测的节点数一般超过10个,如果分别为每个节点配置一个具有感知端、收集端的单片机和LoRa无线通信模块,这无疑大大降低了系统的拓展性,因此定义LoRa无线通信模块发送或接收的数据除模块地址及校验位外,有效数据为一个字节长度。在这一个字节长度的数据中,高7位为子节点地址,低1位为该子节点所监测的对应地址下的火灾状态。并定义某一子节点发送的有效字节数据与11111110进行与逻辑运算,得到一个字节,其为该子节点可识别的回送数据命令,如某一子节点发送的数据为10101101,在与11111110进行与逻辑运算后可得出该子节点可识别的回送数据命令为10101100,即当该子节点收到10101100这一个字节的有效数据命令时,便将已准备好的数据通过LoRa回送至收集端。
当感知端、收集端分别上电后该系统开始工作,此时收集端向应用端告知其已在线,之后便通过收集端LoRa从所定义的最低地址即00000010到最高地址11111110循环广播这些命令,在感知端接收到当前子节点的回送数据命令后便回送数据,大大降低了数据在传送过程中丢失与发生错误的几率[7-8]。另外,由于LoRa是一种半双工无线通信模块,在通信时极大可能发生收发数据冲突情况,为解决多个子节点向一个汇总节点发送数据时可能发生的数据堵塞、碰撞等问题,收集端在广播的两个命令之间插入了一定延时,以此保证在收集端接收来自感知端的数据时信道处于空闲状态。
该软件协议方案的提出,一方面增强了该系统的拓展性、稳定性,另一方面将可挂接子节点增加至128个,满足了绝大多数场景下同时监测多个场景火灾情况的要求。
2.2.2 上传数据至应用端的实现
MSP430F149单片机可以进行两路串行口通信,但在感知端与收集端的通信结构中已经占用了该单片机的UART0串行口,因此使用UART1作为向应用端上传经收集端分析打包的数据串行口。在该系统中收集端无需从应用端得到下送数据或命令,因此除供电电路外收集端与应用端仅需1根串行通信线即可实现上传数据的功能,为故障源检测和系统搭建解决困难[9]。
2.3 應用端软件的实现
应用端由面向对象的Java程序设计语言实现,该语言具有面向对象、多线程等特性,结合RxTxcomm.jar依赖包便可以很快地实现串行口通信,又因该语言的平台无关性,使得该应用端软件可以一次编译,广泛运行,大大拓宽了该系统的应用面[10-11]。应用端系统流程如图5所示。
基于LoRa的分布式火灾监测报警系统的应用端主界面如图6所示,该软件将每一节点对应具体地址,通过分析由收集端上传的数据来确定是否改变对应节点的状态灯状态,并在监测到火灾发生时通过上位机扬声器报警。但由于该系统目前是可实用的非商业化系统,故在此应用端软件中只出现了两个节点来满足系统整体功能测试,并未将所有挂接子节点体现。为了进一步加强系统的再生能力和灵活性,在软件接收到由收集端上传的来自所定义的最大地址的子节点数据时,统计已经收到的所有数据,并判断是否未收到来自某一子节点的数据,将对应的子节点地址通过下拉列表显示,以方便用户及时发现故障并维修。除此之外,该软件提供用户自定义功能,用户可在系统安装初期确定每一个子节点所对应的房间号或楼层号等具体地址,只需要在对应子节点后的TEXT输入框中输入即可。安装完成后,用户可以从主界面中监测每一个具体地址的火灾情况。
3 系统测试及分析
待该系统的三个功能端建立后,在模拟实际应用场景下进行测试。为简化测试条件,实验场景包括2个感知端子节点、1个收集端、1个应用端,使用打火机火焰作为模拟火源,分别测试火焰传感器的感知范围、LoRa实际有效通信距离、系统整体工作性能,以及当某一功能端发生故障时系统的工作情况,进一步确认该系统是否可对实际应用场景下的火灾情况进行监测与报警[12]。
3.1 火焰探测模块测试
该探测模块基于感光传感器建立,在电路中采用LM393反相电压比较器作为输出接口,该电压比较器在未探测到火焰时电路保持高电平输出,探测到火焰时输出为低电平,在火焰消失时输出变回高电平。在该电路中,如果将滑动变阻器调节至0 Ω,则无论外部环境如何变化,模块输出恒为高电平;如果将滑动变阻器调节至10 kΩ,则无论外部环境如何变化,模块输出恒为低电平。
通过综合考虑,将滑动变阻器用一7 kΩ的定值电阻代替进行测试,通过数字示波器观察模块输出波形变化,控制模拟火源正对传感器保持不变,测量在不同距离时模块的输出结果,具体见表2所列。
通过观察测试结果,火焰探测模块与模拟火源正对距离不超过80 cm为该探测模块的可感知有效距离。但因为测试使用的模拟火源是打火机火焰,其火焰强度不足,而实际场景中的火源强度更高、面积大、温度高,更容易被该探测模块感知到,故根据本次测试结果可知,该模块探测火焰的灵敏度高,且输出稳定,满足该系统室内范围监测的设计要求。
3.2 LoRa有效通信距离测试
作为实现本系统通信功能的核心模块,LoRa无线通信距离是决定整个系统能否实现远距离通信的关键[13],为此在建筑体内对感知端与收集端的有效通信距离进行测试,测试前分别在感知端和收集端MSP430F149单片机的第二组I/O口接8个LED电平指示灯。测试方法:感知端发送一个字节有效数据0xf0到收集端,收集端在收到该数据后利用8个LED电平指示灯显示二进制码,然后将这一字节的二进制数求反码并发送给感知端,感知端在收到该数据后利用LED电平指示灯显示该二进制码(此后所有二进制数将转化为十六进制表示)。为简化实验变量,本实验只测试了不同楼层间的LoRa通信情况,且墙壁厚度默认一楼天花板到二楼地面的距离为20 cm,每层楼高度为3 m,具体测试结果见表3所列。
该测试方法尽可能还原了本系统发送端与收集端每次通信所需要发送的数据大小和实际的应用环境,实验中接收数据错误的概率为0,结果证明,LoRa的建筑内无线通信距离满足该系统的设计要求。
3.3 系统整体测试
在火焰探测模块和LoRa无线通信模块测试完成后,考虑到实际应用场景装置放置情况,将两个感知端子节点分别放置在建筑体两层的两个房间内,并在另一层放置收集端与应用端,以此进行系统整体测试[14]。本次测试结果见表4所列。
测试表明,该系统的监测结果与人工监测结果一致,而且能够自主报警与显示,满足该系统的整体设计要求。
3.4 系统故障测试
火灾监测报警系统应用场景故障测试结果见表5所列。
可以看出,在某一感知端子节点出现故障时,不影响其他子节点的正常工作;在收集端出现故障时,各感知端子节点可实现独立工作;在应用端出现故障时,各感知端子节点与收集端均可正常工作。
4 结 语
本文通过分析目前的火灾安全问题现状,基于LoRa无线通信模块,使用MSP430F149单片机作为三端连通核心,结合物联网技术、传感器技术以及面向对象的Java程序设计语言,实现了基于LoRa的分布式火灾监测报警系统。通过阐述该系统3个功能端的设计原理与实现方案,经过在实际应用场景下具体的反复测试与结果分析,确定该系统满足监测火情、自主报警、无线通信的功能需求,并且可以进行准确、稳定、远距离数据传输。另外,无论是感知端还是应用端都具有极强的可扩展性,可以根据实际场景的需要进行不同的扩展及开发。综上所述,基于LoRa无线通信背景下的火灾监测报警系统将是消防安全領域中新的发展方向,其将火灾监测、火灾报警、物联网技术相结合,能够高效地挽救生命财产。
参考文献
[1]龙湾消防分局.数据带你走进2019年第一季度火灾分析[EB/OL].https://zj.zjol.com.cn/qihanghao/100056005.html.
[2]李宏文,张向阳.建筑物火灾监控系统的智能化发展[J].工程设计CAD与智能建筑,2002(2):21-23.
[3]岳洋,焦运良,邢计元.基于MSP430的智能数据采集系统[J].信息技术与网络安全,2019,38(10):73-77.
[4]赵静,苏光添.LoRa无线网络技术分析[J].移动通信,2016,40(21):50-57.
[5]邬亮,吴卓葵,曾杨达,等.基于LoRa的温室多点无线监测系统设计[J].仲恺农业工程学院学报,2020,33(1):1-5.
[6]霍振龙.LoRa技术在矿井无线通信中的应用分析[J].工矿自动化,2017,43(10):34-37.
[7]王阳,温向明,路兆铭,等.新兴物联网技术:LoRa[J].信息通信技术,2017,11(1):55-59.
[8]陈晓静.基于MSP430单片机的多机串口通信设计[J].信息化研究,2009,35(12):35-37.
[9]赵太飞,陈伦斌,袁麓,等.基于LoRa的智能抄表系统设计与实现[J].计算机测量与控制,2016,24(9):298-301.
[10]吴金锋,刘伟平,黄红斌.Java串口通信数据采控系统的设计与实现[J].微计算机信息,2010,26(10):65-66.
[11]丁振凡,王小明,邓建明,等.基于Java的串口通信应用编程[J].微型机与应用,2012,31(13):84-86.
[12]岳云涛,贾佳,王靖波,等.基于LoRa无线传输技术的电气火灾监控系统设计[J].电子技术应用,2018,44(12):32-35.
[13]顾兆平.基于LoRa无线通信技术的电气火灾监控系统[J].消防技术与产品信息,2018,31(10):50-52.
[14]杨欢,李红信.一种采用LoRa技术的智能水表设计[J].无线电工程,2017,47(12):75-78.