趙 哲 陳偉利
(吉林建筑大學 電氣與計算機學院,吉林 長春 130118)
在人口密集化和建筑物高層化的時代背景下,傳統(tǒng)消防措施的低效率,缺乏時效性,和落后的管理模式越來越不能適應需求并且難以提供足夠的安全保障[3]。提高消防技術(shù)、增加消防手段、提高消防控制系統(tǒng)的可靠性是現(xiàn)代化消防領(lǐng)域面臨的重大問題。為了滿足我國城市化的進程和新時代下人們對消防控制系統(tǒng)的智能性和穩(wěn)定性的要求,需要一種新型的智慧消防系統(tǒng):它需要盡可能少的進行非必要的信息交互,在終端感知層將消防信息上傳到云端物聯(lián)網(wǎng)平臺時避免由信息交互中間環(huán)節(jié)出現(xiàn)錯誤[4]。本文提出的智慧消防聯(lián)動控制系統(tǒng)做到了終端感知層與消防聯(lián)動控制系統(tǒng)的信息直接交互,消除了中控端的參與,最大程度避免中間環(huán)節(jié)出錯,提高消防控制系統(tǒng)的可靠性與穩(wěn)定性。并且采用各個子系統(tǒng)分離運行,相互不受影響,即使有一個控制子系統(tǒng)不能正常動作,也不會影響到其他控制子系統(tǒng)。有效的保障了火災中的系統(tǒng)能夠穩(wěn)定正常的工作,同時也把數(shù)據(jù)信息上傳至互聯(lián)網(wǎng),保證了數(shù)據(jù)的及時獲取,讓消防隊員和救援人員對火情、火勢能夠快速進行判斷,采取措施。
系統(tǒng)工作流程:
根據(jù)控制等級將系統(tǒng)分為四層:感知層、子控制層(傳輸層)、服務層、云端應用層。(1)在感知層:系統(tǒng)上電后,各個STM32 傳感器模塊向樹莓派發(fā)送存活數(shù)據(jù)包,然后周期性的上傳傳感器的數(shù)據(jù)。(2)在子控制層(傳輸層):樹莓派通過CAN0 通道接收到數(shù)據(jù)包后,對數(shù)據(jù)包進行拆分解析。通過數(shù)據(jù)包第一位ID 判斷是否為發(fā)給自己的數(shù)據(jù),如果不是則不再對以后的數(shù)據(jù)進行解析,如果是,則繼續(xù)解析剩余所有標志位數(shù)據(jù)。樹莓派對所有操作位,數(shù)據(jù)位進行解析處理后,分析出需要執(zhí)行具體操作的下一個控制器ID 和具體需要進行的操作,然后對這些數(shù)據(jù)進行封包,發(fā)送給指定子控制器[5]。(3)在服務層:指定子控制器收到后,執(zhí)行相應的操作。同時樹莓派通過以太網(wǎng)接口,TCP 協(xié)議把數(shù)據(jù)上傳給ARM CORTEX A9 服務器,服務器中的線程1 通過TCP 收發(fā)數(shù)據(jù),線程2 對數(shù)據(jù)進行解析,線程3 開辟共享內(nèi)存,把數(shù)據(jù)實時放入共享內(nèi)存中,線程4 把數(shù)據(jù)存放在sqlite3 數(shù)據(jù)庫中,同時Linux 運行BOA 服務器,通過CGI 程序?qū)eb 瀏覽器數(shù)據(jù)實現(xiàn)雙向通信,網(wǎng)頁Web 瀏覽器上實現(xiàn)顯示數(shù)據(jù)與控制功能。在完成后,繼續(xù)把數(shù)據(jù)上傳至阿里云服務器[6]。(4)在云端應用層:阿里云服務器進行路徑規(guī)劃和BIM 三維建模,用來實現(xiàn)火災逃生與救援功能。最后手機APP 通過阿里云獲取數(shù)據(jù),實現(xiàn)所有數(shù)據(jù)同步顯示[2]。系統(tǒng)架構(gòu)如圖1。
圖1 系統(tǒng)架構(gòu)圖
感知層是使用STM32 作為溫感、煙感、電機、風機、應急照明等模塊的主控制器,是整個系統(tǒng)的核心部分,負責各模塊之間的數(shù)據(jù)通信[1]。系統(tǒng)上電后STM32 先初始化搭載的其他模塊與時鐘再循環(huán)讀取各個傳感器的數(shù)據(jù)進行處理,判斷ID 正確后,封裝數(shù)據(jù)包并由CAN 總線發(fā)送到樹莓派。
感知層與子控制層(傳輸層)的通訊是通過CAN總線傳輸?shù)?,系統(tǒng)上電后,初始化STM32 系統(tǒng)各個外設(shè)模塊和時鐘頻率后初始化CAN 總線,再配置過濾器、過濾器標志位等。然后初始化CAN 數(shù)據(jù)包,初始化標準標識符、擴展標識符消息長度字節(jié)DLC 等。最后完成中斷函數(shù)功能,保證CAN 總線接收數(shù)據(jù)正常,再完成CAN 發(fā)送函數(shù),保證CAN 總線發(fā)送數(shù)據(jù)正常。
樹莓派控制子控制器并將數(shù)據(jù)上傳到CORTEX A9 服務器進行聯(lián)網(wǎng)。樹莓派系統(tǒng)版本選擇20-20-02-13-raspbian-buster-full,安裝CAN 驅(qū)動后安裝python-can 庫創(chuàng)建一個CAN 設(shè)備,初始化并啟用CAN0,指定其作為發(fā)送/接收接口后使用函數(shù)can.interface.Bus()連接到CAN 總線。然后就可以通過can.Message 與can0.send 進行數(shù)據(jù)包的收發(fā)。
在主進程中創(chuàng)建若干個線程,為了保證系統(tǒng)的實時響應能力,每個線程單獨執(zhí)行對應的功能。其中線程1 創(chuàng)建TCP 服務端,接收從樹莓派發(fā)來的信息,需要時也對樹莓派進行操作指令發(fā)送。線程2 對接收到的數(shù)據(jù)進行分析處理歸納存儲。線程3 創(chuàng)建一塊共享內(nèi)存,為了和網(wǎng)頁端CGI 程序進行通訊,同時也接收從網(wǎng)頁端發(fā)來的數(shù)據(jù)。線程4 先對串口進行初始化,然后每隔80ms 從串口接收從zigbee 發(fā)來的數(shù)據(jù)。線程5 對zigbee 端發(fā)來的數(shù)據(jù)進行分析處理,算出人員的具體定位。
為了方便消防控制室內(nèi)人員及時并且迅速掌握智慧消防控制系統(tǒng)的各個節(jié)點的情況,在ARM CORTEX A9 上搭建了BOA 服務器用來對系統(tǒng)的工作情況進行顯示。它的第一個功能為zigbee定位功能,根據(jù)zigbee 定位系統(tǒng),定位出人員在大樓內(nèi)的位置,救援人員根據(jù)人員位置進行救援,綜合控制屏定位系統(tǒng)如圖2 所示。
圖2 綜合控制屏定位系統(tǒng)頁面
第二個功能為檢測下面各個節(jié)點的運行。其中又分為四個系統(tǒng),第一個系統(tǒng)為火災報警系統(tǒng),第二個系統(tǒng)為風控制系統(tǒng),第三個系統(tǒng)為防火門系統(tǒng),第四個系統(tǒng)為水控制系統(tǒng),如圖3 綜合顯示屏顯示數(shù)據(jù)。
圖3 綜合控制屏檢測數(shù)據(jù)頁面
選擇Apache 作為Web 服務器是因為它開放源代碼,支持跨平臺的特點方便與手機APP 互聯(lián),安裝httpd、apr、apr-util、pcre-8.40四個文件后在瀏覽器輸入公網(wǎng)IP:http://106.13.14.36/,顯示It works!表示正常運行?;谠品掌鏖_發(fā)了路徑規(guī)劃系統(tǒng),云服務器路徑規(guī)劃系統(tǒng)可以在發(fā)生火災時,為大樓內(nèi)每個人規(guī)劃最優(yōu)逃生路徑,并且能夠統(tǒng)計大樓內(nèi)人員總數(shù)信息與人員位置信息,幫助人員逃離大樓。也可以及時的幫助消防救援人員了解大樓信息,快速準確的定位并救援到每一個被困人員。其中第二行為著火點位置輸入框,第三行為人員位置輸入框,輸入格式為#號分隔,例如35#45。
本文基于STM32 單片機控制的感知層終端將火災信息傳輸給樹莓派和CortexA9 進行子控制器之間的聯(lián)動和云存儲,在BOA 服務器和web 端進行定位和路徑規(guī)劃,對受災人員進行逃生路徑引導。制作了較為完備的云端智慧消防控制系統(tǒng)的獨立分類架構(gòu)的子控制器,顯示網(wǎng)頁和路徑規(guī)劃網(wǎng)頁;各子系統(tǒng)分離運行保證各子系統(tǒng)獨立運行互不影響,保障了在火災發(fā)生中系統(tǒng)的穩(wěn)定工作,極大地提升了消防控制系統(tǒng)的可靠性于穩(wěn)定性。在火災發(fā)生階段,幫助外部消防人員快速獲得受困人員信息以及各個消防設(shè)備離/在線信息。在預防階段,物業(yè)與業(yè)主通過web 端與手機端實時監(jiān)控室內(nèi)情況,做到防“火”于未“燃”。