基于物联网的工厂火灾报警与认证系统——使用树莓派3

摘要

确保制衣工人的基本权利和安全已成为当今亟待解决的紧迫问题。制衣工厂的工人正面临着诸多困境,其中火灾频发无疑是重大威胁之一。投资者正在逐渐失去对该行业的兴趣,该行业的重要性也日益减弱。本文提出了一种能够检测火灾并提供受灾区域位置信息的系统。本系统采用树莓派3来控制多个Arduino,这些Arduino与多个传感器和摄像头集成在一起。摄像头配备了一个360°继电器电机,以便在检测到火灾的任何角度都能拍摄快照。我们为火灾怀疑系统提供了确认机制,以避免误报情况的发生。一旦检测到火灾,系统将立即发送一条包含受灾地点图像及Arduino位置的消息。管理员可以确认或否认警报,若管理员确认为火灾发生,系统将立即发出警报,并自动向附近的消防队发送消息。

关键词

火灾检测;树莓派;Wi-Fi模块;传感器;Arduino;摄像头;认证;通知。

一、引言

成衣(RMG)行业是孟加拉国经济的主要推动力。孟加拉国的成衣(RMG)行业是推动平均GDP增长率的主要催化剂。该行业已提供了超过420万个就业机会,有一百多万名劳动者在这些服装工厂工作。然而,这种显著的增长正受到工厂和工业中频繁发生的事故的挑战。

在过去十年中,孟加拉国的成衣行业经历了多起悲剧性事故。这些事故大多由火灾引起。2012年11月24日,首都达卡的“塔兹林时装厂”发生火灾,造成117人死亡[1]。2013年5月9日,位于米尔布尔工业区的一家纺织厂发生火灾,导致8人丧生。2010年12月14日,位于达卡阿舒利亚的服装厂“That’s It Sportswear Ltd”发生火灾,造成30人死亡,200人重伤。2012年2月2010[2],达卡加济布尔的“Garib and Garib”工厂发生严重火灾,导致22人死亡。这一系列事件表明,许多服装厂缺乏完善的火灾预防和救援系统。数百家工厂极易发生火灾,因为这些工厂非常陈旧,且缺乏火灾检测技术。此外,大多数工厂没有自动系统来切断燃料供应。

火灾发生时电力供应会中断,且消防部门到达灾难地点需要较长时间。从这一角度来看,亟需一种能够在火灾发生前检测到火情并向员工报警的系统。本文中,我们设计了一种基于物联网的火灾报警系统,以尽早检测火灾并挽救宝贵的生命。该系统将使用多个传感器来检测火灾的任何征兆。在对工厂易发生火灾的区域进行调查后,将传感器安装在合适的位置。选定最佳位置后,传感器将被激活。

传感器采集的数据将发送至分布在各处的Arduino微控制器。微控制器将对数据进行处理。所有微控制器将由树莓派微型计算机集中控制。采用智能算法判断何时启动火灾报警。此外,系统在检测到火灾发生时,将自动切断气体和电力供应,并启动灭火系统,例如打开灭火水阀。同时,系统将通过GSM模块向附近的消防站发送短信,通知事故情况。系统还将通过GPS模块向管理员报告火灾的位置。系统将使用多种类型的传感器,例如温度传感器、气体传感器、烟雾传感器、火焰传感器等。

II. 相关工作

Sowah等人[3]设计并实现了一种基于模糊逻辑的车辆火灾检测系统。他们使用温度、火焰和烟雾传感器来感知火灾。该系统还能够在20秒内扑灭火灾,并利用空调系统进行灭火。[4]中的作者提出了一种借助无线传感器网络检测森林火灾的范式。这些作者关注的是如何处理传感器收集的数据,而不是如何检测或感知火灾。他们使用神经网络处理所收集的数据,并使网络具有较高的能量效率。[5]中提出了一种基于视频处理的火灾报警系统。他们利用烟雾的颜色和烟雾扩散特性来检测可能发生的火灾。但图像处理耗时较长,且需要复杂的资源。在服装厂的情况下,应尽快检测到火灾,因为服装材料极易燃烧。[6]中设计了一种火灾监控与控制系统,其中使用了火焰、烟雾、气体传感器等多种传感器来检测火灾并启动灭火过程。

示意图0

