呂銀華,肖天華,干興園,張
(1.浙江中辰城市應急服務管理有限公司,浙江 杭州 310030;2.杭州電子科技大學,浙江 杭州 310053)
隨著我國經濟水平的提高,個體和私營經濟逐漸成為推動經濟社會發展的重要力量[1],但有些企業為了節約生產成本,將住宿、生產、經營等功能混合在一起。這種場所面積小、成本低、經營方式靈活,但火災隱患十分突出[2],如建筑物耐火等級不高、電氣線路私拉亂接、生產生活設備較多且功率較高,極易發生火災。這也使得人們開始關注電氣火災預警系統。然而,傳統的電氣火災預警系統僅檢測導線溫度和剩余電流的大小,忽略了電氣線路過載帶來的火災隱患。同時電氣火災客戶終端僅能顯示監測數據,難以及時和準確地反映電氣火災隱患發生的位置,用戶無法通過客戶端遠程關閉電源總開關來防止電氣火災的發生;而且傳統的電氣火災監控終端使用C/S架構模式,需要為不同的操作系統開發不同的客戶端,會使代碼冗雜、可讀性和可維護性下降。文獻[3]提出了采用建筑設計圖的方式監控,發生火災隱患時根據傳感器的編號信息在2D總覽圖中標紅,解決了傳統客戶端無法反映火災隱患發生位置的問題。但是對于大多數人來說,建筑設計圖晦澀難懂,提高了軟件使用的門檻。考慮到上述問題,本文提出了一種基于前后端分離技術的三維電氣火災預警系統,即通過前后端分離技術將前端和后端分別部署在不同的服務器上,前端通過WebGL技術實時在瀏覽器中渲染3D畫面,后端再通過Ajax技術從服務器獲取數據顯示在HTML上,運行效率得到大幅提高。用戶無需安裝客戶端程序就可以通過瀏覽器實時監控當前各個區域電流、電壓、剩余電流等用電數據信息;當發生電氣火災隱患時,用戶可以在3D可視化界面中定位電氣隱患位置并遠程關閉電源總開關,大大降低電氣火災隱患預警和處理的難度,給人們預防電氣火災的發生帶來極大的便利。
電氣火災預警系統主要由電氣火災監控終端、以太網通信模塊、服務器端和監控平臺這四個部分組成[4]。
電氣火災監控終端通過傳感器采集用電安全原始數據,并實時處理采集到的數據,然后將處理好的數據發送給以太網通信模塊。以太網通信模塊通過網絡將數據包上傳到后端服務器[5]。后端服務器收到數據包后進行解析,并將解析后的用電安全數據按照類別和日期存入數據庫,實時刷新數據庫中的數據,并保留歷史數據,方便用戶查看過去的用電安全信息;同時進行數據處理,分析潛在的火災隱患,發現隱患及時推送到監控平臺。監控平臺通過HTTP協議JSON格式的方式實時讀取后端服務器傳來的用電安全數據,并將用電安全數據實時渲染到3D場景上,方便用戶及時查看[6]。監控平臺若收到火災隱患信息,則及時報警,提醒工作人員及時處理,將電氣火災消滅在萌芽之中。圖1為電氣火災預警系統的整體架構。

圖1 電氣火災預警系統架構圖
電氣火災監控終端由電源模塊、探測器主控制器模塊、傳感器模塊、485通信模塊、以太網通信模塊、存儲模塊、繼電器控制模塊這7個部分組成[7]。電氣火災監控終端的硬件框圖如圖2所示。

