呂銀華,肖天華,干興園,張
(1.浙江中辰城市應急服務管理有限公司,浙江 杭州 310030;2.杭州電子科技大學,浙江 杭州 310053)
隨著我國經(jīng)濟水平的提高,個體和私營經(jīng)濟逐漸成為推動經(jīng)濟社會發(fā)展的重要力量[1],但有些企業(yè)為了節(jié)約生產(chǎn)成本,將住宿、生產(chǎn)、經(jīng)營等功能混合在一起。這種場所面積小、成本低、經(jīng)營方式靈活,但火災隱患十分突出[2],如建筑物耐火等級不高、電氣線路私拉亂接、生產(chǎn)生活設備較多且功率較高,極易發(fā)生火災。這也使得人們開始關(guān)注電氣火災預警系統(tǒng)。然而,傳統(tǒng)的電氣火災預警系統(tǒng)僅檢測導線溫度和剩余電流的大小,忽略了電氣線路過載帶來的火災隱患。同時電氣火災客戶終端僅能顯示監(jiān)測數(shù)據(jù),難以及時和準確地反映電氣火災隱患發(fā)生的位置,用戶無法通過客戶端遠程關(guān)閉電源總開關(guān)來防止電氣火災的發(fā)生;而且傳統(tǒng)的電氣火災監(jiān)控終端使用C/S架構(gòu)模式,需要為不同的操作系統(tǒng)開發(fā)不同的客戶端,會使代碼冗雜、可讀性和可維護性下降。文獻[3]提出了采用建筑設計圖的方式監(jiān)控,發(fā)生火災隱患時根據(jù)傳感器的編號信息在2D總覽圖中標紅,解決了傳統(tǒng)客戶端無法反映火災隱患發(fā)生位置的問題。但是對于大多數(shù)人來說,建筑設計圖晦澀難懂,提高了軟件使用的門檻??紤]到上述問題,本文提出了一種基于前后端分離技術(shù)的三維電氣火災預警系統(tǒng),即通過前后端分離技術(shù)將前端和后端分別部署在不同的服務器上,前端通過WebGL技術(shù)實時在瀏覽器中渲染3D畫面,后端再通過Ajax技術(shù)從服務器獲取數(shù)據(jù)顯示在HTML上,運行效率得到大幅提高。用戶無需安裝客戶端程序就可以通過瀏覽器實時監(jiān)控當前各個區(qū)域電流、電壓、剩余電流等用電數(shù)據(jù)信息;當發(fā)生電氣火災隱患時,用戶可以在3D可視化界面中定位電氣隱患位置并遠程關(guān)閉電源總開關(guān),大大降低電氣火災隱患預警和處理的難度,給人們預防電氣火災的發(fā)生帶來極大的便利。
電氣火災預警系統(tǒng)主要由電氣火災監(jiān)控終端、以太網(wǎng)通信模塊、服務器端和監(jiān)控平臺這四個部分組成[4]。
電氣火災監(jiān)控終端通過傳感器采集用電安全原始數(shù)據(jù),并實時處理采集到的數(shù)據(jù),然后將處理好的數(shù)據(jù)發(fā)送給以太網(wǎng)通信模塊。以太網(wǎng)通信模塊通過網(wǎng)絡將數(shù)據(jù)包上傳到后端服務器[5]。后端服務器收到數(shù)據(jù)包后進行解析,并將解析后的用電安全數(shù)據(jù)按照類別和日期存入數(shù)據(jù)庫,實時刷新數(shù)據(jù)庫中的數(shù)據(jù),并保留歷史數(shù)據(jù),方便用戶查看過去的用電安全信息;同時進行數(shù)據(jù)處理,分析潛在的火災隱患,發(fā)現(xiàn)隱患及時推送到監(jiān)控平臺。監(jiān)控平臺通過HTTP協(xié)議JSON格式的方式實時讀取后端服務器傳來的用電安全數(shù)據(jù),并將用電安全數(shù)據(jù)實時渲染到3D場景上,方便用戶及時查看[6]。監(jiān)控平臺若收到火災隱患信息,則及時報警,提醒工作人員及時處理,將電氣火災消滅在萌芽之中。圖1為電氣火災預警系統(tǒng)的整體架構(gòu)。
圖1 電氣火災預警系統(tǒng)架構(gòu)圖
電氣火災監(jiān)控終端由電源模塊、探測器主控制器模塊、傳感器模塊、485通信模塊、以太網(wǎng)通信模塊、存儲模塊、繼電器控制模塊這7個部分組成[7]。電氣火災監(jiān)控終端的硬件框圖如圖2所示。
圖2 電氣火災監(jiān)控終端硬件框圖
本系統(tǒng)的主控芯片采用的是ST(意法半導體)公司的STM32F407ZGT6芯片。它是一款基于ARM Cortex-M內(nèi)核的32位微處理器[8],存儲器容量高達192 KB,工作溫度-40~85 ℃,主時鐘頻率最高可達168 MHz,滿足本系統(tǒng)的運算需要。
為了提高電氣火災預警的準確性,本系統(tǒng)在傳統(tǒng)預警系統(tǒng)用到的溫度和剩余電流傳感器的基礎上,增加了3種傳感器,分別為:電流傳感器、電壓傳感器、功率傳感器。
2.2.1 電流傳感器
電流傳感器是可以用來偵測導線內(nèi)電流的裝置,并且產(chǎn)生與電流成比例的電壓信號[9]。本系統(tǒng)使用的是開環(huán)式霍爾電流傳感器。霍爾電流傳感器測量電流無需斷開電路,套在線路外面即可測出電流大小,使用方便、安全。
2.2.2 電壓傳感器
電壓傳感器是指能夠檢測被測電壓并轉(zhuǎn)換成可用輸出信號的傳感器。本系統(tǒng)使用的是霍爾電壓傳感器。
2.2.3 功率傳感器
功率傳感器是一種能將被測有功功率和無功功率轉(zhuǎn)換成直流電流或電壓輸出的儀器。本系統(tǒng)使用功率傳感器來測量電氣線路總線上的有功功率和無功功率值。當功率超過線路可承受最大功率時,發(fā)出火災隱患預警,提醒用戶關(guān)閉同時使用的大功率用電器。
本系統(tǒng)需要用到兩個通信模塊,分別為RS 485通信模塊和以太網(wǎng)通信模塊。
2.3.1 RS 485通信模塊
RS 485總線是一種常見的串行總線標準,采用平衡發(fā)送與差分接收的方式,在遠距離通信上應用最為廣泛[10]。本系統(tǒng)使用RS 485傳感器數(shù)據(jù)采集模塊與各種傳感器相連,將采集到的數(shù)據(jù)轉(zhuǎn)化成RS 485協(xié)議數(shù)據(jù),再通過RS 485總線傳輸?shù)街骺匦酒M行解析。
RS 485總線傳輸距離遠且抗干擾能力強,而且只需要一個RS 485端口,就可以監(jiān)控多個傳感器的模擬信號,適合用于火災監(jiān)控領域。
2.3.2 以太網(wǎng)通信模塊
為了保證傳感器信號響應速度,本系統(tǒng)采用以太網(wǎng)傳輸模式進行傳輸。以太網(wǎng)通信模塊由以太網(wǎng)芯片W5500、網(wǎng)絡變壓器HY601680和RJ 45模塊組成[11]。W5500通過SPI(外設串行接口)方式與主控制器進行通信,實時接收傳感器數(shù)據(jù)。W5500通過網(wǎng)絡變壓器HY601680與RJ 45模塊相連,將從主控制器接收到的傳感器數(shù)據(jù)通過網(wǎng)絡傳輸?shù)椒掌髦鳈C上,進行數(shù)據(jù)解包和火災預警。
本系統(tǒng)分別采用AT24C256芯片和W25Q256FVFIG芯片作為E2PROM存儲器和FLASH存儲器。其中,E2PROM存儲器用來存儲主控制器和傳感器的參數(shù)信息,包括每條485總線的設備地址和通信參數(shù)等。FLASH存儲器用來作為主控制器的數(shù)據(jù)緩沖區(qū),接收傳感器采集的實時數(shù)據(jù)并保存起來,等待下一步發(fā)送。
電源是整個系統(tǒng)最重要的部分,電源模塊的好壞直接決定系統(tǒng)能否正常工作,稍有不慎就會燒毀芯片和傳感器,甚至電源模塊爆炸起火,造成巨大損失。為了保證系統(tǒng)供電穩(wěn)定,本系統(tǒng)采用海凌科電子有限公司的穩(wěn)壓AC-DC電源模塊HLK-PM01。該模塊采用220 V交流電供電,通過內(nèi)部變壓器降壓,整流輸出5 V直流電壓,再通過LDO(低壓差線性穩(wěn)壓器)電路降壓至3.3 V,為主控制器和其他芯片提供穩(wěn)定的工作電壓。
繼電器是一種電子控制器件,通常用于自動控制電路中,是利用低電壓、弱電流電路間接地控制高電壓、強電流電路的一種開關(guān)[12]。傳統(tǒng)的電氣火災預警系統(tǒng)無法通過上位機直接切斷電氣隱患位置的電源。本系統(tǒng)為了解決這個問題,采用網(wǎng)絡繼電器控制模塊,通過WiFi與服務器相連,遠程控制設備電源的通斷。當發(fā)生電氣火災隱患時,用戶可以通過監(jiān)控平臺直接切斷設備電源,方便用戶及時處理,有效避免火災的發(fā)生。
電氣火災預警系統(tǒng)的軟件設計由主控制器程序設計和電氣火災監(jiān)控平臺設計這兩部分組成。其中,主控制器程序以C++語言作為開發(fā)語言,通過Keil編程實現(xiàn)傳感器和控制器的各部分功能。電氣火災監(jiān)控平臺分為前端部分和后端部分,前端部分在ThingJS在線開發(fā)平臺上使用JavaScript進行設計,后端部分使用Spring Boot框架來做服務端,并使用MySQL實現(xiàn)數(shù)據(jù)庫讀寫和調(diào)用,最后使用Vue和Element-UI框架實現(xiàn)電氣火災監(jiān)控管理后臺。
主控制器程序的設計思路是根據(jù)不同模塊的功能單獨設計各個模塊,并封裝成子函數(shù),供主函數(shù)調(diào)用來實現(xiàn)系統(tǒng)各部分功能。主控制器程序工作流程如下。
3.1.1 系統(tǒng)初始化
系統(tǒng)上電后,首先初始化定時器、SPI、FLASH、E2PROM、485總線模塊、以太網(wǎng)模塊等。然后從E2PROM存儲器中讀取設備IP地址、傳感器類型、傳感器數(shù)量、傳感器校準值等系統(tǒng)參數(shù),為系統(tǒng)正常運行做好準備。
3.1.2 傳感器數(shù)據(jù)采集
根據(jù)不同傳感器485總線地址的不同,主控制器依序向各個傳感器發(fā)送數(shù)據(jù)查詢指令,傳感器的中斷程序接收到數(shù)據(jù)查詢指令后,向主控制器發(fā)送當前傳感器數(shù)據(jù)。通過這樣的方式,主控制器就可以完成傳感器數(shù)據(jù)采集,進入數(shù)據(jù)處理階段。
3.1.3 傳感器數(shù)據(jù)處理
傳感器數(shù)據(jù)采集部分往往會遇到信號干擾的情況,因此系統(tǒng)將對采集的傳感器數(shù)據(jù)進行處理。系統(tǒng)將每10個傳感器數(shù)據(jù)采樣值進行冒泡排序,去掉最大和最小值,排除干擾,然后取平均,存入FLASH存儲器中,等待下一步上傳。
3.1.4 傳感器數(shù)據(jù)上傳
主控制器通過以太網(wǎng)控制器W5500與服務器進行通信。主控制器通過SPI總線與W5500模塊相連。當需要發(fā)送數(shù)據(jù)時,主控制器將待發(fā)送的數(shù)據(jù)寫入到W5500的發(fā)送緩沖區(qū),執(zhí)行待發(fā)送命令,將數(shù)據(jù)通過RJ 45模塊上傳至服務器中,完成數(shù)據(jù)上傳過程[13]。系統(tǒng)主控制器程序流程如圖3所示。
圖3 系統(tǒng)主控制器程序流程
3.2.1 前端功能設計
電氣火災監(jiān)控平臺前端部分主要實現(xiàn)用電安全信息監(jiān)控,可實時顯示各區(qū)域的電流、電壓、剩余電流、導線溫度及總線功率值,實時渲染3D畫面,并提供總線開關(guān),便于工作人員準確定位火災隱患發(fā)生的位置并及時切斷電路。
本文采用物聯(lián)網(wǎng)可視化PaaS開發(fā)平臺ThingJS,使用當今最熱門的JavaScript語言進行開發(fā)。ThingJS平臺輕松集成3D可視化界面,極大地降低了3D界面開發(fā)的成本[14]。ThingJS基于HTML5和WebGL技術(shù),可以很方便地在主流瀏覽器上進行瀏覽和調(diào)試,同時支持PC和移動設備,具有較好的兼容性[15]。
電氣火災監(jiān)控平臺使用CamBuilder客戶端完成火災監(jiān)控區(qū)域3D場景的搭建,并將場景導出上傳至ThingJS平臺,進行在線開發(fā)。在ThingJS平臺上,首先加載上傳的場景文件,代碼如下:
其中url為場景的地址。然后在監(jiān)控區(qū)域設置物體頂牌UIAnchor。UIAnchor將顯示各個監(jiān)測點的電流、電壓、剩余電流等監(jiān)控數(shù)據(jù)并“掛接”到3D監(jiān)控區(qū)域上,使之隨物體移動,代碼如下:
本系統(tǒng)使用WebSocket協(xié)議進行數(shù)據(jù)對接,并與UIAnchor面板進行數(shù)據(jù)綁定,代碼如下:
同時增加總開關(guān)按鈕,通過WebSocket協(xié)議遠程控制網(wǎng)絡繼電器模塊的通斷。當平臺接收到報警信息時,將對應監(jiān)測點標紅,并觸發(fā)alert()彈窗,提醒用戶及時處理,代碼如下:
3.2.2 后端功能設計
電氣火災監(jiān)控平臺后端部分使用Spring Boot框架進行開發(fā),通過以太網(wǎng)通信方式與主控制器進行數(shù)據(jù)交互,接收主控制器發(fā)來的傳感器數(shù)據(jù),匯總信息并存入MySQL數(shù)據(jù)庫中。同時服務器端還會將接收到的傳感器數(shù)據(jù)與數(shù)據(jù)庫中存儲的閾值進行比較,一旦傳感器數(shù)據(jù)大于閾值,則計數(shù)器加1;如果傳感器數(shù)據(jù)連續(xù)5次均超過閾值,則記錄報警信息,同時將傳感器數(shù)據(jù)和報警信息推送到前端。數(shù)據(jù)庫還包括用戶表,用于存放用戶ID、密碼及管理員賬號信息。
3.2.3 服務器部署
前端部分在線開發(fā)完成后,下載ThingJS離線部署包,部署到1號服務器運行。后端部分部署到2號服務器,啟動Spring Boot應用。前端部分通過axios請求后端接口,代碼如下:
請求成功后即可將數(shù)據(jù)動態(tài)加載到頁面。ThingJS和Spring Boot應用數(shù)據(jù)交互流程如圖4所示。
圖4 ThingJS和Spring Boot應用數(shù)據(jù)交互流程
為了驗證本系統(tǒng)方案能否滿足實際生產(chǎn)生活需要,能否有效預防電氣火災事故的發(fā)生,本章進行系統(tǒng)性能測試。選用高精度交流電源、電水壺和電吹風等試驗裝置測試本平臺用電安全監(jiān)控和報警功能能否正常工作,試驗平臺如圖5所示。將各試驗裝置與本系統(tǒng)各個傳感器相連,首先模擬系統(tǒng)正常運行的情況,電氣火災預警平臺會顯示各個區(qū)域的用電安全信息及電源總開關(guān),平臺左上角可以隱藏監(jiān)控面板,如圖6所示。
圖5 電氣火災試驗平臺
圖6 電氣火災監(jiān)控平臺
調(diào)節(jié)交流電源的電流旋鈕,使輸出電流為50 A,模擬發(fā)生線路過載的情況。如圖7所示,隱患所在區(qū)域會變成紅色,同時警報響起,監(jiān)控面板顯示火災隱患類型,提醒用戶及時處理。
圖7 發(fā)生火災隱患時的監(jiān)控平臺
以管理員身份登錄電氣火災監(jiān)控管理后臺,可查看電氣運行異常日志、操作日志、服務器性能監(jiān)控及用戶賬號管理,電氣火災監(jiān)控管理后臺如圖8所示。
圖8 電氣火災監(jiān)控管理后臺
基于前后端分離技術(shù)的三維電氣火災預警系統(tǒng),提高了系統(tǒng)開發(fā)效率,并且利用物聯(lián)網(wǎng)技術(shù)實現(xiàn)了對可能引發(fā)電氣火災的電流、電壓、溫度、剩余電流、功率等數(shù)據(jù)進行實時采集和數(shù)據(jù)分析;在3D可視化界面上實現(xiàn)了用電安全信息的遠程實時監(jiān)控和電氣火災隱患的實時預警,精確定位火災隱患的位置,將電氣火災消滅在萌芽之中,保護了人民的生命財產(chǎn)安全,具有較大的現(xiàn)實意義和應用價值。