system: [SYSTEM]

user: 3. 系统实现和分析 本项目的实现主要包括两个大的方面：火警检测模块和自动灭火模块。火警检测主要包括传感器感知发生火灾地，以及采集其他关键的信息传送至网关，一旦检测到温度超过阈值(也包含其他传感设备如烟雾传感器、Co传感器)，则向网关发送警报，网关为安卓的嵌入式设备。网管嵌入式设备主要对火灾地点获取后通过UDP协议发送灭火指令给上位机模块。这时小车即可到达布设的报警传感器的节点位置进行灭火。 3.1. 系统整体通信设计 通信模块作为整个系统的关键数据传输载体，该模块贯穿于从感知层的数据到灭火车的自动灭火整个过程。具体通信如图1所示。传感器采集温度信息后通过zigbee协议进行传感器网络的通信传送到协调器模块，进而协调器模块经过串口将数据上传的嵌入式网关的程序中。嵌入式网关获取到数据后转发导数据中心，由数据中心系统通过温度的阈值判定，当温度超过阈值时则通过UDP协议向AGV小车发送救火指令，AGV小车收到指令后经过GPIO口向Arduino上发送驱动的代码，Arduino解析后进行电机的控制。 3.2. 火警检测模块设计与实现 火警检测模块已经包含了物联网中整个三层的体系结构 [ 5 ] ，其中主要包含感知层(社区房间内温度获取和Zigbee协议的通信网络)、网络层(嵌入式安卓)和应用层(火警检测子模块和自动灭火子模块)。 图1. 模块间通信关系 3.2.1. 感知层设计与实现 当火灾事件发生时，可能会出现明火以及其他物体燃烧后的异常气体。并且当物体燃烧时，引起的最直观的现象就是温度会发生一定程度的升高，并可能伴随一些可燃气体的释放如一氧化碳、氢气和甲烷等。这些特征为感知层的感知对象提供了可能性，因此本问设计采用了温度传感器DS18B20来进行终端节点数据的采集。主控芯片采用携带ZigBee通信模块的CC2530。 随着ZigBee技术在物联网中应用越来越广泛。这打开了物联网传感器设备通信的缺口，这使得无论是在节点个数还是能源消耗上，都使得基于该技术的无线火灾报警系统具有了广阔的发展前景。 本文的信息采集模块采用CC2530节点进行温度的采集，然后经过ZigBee协议将温度信息发送到网关，网关会时刻对温度信息进行检测和上报。 感知层的实现开发环境是IAR Embedded Workbench for 80518.10.采用的协议栈为TI的ZStack-2.3.0-1.4.0，通过Z-Stack协议栈实现了对传感器节点和协调器节点的设计和实现。通过传感器节点的数据采集可通过协调器将该节点采集的数据发送到安卓嵌入式网关上。传感器节点如图2。 3.2.2. 网络层设计 网络层主要是将安卓嵌入式设备从协调器设备上采集的数据进行网络层的处理和转发。这里针对社区内的一栋楼为一个Internet网的节点，将社区内的网络作为一个网络单元进行数据的交互和火灾报警系统的检测控制。网嵌入是网关收到该单元的温度数据后，通过UDP协议向数据管理中心设备进行数据转发。网络层中的设备关系图如图3。 3.2.3. 应用层设计 应用层设计主要包含火灾检测子模块与自动灭火模块，这里自动灭火模块单独进行设计分析。该模块主要是在嵌入式设备上进行数据的可视化和报警。安卓系统本身具有SIM卡拨号模块，因此可以实现针对火灾不可控时的报警任务。该模块数据主要通过网络层的数据集中进行接收和分析。 数据管理中心可通过各个单元嵌入式网关设备进行数据的收集和监控。数据检测图如图4。当判断事件为火警时则向自动灭火模块发送灭火指令。当消防救援人员到达火灾现场前，可以对于火灾地点先进行自动小车灭火，并且可以通过AGV小车上的摄像头对火灾现场进行图像的采集，了解火情。各个监测点的数据将自动上位机进行数据解析。在正常情况下可以固定传感器位置进行定向的监测点的火灾监测。该系统对保护人身与财产安全有着重要的意义。 图2. 传感器节点 图3. 网络层中的设备关系 图4. 数据管理中心对房间1的实时检测数据 3.3. 自动灭火模块设计与实现 这里采用AGV小车进行自动灭火模块的模拟设计 [ 6 ] 。本文中实现的AGV小车是基于UWB平台的定位系统，路径规划，惯性导航，远程控制于一体的AGV小车自动灭火系统。AGV小车见图5。 3.3.1. UWB定位技术 超带宽(UWB)是一种短距离，高带宽具有较强抗干扰能力的通信方式。UWB定位技术广泛应用在那些有较高定位精度要求(20~30 cm)的场合。一个典型的UWB系统结构中包括若干无线信号发生器和几个能够接收信号的接收器，也叫定位标签(tag)。该定位技术可以用于室外定位 [ 7 ] 。本文采用Ubisense的定位方案。定位标签如图6。 该解决方案内部已经完成了对于标签的位置信息解算，因此可以在完成配置之后，向外以UDP方式发布标签的位置信息，方便与其他模块的集成。图7是该定位解决方案的平台布局示意图。 图5. 自动灭火AGV小车 图6. 定位标签 图7. 定位平台的布局图 3.3.2. AGV车载端设计 AGV车载端主要包括一台小型电脑树莓派，带有无线网卡，软件系统是基于Linux的Raspbian操作系统，并在其上装有QT运行环境。(因为车载端运行的程序是由QT编写的)在AGV车载端：我们用的是C语言和C++，开发工具是QT5.3是在pc端完成后再在车载端进行运行的。 部分核心代码如下 3.3.3. 系统开发地图格式设计 考虑到社区内路径的简单表现形式，本文自定义了地图格式MapInfo，分别用来显示整个社区的地理信息，显示AGV小车的在社区中的动态的位置和用来计算规划路径，以便于AGV小车顺利完成自动导航实施灭火的过程。下面是关于MapInfo的相关介绍。MapInfo地图文件为以一定格式储存位置信息的文本格式文件，文件中储存了一个区域中所有关键点和路径等信息，同时还存放了区域中的对象的边界信息。文件编码格式统一为UTF-8，文件拓展名是*.mapInfo。为了统一整个系统的开发与维护等工作， 区域：指的是整个需要描绘区域的二维平面构成。 关键点：亦称参考点或导航点。用来表示每条路径的起点、终点以及拐点信息，也可能用来表示两条路径的交汇点。注意，关键点是最终路径规划中AGV的起点或终点。 路径：两个关键点之间唯一确定的直线路径。注意，每个路径仅连接两个关键点，路径当中不包含其他关键点。测绘时应当满足路径不交叉。 对象：用来表示区域中除了路径、关键点之外的物体等。每个对象用一个三角形或多边形表示。 对象顶点：表示对象多边形的顶点。 对象边界：表示对象多边形的顶点连成的直线，所有对象边界围成的多边形为一个对象。 对于以上名词的详解如下： 1) 关键点是路径规划的基本单位，关键点有以下属性：唯一编号、坐标、名称、属性。 2) 每条路径能且仅能由两个关键点连接而成。AGV必须沿路径运行，路径不能交叉，如有实际需要，交叉处应设置一个关键点。路径有以下属性：唯一编号、起止关键点唯一编号、宽度、权重。权重是用在最短路径算法中的标志量。 3) 对象包括对象顶点和对象边界，对象不能与路径或关键点重合。对象包括以下属性：对象唯一编号、对象名称、对象顶点集合、对象附加属性。对象名称和对象附加属性用来给外界呈现，可以自定义其属性值，属性值将直接显示在UI中。 4) 对象顶点仅包含坐标属性。 5) 对象顶点依次(在文件中出现的先后顺序)相连，最后再与第一个顶点连接组成闭合多边形即为对象边界，因此对象边界不在文件中记录以减少冗余。 6) 区域为整个MapInfo所表示的二维空间，包含以下属性：区域号、区域名、区域附加属性等，这些仅用于UI呈现。区域必须在MapInfo文件的最前面定义。 本文中的地图格式如下： 图8. AGV小车视频监控测试 3.4. 火灾现场视频采集模块模拟 这是采用树莓派平台经过USB驱动视频模块，然后经过motion模块对视频细节进行配置和发布web监控端口，当发生火灾时可以进行端口查看，通过在远程的PC或者手机的浏览器进行在线的对火情进行监控。数据中心通过对该图像的分析，增加了对火灾的现场检测，可以通过人工的方式选择拨打119事件。视频测试模块如图8。