他们还使用了GSM/GPS系统来定位火灾的确切位置。在我们所提出的系统中,我们使用的传感器比前述系统更多,并通过树莓派计算机对它们进行集中处理,该树莓派计算机能够非常顺畅且高效地同时处理大量Arduino和传感器。Fuzi et. al.[7]设计了一种采用ZigBee无线模块的火灾预警检测系统。该系统由Arduino Uno微控制器、温度传感器、蜂鸣器报警器和操作软件组成。该系统仅使用温度传感器来检测火灾,接收端可在10米距离内接收信号。我们所提出的系统则采用了Arduino微控制器内置的Wi-Fi模块和树莓派计算机。Kwon et. al.[8]设计并实现了一种利用摄像头图像处理技术检测火灾发生的系统。尽管这是一种新颖的方法,但在检测火灾方面,其效率和准确性不如基于传感器的系统。T. Islam et. al.[9]开发了一种使用ZigBee无线系统的火灾检测系统。作者采用定位技术来确定火灾的位置和距离。该系统相对成本较高,且作者使用了三个传感器来实现火灾定位。文献[10]中提出了一种用于检测森林火灾的无线传感器网络原型。他们除了使用传感器节点外,还采用了移动代理作为软件。该软件移动代理从传感器节点收集数据并将其返回到汇聚节点。他们没有实现该系统。

III. 系统描述

A. 系统架构

所提出的自主系统采用树莓派3作为主设备,Arduino Mega作为辅助设备,并包含多个传感器和模块,分别是光照强度传感器、气体传感器、ESP-01 WLAN传感器模块、舵机、摄像头模块、GSM模块和继电器模块。光照强度传感器含有光敏电阻,可检测特定位置或环境中的光线强度。该传感器的输出信号为模拟值,其数值取决于光线的亮度。气体传感器可用于检测特定区域中是否存在气体。摄像头模块拍摄有限范围内的图像,舵机用于旋转摄像头模块。ESP-01 WLAN传感器模块通过无线通信系统将数据发送至树莓派3。继电器模块用于触发报警,GSM模块则用于通知主用户或管理员。当光照强度传感器和气体传感器达到设定值时,摄像头模块会拍摄位置快照并将其发送至Arduino。

示意图1

示意图2

摄像头模块可以通过舵机实现360°旋转。当该条件成立后,火灾报警器将通过继电器模块触发。Arduino Mega 可以通过 ESP-01 模块将数据发送到树莓派。当树莓派接收到数据后,会通过 GSM 模块将数据发送给管理员,管理员将检查我们系统的警告信息是否有效,并确认或否认任何可疑情况。

B. 逻辑描述

在此自主系统中,该过程分为两部分。一部分是Arduino读取传感器的数据,另一部分是树莓派接收由Arduino采集的数据。该系统使用了几个传感器。其中之一是光照强度传感器模块,记为A;另一个是气体传感器模块,记为B。

示意图3

如果两个传感器值均达到设定阈值,即A>200和B>500,则条件为真,摄像头模块将在舵机的协助下旋转60°。此条件仅在单组传感器值为真时激活。但如果两组同时激活,则两组的条件分别为A>140和B>350。随后摄像头模块拍摄快照,并通过用作Wi-Fi模块的ESP-01将组编号发送至树莓派3。当树莓派接收到快照和传感器组编号后,会将其与IP地址和传感器组编号进行比对。如果匹配,则生成彩信并通过GSM模块发送给管理员。GSM模块等待回复。若回复为“确认火灾”,则通过继电器触发警报;若回复为“无火灾”,则停止警报;若回复为未知内容,则返回无效回复。5分钟后系统将自动重新检查该条件。

通过这种单组与多组传感器的组合,可实现360度覆盖,并检测特定位置的火灾活动。

IV. 系统实现

在系统实现中,我们将使用两种不同类型的微控制器:树莓派3和Arduino Mega 2560 rev3。编写在Arduino上的代码将包含每个Arduino的特定IP地址,以便识别各个设备。每个作为服务器运行的Arduino从传感器获取模拟读数,并将其与阈值进行比较。当传感器值达到阈值时,Arduino会执行必要的行动,包括通过ESP-01将数据发送至IP地址,数据内容包含情况的快照、传感器的配对编号以及该Arduino的IP地址,以便管理员能够定位紧急情况发生的具体位置。

