基于物联网架构的智能火灾预警系统的设计
扫描二维码
随时随地手机看文章
本文介绍了一种基于物联网架构的智能火灾预警系统的设计,以ZigBee无线传感器网络为底层的数据采集和传输网络,完成对火灾信息的准确感知。WSN节点以CC2530和CC2591为处理和无线收发单元,以DHT21和MQ传感器为数据采集单元,实现了多传感器数据采集。采用Qt技术设计了系统GUI,基于qextserialport类和SQLite数据库实现了系统的串口通信和数据库操作。测试表明,系统准确可靠,GUI界面友好,易于操作。
物联网(Internet Of Things,IOT)技术的提出和快速发展为火灾预警技术的发展提供了新的思路和解决方案。当前,火灾预警系统作为智能家居、楼宇自动化的重要组成部分,已经得到广泛应用和普及。但是,系统的实时性和准确性一直有待提高,传统的总线制火灾系统在使用中已经暴露出了很多问题,包括布线的种种弊端以及高虚警率和漏警率等。鉴于此,本文设计了一种基于物联网架构的智能火灾预警系统。
1 系统概述
系统采用物联网架构设计,按照其四层结构模型,以ZigBee无线传感器网络(ZigBee—WSN)为底层的感知识别层,以GSM/GPRS或Inter net为网络构建层,管理层和应用层则采用PC和智能手机相结合的方式。系统的整体结构如图1所示。
底层数据采集网络采用ZigBee树簇状网络,由传感节点、汇聚节点和管理节点组成。部署系统时,首先在待监测区域固定若干汇聚节点,作为单位区域内的路由器,汇聚网络信息。汇聚节点采用消防电源长期供电,确保网络的稳定。传感节点则可以根据实际需要随机布置,具有可任意“播撒”的特点。这样,若干传感节点通过2.4 GHzISM信道不断地将环境感知数据发送给汇聚节点,再由其汇聚给管理节点。管理节点作为ZigBee网络的协调器,负责整个网络的建立、信道选择、地址分配以及节点的加入和退出等,并通过RS232与控制管理中心PC通信。控制管理中心应提供良好的人机交互环境,实时显示网络的状态,存储网络上传的数据。同时,还可以对多传感器采集数据进行信息融合,达到对火灾的智能判别。在确定存在火情的情况下,能够进行声光、短信报警,并启动自动消防设备。
2 系统硬件设计
2.1 处理器单元设计
感知识别层采用ZigBee—WSN技术,负责完成复杂环境下的火灾信息感知。系统中,各传感节点的处理器单元和无线收发单元分别选择TI公司的CC2530芯片和CC2591芯片。CC2530内部集成了工业标准的增强型8051内核、符合2.4 GHz IEEE 802.15.4的RF收发器、21个可编程逻辑的GPIO、5通道的DMA、8通道可配置分辨率的ADC、看门狗定时器以及AES安全协处理器等。因此,CC2530以其较高的性价比成为高校开展科研、企业进行产品研发的重要选项,已经具有了较高的市场占有率。同时,系统还增加了射频放大芯片CC2591,其目的就是保证网络的传输距离和复杂室内环境中的穿透能力,确保网络数据的可靠传输。经测试,采用了CC2591的WSN节点的传输能力可达500~1000 m,且穿透能力得到了较大的提升。
系统WSN节点的硬件电路如图2所示。
2.2传感器单元设计
参考文献对火灾产生的原因、火灾预警原理及火灾信号选取做了详细的分析。基于此,根据火灾发生的前期特征,系统分别选取了温度、湿度、烟雾和CO浓度作为火灾监测对象。各传感节点采用多传感器技术,分别连接了DHT21温湿度传感器、MQ2烟雾传感器和MQ7一氧化碳传感器。DHT21是含有已校准数字信号输出的温湿度复合传感器,采用单排4针引脚封装。使用时,只需将DATA引脚连接到MCU的任意GPIO即可,这里是连接到CC2530的P1 5引脚。另外,为了确保CC2530对DHT21有足够的驱动能力,在DHT21 DATA引脚接有5.1 kΩ的上拉电阻,确保芯片有合适的灌电流。这样,只要按照DHT21的逻辑时序编写程序,控制MCU引脚的输入/输出,就可以从DATA引脚准确读出温湿度数据。
MQ2和MQ7传感器都属于气敏型传感器,两者的原理相似,都属于MQ传感器。MQ传感器所采用的气敏材料是在清洁空气中电导率极低的SnO2,当将它放置于某种敏感气体环境中时,电导率将随该种敏感气体浓度的增大而增大。因此,在驱动MQ传感器时,只需根据传感器特性搭建合理的驱动电路即可。MQ传感器的输出均为模拟量,故应交由MCU进行A/D转换。CC2530的P0口是其内部ADC的8通道输入端口,故将MQ2和MQ7的输出端分别连接至P0_0引脚和P0_1引脚。MQ传感器有6只针状引脚,如图2所示。2引脚和5引脚用于提供加热电流,供电电压为5 V,其余引脚用于信号取出。通过电路分析可知,4引脚和6引脚的输出电压为。Rs为敏感体电阻,阻值一般为2~20 kΩ。当空气中的敏感气体浓度增加时,电导率增加,Rs下降,故输出电压Uout增大。电位器RL除了起到限流作用外,最主要的作用就是实现对WSN节点灵敏度的调节和校准。由于MQ传感器内部的气敏元件在不同环境下对不同种类、不同浓度的气体有着不同的阻值Rs,因此为精确考虑,在温、湿度变化较大的环境中,需要对节点的灵敏度进行调节,这也是系统增加湿度测量的一个主要原因。
3 系统软件设计
3.1 ZigBee—WSN软件设计
底层的数据采集网络采用ZigBee2007协议规范设计,基于TI公司提供的半开源Z-Stack协议栈开发。系统的整体流程如图3所示。
3.2 系统GUI设计
由于要求控制管理中心PC提供良好的人机交互环境,故采用图形用户界面(GraphICal User Interface ,GUI)设计。采用GUI设计的优势就在于它提供的界面具有友好性,可以帮助减少用户的认知负担,满足不同用户的设计需求。当前较为流行的GUI设计技术包括MiniGUI、OpenGUI、MicroWindows/Nano—X、Qt等,另外,采用VC++、VB等也可以完成GUI的开发。但是,这些软件在API的封装性、跨平台性、代码量、设计难度和开发周期上都存在很大差异,拥有各自的优点和缺点。因此,综合考虑各种因素,这里采用Qt技术设计系统的GUI。设计是基于Qt 4.7 SDK完成的,该软件版本集成了Qt 4.7.4和Qt Creater 2.4.1集成开发环境(IDE)。
设计时,首先在main.cpp文件中创建QApplication类对象。QApplication类主要用于设置和管理GUI应用程序及其控制流,包括控制主事件的循环、初始化和结束来自用户接口或其他系统资源的应用程序、提供会话管理等。然后就可以根据系统需要添加实际应用,这里设计了一个系统登录窗口和一个控制管理窗口,分别命名为logindlg.cpp和firesystem.cpp。添加完成后,将自动生成相应的头文件(logind lg.h、firesystem.h)和界面文件(logindlg.ui、firesystem.ui)。
控制管理中心PC要接收网络管理节点发送的环境监测数据,因此实现串口通信是进行GUI设计的关键。Qt本身并没有提供串口控制类,故需要采用第三方编写的qextserialport类。qextsetialport类实际上是QIODevice的派生类,使用时,需要为工程添加相应的类文件qextseri albase.cpp、qextserialbase.h以及win_qextserialport.cpp、win_qextserialport.h。设计控制管理窗口时,为了保证系统配置的灵活性,在UI设计窗口中分别添加“端口号”、“波特率”、“数据位”、“校验位”、“停止位”5个Combo BOX下拉列表。然后通过按键Push Button进行系统的开启和关闭设计。Push Button的触发采用的是Qt提供的信号与槽机制,所有从QObject类及其子类派生的类都可以使用该机制。信号与槽机制是Qt的核心机制,它为用户提供了一种高级接口,该接口可用于各类应用对象之间的通信。这里仅给出实现串口通信的几个重要函数。
另外,网络上传的数据还需要通过数据库进行存储和查询,至少保证能够查询7天内的火灾监控数据。Qt支持绝大多数的数据库,包括Oracle、SQLServer、MySQL等。这些大中型的数据库往往用于较大规模系统的数据存储,开发和维护都需要专人负责,因此成本较高。而针
对本系统所做的火灾环境监测,只需要一个灵活易用的小型数据库即可。SQLite是一个轻量级的开源关系数据库,采用C语言编写,整体代码仅3万行,能够支持绝大多数的ANSI SQL92标准。相对于传统数据库,它的实时性强,处理速度快,系统开销小,底层的控制能力强。具体设
计时,首先在工程文件Firesystem.pro中添加代码:QT+=SQL。由于Qt默认安装了SQLite和ODBC的数据库驱动,因此在使用时,只需添加相应的驱动语句即可。其具体过程如下:
这里,使用QSqlDatabase类实现Qt与SQLite的连接,并驱动该数据库。若驱动失败,可以通过QMessageBox弹出错误提示。驱动成功后,将数据存放于数据库文件firEDAta.db中。此外,还需要使用QSqlQuery类,它为操纵和执行SQL语句提供了一种方式,能够实现数据库操作的所有功能。这样,通过QSqlQuery类可以在QSqlDatabase实例上执行SQL语句,完成创建、查询、修改数据库等操作。
系统测试时,GUI显示的实时监控状况如图4所示。