圖2 電氣火災監控終端硬件框圖
本系統的主控芯片采用的是ST(意法半導體)公司的STM32F407ZGT6芯片。它是一款基于ARM Cortex-M內核的32位微處理器[8],存儲器容量高達192 KB,工作溫度-40~85 ℃,主時鐘頻率最高可達168 MHz,滿足本系統的運算需要。
為了提高電氣火災預警的準確性,本系統在傳統預警系統用到的溫度和剩余電流傳感器的基礎上,增加了3種傳感器,分別為:電流傳感器、電壓傳感器、功率傳感器。
2.2.1 電流傳感器
電流傳感器是可以用來偵測導線內電流的裝置,并且產生與電流成比例的電壓信號[9]。本系統使用的是開環式霍爾電流傳感器。霍爾電流傳感器測量電流無需斷開電路,套在線路外面即可測出電流大小,使用方便、安全。
2.2.2 電壓傳感器
電壓傳感器是指能夠檢測被測電壓并轉換成可用輸出信號的傳感器。本系統使用的是霍爾電壓傳感器。
2.2.3 功率傳感器
功率傳感器是一種能將被測有功功率和無功功率轉換成直流電流或電壓輸出的儀器。本系統使用功率傳感器來測量電氣線路總線上的有功功率和無功功率值。當功率超過線路可承受最大功率時,發出火災隱患預警,提醒用戶關閉同時使用的大功率用電器。
本系統需要用到兩個通信模塊,分別為RS 485通信模塊和以太網通信模塊。
2.3.1 RS 485通信模塊
RS 485總線是一種常見的串行總線標準,采用平衡發送與差分接收的方式,在遠距離通信上應用最為廣泛[10]。本系統使用RS 485傳感器數據采集模塊與各種傳感器相連,將采集到的數據轉化成RS 485協議數據,再通過RS 485總線傳輸到主控芯片進行解析。
RS 485總線傳輸距離遠且抗干擾能力強,而且只需要一個RS 485端口,就可以監控多個傳感器的模擬信號,適合用于火災監控領域。
2.3.2 以太網通信模塊
為了保證傳感器信號響應速度,本系統采用以太網傳輸模式進行傳輸。以太網通信模塊由以太網芯片W5500、網絡變壓器HY601680和RJ 45模塊組成[11]。W5500通過SPI(外設串行接口)方式與主控制器進行通信,實時接收傳感器數據。W5500通過網絡變壓器HY601680與RJ 45模塊相連,將從主控制器接收到的傳感器數據通過網絡傳輸到服務器主機上,進行數據解包和火災預警。
本系統分別采用AT24C256芯片和W25Q256FVFIG芯片作為E2PROM存儲器和FLASH存儲器。其中,E2PROM存儲器用來存儲主控制器和傳感器的參數信息,包括每條485總線的設備地址和通信參數等。FLASH存儲器用來作為主控制器的數據緩沖區,接收傳感器采集的實時數據并保存起來,等待下一步發送。
電源是整個系統最重要的部分,電源模塊的好壞直接決定系統能否正常工作,稍有不慎就會燒毀芯片和傳感器,甚至電源模塊爆炸起火,造成巨大損失。為了保證系統供電穩定,本系統采用海凌科電子有限公司的穩壓AC-DC電源模塊HLK-PM01。該模塊采用220 V交流電供電,通過內部變壓器降壓,整流輸出5 V直流電壓,再通過LDO(低壓差線性穩壓器)電路降壓至3.3 V,為主控制器和其他芯片提供穩定的工作電壓。
繼電器是一種電子控制器件,通常用于自動控制電路中,是利用低電壓、弱電流電路間接地控制高電壓、強電流電路的一種開關[12]。傳統的電氣火災預警系統無法通過上位機直接切斷電氣隱患位置的電源。本系統為了解決這個問題,采用網絡繼電器控制模塊,通過WiFi與服務器相連,遠程控制設備電源的通斷。當發生電氣火災隱患時,用戶可以通過監控平臺直接切斷設備電源,方便用戶及時處理,有效避免火災的發生。
電氣火災預警系統的軟件設計由主控制器程序設計和電氣火災監控平臺設計這兩部分組成。其中,主控制器程序以C++語言作為開發語言,通過Keil編程實現傳感器和控制器的各部分功能。電氣火災監控平臺分為前端部分和后端部分,前端部分在ThingJS在線開發平臺上使用JavaScript進行設計,后端部分使用Spring Boot框架來做服務端,并使用MySQL實現數據庫讀寫和調用,最后使用Vue和Element-UI框架實現電氣火災監控管理后臺。
主控制器程序的設計思路是根據不同模塊的功能單獨設計各個模塊,并封裝成子函數,供主函數調用來實現系統各部分功能。主控制器程序工作流程如下。
3.1.1 系統初始化
系統上電后,首先初始化定時器、SPI、FLASH、E2PROM、485總線模塊、以太網模塊等。然后從E2PROM存儲器中讀取設備IP地址、傳感器類型、傳感器數量、傳感器校準值等系統參數,為系統正常運行做好準備。
3.1.2 傳感器數據采集
根據不同傳感器485總線地址的不同,主控制器依序向各個傳感器發送數據查詢指令,傳感器的中斷程序接收到數據查詢指令后,向主控制器發送當前傳感器數據。通過這樣的方式,主控制器就可以完成傳感器數據采集,進入數據處理階段。
3.1.3 傳感器數據處理
傳感器數據采集部分往往會遇到信號干擾的情況,因此系統將對采集的傳感器數據進行處理。系統將每10個傳感器數據采樣值進行冒泡排序,去掉最大和最小值,排除干擾,然后取平均,存入FLASH存儲器中,等待下一步上傳。
3.1.4 傳感器數據上傳
主控制器通過以太網控制器W5500與服務器進行通信。主控制器通過SPI總線與W5500模塊相連。當需要發送數據時,主控制器將待發送的數據寫入到W5500的發送緩沖區,執行待發送命令,將數據通過RJ 45模塊上傳至服務器中,完成數據上傳過程[13]。系統主控制器程序流程如圖3所示。