在数据传输过程中,Arduino会将模拟信号转换为数字信号,以便树莓派能够理解。在树莓派上使用Python编程语言编写的代码会以客户端身份通过每个IP地址向路由器查询是否存在数据。一旦树莓派成功接收到数据,便会开始处理数据以执行后续操作。

作为客户端的主板名为树莓派3,它既是微控制器也是中央处理器,其处理器为1.2GHz 64位四核ARMv8 Cortex A53 CPU,配备900MHz频率的1GB内存、4个USB端口、1个HDMI端口、1个音频输入/输出端口和1个以太网端口,还包括40个GPIO引脚,这些引脚可配置为数字输入或输出。树莓派3板载无线模块,支持802.11n无线局域网和蓝牙4.1,并具备低功耗蓝牙功能,无需其他外部设备即可实现数据的无线接收与传输。在所提出的系统中,我们将使用四组传感器,每组包含一个TEMT6000光照强度传感器和一个MQ-02气体/烟雾传感器。TEMT6000是一种环境光传感器,内部有三个母头引脚,分别为Vcc、GND,信号引脚将向Arduino提供模拟读数。该传感器作用类似于晶体管,入射光越强,模拟值越高。MQ-02气体/烟雾传感器内部带有加热器,并包含一种对甲烷、丁烷、液化石油气、烟雾以及易燃和可燃气体敏感的电化学传感器,适用于室温下的室内环境。该传感器需通过气体传感器模块进行校准,配合合适的负载电阻和老化处理,以准确检测烟雾。

该模块包含四个公头引脚,分别为Vcc、GND、AOUT(模拟输出)和DOUT(数字输出)。我们将使用AOUT引脚连接Arduino的模拟引脚进行读数,因为所有数值随后将统一转换为数字信号。ArduCam MT9D111将用于捕捉现场情况,该摄像头为200万像素光学镜头相机传感器模块。该摄像头支持4:3格式,并采用RGB拜耳模式彩色滤光阵列。它提供两种帧率:UXGA和SVGA。我们将使用SVGA帧率,因为它消耗的数据更少。该模块内置氙气闪光灯,可在白天和夜间均能正常拍摄。模块还具备自动对焦系统,可自动调节至最佳对焦范围。使用360°伺服电机带动摄像头旋转至各个线性角度,从而实现全方位拍摄。该伺服电机可工作于4.8–6.0伏特电压范围内。其配备一根三针电源与控制线缆,Arduino通过数字输入/输出引脚向信号引脚发送控制信号,从而驱动伺服电机转动至指定角度。每个Arduino将连接一个单通道继电器模块,以便在接收到ESP-01 Wi-Fi模块返回的“1”信号时触发报警。ESP-01内置ESP8266芯片组,可使微控制器实现无线通信。系统与管理员之间的通信将通过GSM蜂窝连接实现,系统中将使用SIM808 GSM模块。SIM808 GSM模块是目前最新的GSM模块,集成了GSM、GPS和蓝牙连接功能。它能够收发来自GSM、GPS和蓝牙的数据,并可通过AT命令进行操作。该GSM模块将连接至树莓派3,并通过彩信发送位置信息和快照。随后模块将等待特定回复,该回复将触发相应的AT命令,并传递给Arduino以决定是否执行动作。

A. 实施步骤:

步骤1(配置可编程设备): 为每个可编程设备编写程序,这些设备包括:树莓派3、Arduino Mega 2560、SIM808 GSM模块、ESP-01串行转Wi-Fi模块、ArduCam MT9D111以及无线路由器。树莓派上的程序需使用Python编写,用于遍历每个指定IP地址的Arduino。所有Arduino的IP地址应列入树莓派程序中的一个列表。Python程序还应具备与SIM808 GSM模块通信的功能,并在其中注明管理员的手机号码。需要为所有Arduino编写程序,使其能够从传感器读取模拟数据、控制伺服电机旋转360°、从ArduCam MT9D111拍摄快照、通过ESP-01 Wi-Fi模块发送和接收数据,以及触发继电器开启。SIM808 GSM模块应插入SIM卡,并通过UART连接配置为GSM设备。ESP-01 Wi-Fi模块应同时配置为STA和AP模式,以便能够收发数据,同时还需设置唯一的SSID和统一的密码,以便每个模块可被识别并方便访问。ESP-01中应预先设置路由器的SSID和密码,以便其能自动连接路由器并进行通信。ArduCam MT9D111应配置为4:3格式、SVGA帧率,以及设定快照像素尺寸调整为200万像素,以便能够高效地捕捉和存储图像。

