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