圖3 系統主控制器程序流程
3.2.1 前端功能設計
電氣火災監控平臺前端部分主要實現用電安全信息監控,可實時顯示各區域的電流、電壓、剩余電流、導線溫度及總線功率值,實時渲染3D畫面,并提供總線開關,便于工作人員準確定位火災隱患發生的位置并及時切斷電路。
本文采用物聯網可視化PaaS開發平臺ThingJS,使用當今最熱門的JavaScript語言進行開發。ThingJS平臺輕松集成3D可視化界面,極大地降低了3D界面開發的成本[14]。ThingJS基于HTML5和WebGL技術,可以很方便地在主流瀏覽器上進行瀏覽和調試,同時支持PC和移動設備,具有較好的兼容性[15]。
電氣火災監控平臺使用CamBuilder客戶端完成火災監控區域3D場景的搭建,并將場景導出上傳至ThingJS平臺,進行在線開發。在ThingJS平臺上,首先加載上傳的場景文件,代碼如下:

其中url為場景的地址。然后在監控區域設置物體頂牌UIAnchor。UIAnchor將顯示各個監測點的電流、電壓、剩余電流等監控數據并“掛接”到3D監控區域上,使之隨物體移動,代碼如下:

本系統使用WebSocket協議進行數據對接,并與UIAnchor面板進行數據綁定,代碼如下:

同時增加總開關按鈕,通過WebSocket協議遠程控制網絡繼電器模塊的通斷。當平臺接收到報警信息時,將對應監測點標紅,并觸發alert()彈窗,提醒用戶及時處理,代碼如下:

3.2.2 后端功能設計
電氣火災監控平臺后端部分使用Spring Boot框架進行開發,通過以太網通信方式與主控制器進行數據交互,接收主控制器發來的傳感器數據,匯總信息并存入MySQL數據庫中。同時服務器端還會將接收到的傳感器數據與數據庫中存儲的閾值進行比較,一旦傳感器數據大于閾值,則計數器加1;如果傳感器數據連續5次均超過閾值,則記錄報警信息,同時將傳感器數據和報警信息推送到前端。數據庫還包括用戶表,用于存放用戶ID、密碼及管理員賬號信息。
3.2.3 服務器部署
前端部分在線開發完成后,下載ThingJS離線部署包,部署到1號服務器運行。后端部分部署到2號服務器,啟動Spring Boot應用。前端部分通過axios請求后端接口,代碼如下:

請求成功后即可將數據動態加載到頁面。ThingJS和Spring Boot應用數據交互流程如圖4所示。

圖4 ThingJS和Spring Boot應用數據交互流程
為了驗證本系統方案能否滿足實際生產生活需要,能否有效預防電氣火災事故的發生,本章進行系統性能測試。選用高精度交流電源、電水壺和電吹風等試驗裝置測試本平臺用電安全監控和報警功能能否正常工作,試驗平臺如圖5所示。將各試驗裝置與本系統各個傳感器相連,首先模擬系統正常運行的情況,電氣火災預警平臺會顯示各個區域的用電安全信息及電源總開關,平臺左上角可以隱藏監控面板,如圖6所示。

圖5 電氣火災試驗平臺

圖6 電氣火災監控平臺
調節交流電源的電流旋鈕,使輸出電流為50 A,模擬發生線路過載的情況。如圖7所示,隱患所在區域會變成紅色,同時警報響起,監控面板顯示火災隱患類型,提醒用戶及時處理。

圖7 發生火災隱患時的監控平臺
以管理員身份登錄電氣火災監控管理后臺,可查看電氣運行異常日志、操作日志、服務器性能監控及用戶賬號管理,電氣火災監控管理后臺如圖8所示。

圖8 電氣火災監控管理后臺
基于前后端分離技術的三維電氣火災預警系統,提高了系統開發效率,并且利用物聯網技術實現了對可能引發電氣火災的電流、電壓、溫度、剩余電流、功率等數據進行實時采集和數據分析;在3D可視化界面上實現了用電安全信息的遠程實時監控和電氣火災隱患的實時預警,精確定位火災隱患的位置,將電氣火災消滅在萌芽之中,保護了人民的生命財產安全,具有較大的現實意義和應用價值。