步骤2(将代码烧录到Arduino草图并在树莓派3上设置代码): 应将Arduino程序烧录到所有Arduino的草图中,并通过特定的IP地址和MAC地址配置代码。树莓派的程序可以保存在任意文件夹中,但需在/etc/rc.local文件中注明该文件的路径,以便程序在启动时自动运行,从而使树莓派可作为微控制器使用。

步骤3(集成传感器模块): 每个Arduino将连接8个传感器,其中4个为MQ-02,另外4个为TEMT6000,即总共4对,每对包含一个MQ-02和一个TEMT6000。传感器的信号引脚将按照图6所示,依次连接到Arduino的A0–A7引脚,顺序为一个MQ-02和一个TEMT6000重复连接;所有传感器的Vcc和GND引脚将分别连接到Arduino的5V和GND引脚。

步骤4(连接舵机和继电器模块): 继电器模块和舵机均有一个数字信号输入引脚,将分别连接到Arduino的D49和D35引脚。继电器模块的VCC和GND引脚将连接到Arduino的3.3伏和GND引脚。舵机的VCC和GND引脚也将连接到Arduino的3.3伏和GND引脚。

步骤5(连接ArduCam MT9D111): 连接 ArduCam MT9D111比其他模块更复杂,因为它具有输入和输出以及触发、捕获和存储功能。必须根据图5建立连接,以确保摄像头正常工作。数字和模拟引脚可以更改以正确容纳所有连接,但需要在为摄像头功能编写的程序中注明。连接后,摄像头需要与舵机连接以实现旋转功能。

示意图4

步骤6(设置ESP-01 Wi-Fi模块): ESP-01模块共有8个引脚,其中第一个是发送引脚,最后一个是接收引脚。发送引脚需要连接到Arduino的某个接收引脚,接收引脚需要连接到该Arduino组的发送引脚。引脚5和引脚6需要连接到Arduino的3.3伏端口,引脚4需要接地。

步骤7(连接SIM808 GSM模块与树莓派3): SIM808 GSM模块的一个发送引脚连接到树莓派的GPIO 17引脚,其一个接收引脚连接到树莓派的GPIO 18引脚。

步骤8(为所有设备供电): 在所提出的系统中,将直接连接到电源的主要设备包括树莓派3、Arduino、SIM808 GSM模块和路由器。树莓派3以及每个Arduino都需要连接一个5V 2.5A电源适配器。SIM808消耗的功率较大,因此需要7V ~ 12V的电源适配器才能正常工作。路由器的电压取决于其型号,但通常为12V。

示意图5

V. 实验结果

组装完我们的系统后,我们检查了传感器的读数。我们在不同情况下测试了系统的响应。传感器读数、自动拍摄快照并发送该快照、身份验证以及场所的当前状态如图8所示。

示意图6

系统 检测方法 是否具备认证系统
DWAFAS [11] 使用烟雾传感器与环境光传感器检测火灾 无认证系统用于检测误报
FRASHB [12] 提出了一些场景和应对措施 具有认证系统,降低系统错误可能性
FAHB [13] 成本高且耗时,依赖多个传感器节点判断火灾 成本效益高且高效,是MSBN的升级版,使用较少传感器决策

示意图7

经过适当分析,我们发现烟雾传感器在正常状态下输出值为0~30ppm,在报警情况下从500ppm上升至20000ppm。光照环境传感器在正常状态下输出值为60~80,当感应到火焰光时上升至200~350。根据实验结果,我们确定烟雾传感器的阈值为500ppm,光照环境传感器的阈值为200。

结论

在本文中,我们讨论了可帮助减少火灾引发的灾难性事故的最新技术。我们设计了整个系统,并评估了其有效性和可扩展性。随着传感器技术的进步,该系统将变得更加高效和实用。如果该系统能够成功集成到每家工厂中,则有望显著减少火灾事故造成的生命和财产损失,国家经济也不会再因此类悲剧性事故而受挫。

更多推荐