杜朝明 胡靜 宋鐵成 張思源
摘 要:針對(duì)傳統(tǒng)消防行業(yè)中數(shù)據(jù)來(lái)源單一、無(wú)法有效進(jìn)行巡檢及隱患排查等問(wèn)題,文章基于NB-IoT設(shè)計(jì)并實(shí)現(xiàn)了一種智慧消防監(jiān)控系統(tǒng)。該系統(tǒng)選用STM32作為微處理器,并針對(duì)易產(chǎn)生火災(zāi)隱患的煙霧、電氣特性、壓力及水位的信息分別采用相應(yīng)的傳感器進(jìn)行信息的采集,根據(jù)所處環(huán)境的火災(zāi)風(fēng)險(xiǎn)情況,智能地按不同的周期將這些信息通過(guò)NB-IoT網(wǎng)絡(luò)上傳至OceanConnect物聯(lián)網(wǎng)云平臺(tái),并最終推送至監(jiān)控平臺(tái)進(jìn)行數(shù)據(jù)處理。整個(gè)系統(tǒng)經(jīng)過(guò)測(cè)試,運(yùn)行狀態(tài)良好,性能穩(wěn)定,有著良好的應(yīng)用前景和推廣價(jià)值。
關(guān)鍵詞:NB-IoT;智慧消防;STM32;OceanConnect
0 引言
火災(zāi)是嚴(yán)重危害人民生命財(cái)產(chǎn)安全的重大災(zāi)害之一,而隨著社會(huì)的發(fā)展,造成火災(zāi)的源頭也越來(lái)越多,其發(fā)生的數(shù)量及所造成的損失也逐年增長(zhǎng)。而消防行業(yè)中傳統(tǒng)的數(shù)字消防也存在著數(shù)據(jù)來(lái)源單一、不能有效進(jìn)行日常巡檢及排查隱患等問(wèn)題[1]。因而脫胎于智慧城市的智慧消防也就應(yīng)運(yùn)而生,同時(shí),公安部也發(fā)布了《關(guān)于全面推進(jìn)“智慧消防”建設(shè)的指導(dǎo)意見(jiàn)》,大力推動(dòng)現(xiàn)代科技在傳統(tǒng)消防行業(yè)上的應(yīng)用。
現(xiàn)階段,大部分的智慧消防系統(tǒng)都是基于ZigBee實(shí)現(xiàn)的[2-3],ZigBee雖然有著低功耗、價(jià)格低等優(yōu)勢(shì),但其通信距離較近,在需要較大的覆蓋范圍時(shí)又需要提高發(fā)射功率或部署更多的中繼節(jié)點(diǎn),這又與其原本的優(yōu)勢(shì)背道而馳。與之相對(duì)應(yīng)的,NB-IoT則具有低功耗、低成本、強(qiáng)連接、廣覆蓋等優(yōu)勢(shì)[4]。本文將基于此進(jìn)行智慧消防系統(tǒng)的設(shè)計(jì)。
1 系統(tǒng)功能及總體架構(gòu)
1.1 系統(tǒng)功能
整個(gè)系統(tǒng)針對(duì)可能引發(fā)火災(zāi)的因素,部署對(duì)應(yīng)煙霧、電氣特性、壓力、水位的信息采集終端,并通過(guò)NB-IoT的通信方式,以實(shí)現(xiàn)低成本、低功耗地將信息上傳至云端物聯(lián)網(wǎng)平臺(tái),并設(shè)計(jì)監(jiān)控平臺(tái),將云端的數(shù)據(jù)進(jìn)行整合、處理,實(shí)現(xiàn)指令下發(fā)、數(shù)據(jù)展示、報(bào)警燈功能。
1.2 總體架構(gòu)
整個(gè)系統(tǒng)的架構(gòu)如圖1所示,主要分為3個(gè)部分:信息采集終端、物聯(lián)網(wǎng)平臺(tái)、監(jiān)控平臺(tái)。信息采集終端包含了傳感器、微處理器、NB-IoT模塊等部分,負(fù)責(zé)采集可能引起火災(zāi)的溫度、燃?xì)狻㈦娀〖芭c消防息息相關(guān)的消防水栓的壓力、液位等信息;物聯(lián)網(wǎng)平臺(tái)采用的是華為的OceanConnect物聯(lián)網(wǎng)平臺(tái),該平臺(tái)可接入NB-IoT網(wǎng)絡(luò),并適配多種通信協(xié)議,并提供豐富的api,支持連接管理、設(shè)備管理、數(shù)據(jù)管理等功能,可接入海量的終端設(shè)備[5]。監(jiān)控平臺(tái)則通過(guò)與物聯(lián)網(wǎng)平臺(tái)之間的通信,獲取終端設(shè)備的數(shù)據(jù),通過(guò)可視化界面進(jìn)行設(shè)備信息的展示,并實(shí)現(xiàn)下發(fā)指令的功能,設(shè)計(jì)報(bào)警功能,將設(shè)備的異常狀態(tài)推送至安全員處。
2 系統(tǒng)的硬件組成
系統(tǒng)的硬件組成如圖2所示,主要由采集不同信息的各種傳感器、微處理器及NB-IoT模塊等組成。針對(duì)消防中的不同環(huán)節(jié),從3個(gè)大的方向進(jìn)行信息的采集并采用對(duì)應(yīng)的傳感器:可能造成明火隱患的電流特性、實(shí)時(shí)的煙霧情況及消防用水設(shè)施的狀態(tài)等。
針對(duì)電流特性,采用acs712霍爾電流傳感器獲取被測(cè)線(xiàn)路的交流電流特性,然后通過(guò)整流橋獲取相對(duì)應(yīng)的直流電流特性;針對(duì)煙霧情況,使用MQ-2氣體傳感器,煙霧的濃度越大,導(dǎo)電率越高,輸出的電阻則越低,輸出的模擬電壓也就越高,從而得到煙霧的濃度信息;針對(duì)消防用水設(shè)施,則主要針對(duì)其水壓情況及水位深度進(jìn)行測(cè)量,通過(guò)高性能的擴(kuò)散硅壓阻式傳感器作為測(cè)量元件的SY-2088水箱液位器進(jìn)行水位深度的測(cè)量,并通過(guò)采用了擴(kuò)散硅壓力芯體作為敏感元件的PCM300壓力變送器進(jìn)行水壓的測(cè)量。
微處理器部分則采用了基于ARM Cortex-M3的STM32F103微處理器。STM32系列MCU是一個(gè)32位MCU,其支持SWD和JTAG接口的調(diào)試模式,便于進(jìn)行開(kāi)發(fā),且提供gpio及uart等在內(nèi)的通信接口,可與多個(gè)外設(shè)之間進(jìn)行通信,并支持ADC等外設(shè),可實(shí)現(xiàn)對(duì)傳感器傳入數(shù)據(jù)的讀取,STM32的特點(diǎn)和這些豐富的資源及存儲(chǔ)空間完全可以滿(mǎn)足系統(tǒng)的需求。
NB-IoT模塊是由WH-NB73為通信芯片組成,且接入SIM卡槽,以提供接入運(yùn)營(yíng)商網(wǎng)絡(luò)的功能,并外接天線(xiàn)以增強(qiáng)信號(hào)強(qiáng)度,且內(nèi)置CoAP,UDP透?jìng)鞯韧ㄐ艆f(xié)議,以滿(mǎn)足物聯(lián)網(wǎng)通信的需求。
最終整個(gè)系統(tǒng)以傳感器為起點(diǎn),將采集到的終端信號(hào)量通過(guò)STM32的ADC傳入MCU進(jìn)行處理,并通過(guò)NB-IoT模塊將數(shù)據(jù)傳至基站處,最終傳至物聯(lián)網(wǎng)云平臺(tái)進(jìn)行后續(xù)處理。
3 系統(tǒng)的軟件設(shè)計(jì)
整個(gè)系統(tǒng)的軟件設(shè)計(jì)部分主要分為信息采集端的軟件設(shè)計(jì)、物聯(lián)網(wǎng)云平臺(tái)的開(kāi)發(fā)及監(jiān)控平臺(tái)的開(kāi)發(fā)。
3.1 信息采集終端的軟件設(shè)計(jì)
信息采集終端主要包含了微處理器處的邏輯控制、終端信息的采集以及信息的接收與發(fā)送。
整個(gè)系統(tǒng)啟動(dòng)時(shí),首先會(huì)進(jìn)行系統(tǒng)的初始化過(guò)程,包括微處理器本身的初始化過(guò)程以及NB-IoT模塊的初始化。微處理器初始化時(shí)會(huì)打開(kāi)時(shí)鐘、配置gpio端口、設(shè)置波特率等。進(jìn)行NB-IoT模塊的初始化時(shí),會(huì)通過(guò)AT指令獲取模塊上插入的SIM卡的IMEI號(hào)碼,以此作為本設(shè)備的唯一標(biāo)志,用于與別的設(shè)備進(jìn)行區(qū)分,并設(shè)置需要連接的物聯(lián)網(wǎng)云平臺(tái)的IP地址,進(jìn)行聯(lián)網(wǎng)嘗試,如果嘗試10次后仍未能連接至指定的云平臺(tái),則視為當(dāng)前網(wǎng)絡(luò)擁塞,并將在1 h后重新進(jìn)行嘗試。
在微處理器中會(huì)涉及數(shù)據(jù)的采集,為了盡可能地反映一段時(shí)間內(nèi)數(shù)據(jù)的一致性,避免單個(gè)采樣數(shù)據(jù)錯(cuò)誤導(dǎo)致的誤警情況,會(huì)使用定時(shí)器進(jìn)行多次采集并在取平均值后進(jìn)行上傳。設(shè)當(dāng)前上傳周期中已采集過(guò)的數(shù)據(jù)次數(shù)為a,采集到大于閾值的數(shù)據(jù)次數(shù)為b,累計(jì)采集到的小于閾值的數(shù)據(jù)之和為c,累計(jì)采集到的大于閾值的數(shù)據(jù)之和為d,并設(shè)置初始的最大采集次數(shù)為a0,初始的大于閾值的最大采集次數(shù)為b0,初始的采集數(shù)據(jù)的閾值為c0。針對(duì)不同的傳感器,則會(huì)根據(jù)其量程設(shè)置不同的參數(shù)以滿(mǎn)足其具體需求。
在采集數(shù)據(jù)的過(guò)程中,當(dāng)定時(shí)器溢出觸發(fā)中斷的時(shí)候,會(huì)首先判斷采集到大于閾值的數(shù)據(jù)次數(shù)b是否大于b0,如果是,說(shuō)明當(dāng)前的數(shù)據(jù)已達(dá)到需要告警的程度,則會(huì)將數(shù)據(jù)采集的周期減半,更頻繁地進(jìn)行數(shù)據(jù)采集,并立即進(jìn)行數(shù)據(jù)的上報(bào);否則視為未達(dá)到需要報(bào)警的情況,會(huì)判斷已采集過(guò)的數(shù)據(jù)次數(shù)a是否大于a0,如果是,則說(shuō)明當(dāng)前周期已結(jié)束,需要將該段時(shí)間所累加的數(shù)據(jù)c,d進(jìn)行疊加并除以a0以獲得這段時(shí)間內(nèi)數(shù)據(jù)的平均情況,并進(jìn)行上報(bào);否則就說(shuō)明當(dāng)前周期未結(jié)束,需要對(duì)該次采集到的數(shù)據(jù)進(jìn)行判斷,根據(jù)其與閾值的大小關(guān)系,將其累加至c或者d上。每次通過(guò)NB-IoT模塊上傳數(shù)據(jù)時(shí),也會(huì)將a,b,c,d的值清零,從而進(jìn)入下一個(gè)采集周期。
在定時(shí)器未觸發(fā)中斷的時(shí)候,會(huì)通過(guò)NB-IoT模塊監(jiān)聽(tīng)是否有指令的下發(fā),當(dāng)NB-IoT模塊接收到數(shù)據(jù)包時(shí),會(huì)通過(guò)串口通信傳給微處理器,然后會(huì)對(duì)數(shù)組的長(zhǎng)度、格式等進(jìn)行校驗(yàn),通過(guò)校驗(yàn)則會(huì)將指令中想要修改的采集周期等參數(shù)進(jìn)行更新(見(jiàn)圖3)。
3.2 物聯(lián)網(wǎng)云平臺(tái)的開(kāi)發(fā)
系統(tǒng)所使用的是華為的OceanConnect物聯(lián)網(wǎng)平臺(tái),該平臺(tái)與NB-IoT模塊之間通過(guò)CoAP協(xié)議實(shí)現(xiàn)通信,該協(xié)議基于UDP,且依靠二進(jìn)制格式,最小長(zhǎng)度僅需要4個(gè)字節(jié),從而具有更加輕量化的特點(diǎn),更適用于低功耗的物聯(lián)網(wǎng)場(chǎng)景[6]。
如圖4所示,在進(jìn)行OceanConnect平臺(tái)的開(kāi)發(fā)時(shí),首先新建一個(gè)項(xiàng)目,在項(xiàng)目中創(chuàng)建新的產(chǎn)品,并在產(chǎn)品界面中定義profile文件,即該產(chǎn)品所能提供的服務(wù)、產(chǎn)品會(huì)上傳的信息類(lèi)型以及該產(chǎn)品所需要接收的命令,最后開(kāi)發(fā)編解碼插件定義好信息的編解碼規(guī)則并進(jìn)行產(chǎn)品的部署。對(duì)于終端設(shè)備,則在物聯(lián)網(wǎng)平臺(tái)上進(jìn)行設(shè)備的創(chuàng)建,并將終端設(shè)備上SIM卡所對(duì)應(yīng)的IMEI號(hào)作為標(biāo)識(shí)進(jìn)行綁定。聯(lián)網(wǎng)成功后則能實(shí)現(xiàn)終端設(shè)備與物聯(lián)網(wǎng)平臺(tái)之間的交互。
由于在物聯(lián)網(wǎng)平臺(tái)與終端設(shè)備之間采用CoAP協(xié)議進(jìn)行通信,二進(jìn)制格式的數(shù)據(jù)需要通過(guò)特定的編解碼規(guī)則來(lái)進(jìn)行解析。在本系統(tǒng)中,對(duì)于從終端設(shè)備處所上傳的數(shù)據(jù)按照表1中規(guī)定的數(shù)據(jù)幀格式進(jìn)行解析,其中針對(duì)不同的設(shè)備可能會(huì)上傳不同種類(lèi)的信息,故會(huì)根據(jù)其功能設(shè)定不同的消息種類(lèi),并上傳相應(yīng)字節(jié)長(zhǎng)度的消息至物聯(lián)網(wǎng)平臺(tái),且為了節(jié)約成本、功耗,并不要求物聯(lián)網(wǎng)平臺(tái)對(duì)上傳的數(shù)據(jù)進(jìn)行響應(yīng)。對(duì)于命令的數(shù)據(jù)幀則是按照表2中的格式進(jìn)行設(shè)計(jì),根據(jù)不同種類(lèi)的命令分配1字節(jié)進(jìn)行區(qū)分,并設(shè)計(jì)命令序號(hào)以對(duì)某條命令進(jìn)行精準(zhǔn)定位,以獲得該條命令的響應(yīng);在終端設(shè)備向物聯(lián)網(wǎng)平臺(tái)進(jìn)行命令響應(yīng)時(shí),還會(huì)附帶上1字節(jié)的命令執(zhí)行狀態(tài)信息,供物聯(lián)網(wǎng)平臺(tái)獲取命令的執(zhí)行情況,以防命令未能成功執(zhí)行時(shí)所帶來(lái)的系統(tǒng)狀態(tài)的不一致。
3.3 監(jiān)控平臺(tái)的開(kāi)發(fā)
監(jiān)控平臺(tái)與物聯(lián)網(wǎng)平臺(tái)之間的通信,主要是通過(guò)調(diào)用物聯(lián)網(wǎng)平臺(tái)的北向接口實(shí)現(xiàn)的。首先在物聯(lián)網(wǎng)平臺(tái)上傳監(jiān)控平臺(tái)的CA證書(shū),之后便可以通過(guò)https協(xié)議進(jìn)行通信,監(jiān)控平臺(tái)通過(guò)調(diào)用物聯(lián)網(wǎng)平臺(tái)的消息訂閱接口,實(shí)現(xiàn)當(dāng)采集終端上傳指定信息至物聯(lián)網(wǎng)平臺(tái)時(shí),會(huì)同時(shí)將該信息解析推送至監(jiān)控平臺(tái)處;當(dāng)監(jiān)控平臺(tái)有命令需要下發(fā)時(shí),也能調(diào)用物聯(lián)網(wǎng)平臺(tái)的命令下發(fā)接口以利用profile文件中規(guī)定的命令實(shí)現(xiàn)對(duì)終端設(shè)備的控制。在監(jiān)控平臺(tái)處,用MySQL數(shù)據(jù)庫(kù)對(duì)接收到的數(shù)據(jù)進(jìn)行存儲(chǔ),以供顯示及數(shù)據(jù)分析使用。
監(jiān)控平臺(tái)主要集成了系統(tǒng)節(jié)點(diǎn)管理、節(jié)點(diǎn)信息查詢(xún)、節(jié)點(diǎn)狀態(tài)更改等功能,如圖5所示。節(jié)點(diǎn)管理模塊中,可顯示當(dāng)前系統(tǒng)中所涉及的不同傳感器類(lèi)型,及各種類(lèi)型傳感器所對(duì)應(yīng)終端節(jié)點(diǎn)的編號(hào),可對(duì)當(dāng)前系統(tǒng)的整體容量有直觀的體現(xiàn)。針對(duì)特定編號(hào)的終端,節(jié)點(diǎn)信息查詢(xún)模塊可通過(guò)對(duì)數(shù)據(jù)庫(kù)的查詢(xún),對(duì)該終端在特定時(shí)間段內(nèi)所收集到的信息進(jìn)行查詢(xún)、顯示。各個(gè)終端節(jié)點(diǎn)都有其特定的告警閾值、采集周期等狀態(tài)信息,這些信息都可在節(jié)點(diǎn)狀態(tài)更改模塊中進(jìn)行查詢(xún),并可對(duì)其數(shù)值進(jìn)行修改,同時(shí)經(jīng)過(guò)監(jiān)控平臺(tái)-物聯(lián)網(wǎng)平臺(tái)-終端節(jié)點(diǎn)這一下行鏈路將此信息更新至終端節(jié)點(diǎn)中,以實(shí)現(xiàn)對(duì)于終端的靈活控制。
4 系統(tǒng)的測(cè)試
將帶有煙霧、電流、液壓等傳感器的終端節(jié)點(diǎn)放置于室內(nèi)、衛(wèi)生間等處,并設(shè)置不同的初始閾值、采集周期等進(jìn)行測(cè)試。各終端設(shè)備成功初始化并連接上NB-IoT網(wǎng)絡(luò)后,開(kāi)始按照預(yù)設(shè)的采集周期向OceanConnect物聯(lián)網(wǎng)平臺(tái)進(jìn)行數(shù)據(jù)的上傳,且數(shù)據(jù)都能正常地推送至監(jiān)控平臺(tái)處。在監(jiān)控平臺(tái)處,系統(tǒng)節(jié)點(diǎn)管理模塊能正常地顯示出系統(tǒng)中已接入的終端設(shè)備的編號(hào)。針對(duì)接入了煙霧傳感器的終端節(jié)點(diǎn),節(jié)點(diǎn)狀態(tài)更改模塊如圖6所示,能順利查詢(xún)出各終端設(shè)備所預(yù)設(shè)的初始閾值為1.00、采集周期為240 s等信息,且將采集周期修改為30 s后,該終端設(shè)備也能如圖7所示,按照最新的采集周期進(jìn)行上傳。節(jié)點(diǎn)信息查詢(xún)模塊的測(cè)試如圖8所示,首先在無(wú)煙的狀態(tài)下進(jìn)行數(shù)據(jù)上傳,監(jiān)測(cè)平臺(tái)處會(huì)以較長(zhǎng)的周期接收到煙霧數(shù)據(jù),隨后將點(diǎn)燃后熄滅了的紙片放到傳感器附近,模擬有火災(zāi)發(fā)生的情況。由于采集數(shù)據(jù)大于預(yù)設(shè)的閾值,終端節(jié)點(diǎn)則一次次地以更短的采集周期上傳數(shù)據(jù),并很快收斂到以最短的周期進(jìn)行數(shù)據(jù)上傳,將紙片遠(yuǎn)離傳感器,模擬火災(zāi)結(jié)束的情況。由于采集數(shù)據(jù)小于預(yù)設(shè)的閾值,終端也會(huì)一次次以更長(zhǎng)的周期進(jìn)行數(shù)據(jù)上傳,并很快按最大的采集周期進(jìn)行上傳,以達(dá)到節(jié)能的目的。
5 結(jié)語(yǔ)
文章基于NB-IoT的通信方式設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)智慧消防系統(tǒng),并對(duì)整個(gè)系統(tǒng)的架構(gòu)及其軟硬件的設(shè)計(jì)過(guò)程進(jìn)行了詳細(xì)的描述。測(cè)試結(jié)果顯示,系統(tǒng)的運(yùn)行結(jié)果良好,滿(mǎn)足智慧消防的需求。
[參考文獻(xiàn)]
[1]胡悅,童恩,曹浩彤,等.構(gòu)建全面的智慧消防體系[C]//杭州:物聯(lián)網(wǎng)與無(wú)線(xiàn)通信—2018年全國(guó)物聯(lián)網(wǎng)技術(shù)與應(yīng)用大會(huì)論文集,2018.
[2]張偉,徐暉,陳馥婧.基于物聯(lián)網(wǎng)的滅火防護(hù)服監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].消防界(電子版),2019(24):36-37.
[3]倪建云,張薦,解樹(shù)枝,等.分布式消防報(bào)警監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2018(4):308-312.
[4]曲井致.NB-IoT低速率窄帶物聯(lián)網(wǎng)通信技術(shù)現(xiàn)狀及發(fā)展趨勢(shì)[J].科技創(chuàng)新與應(yīng)用,2016(31):115.
[5]郭亞勤,楊靜,王艷花.基于OceanConnect室內(nèi)空氣質(zhì)量檢測(cè)系統(tǒng)[J].電子設(shè)計(jì)工程,2020(5):56-60.
[6]湯春明,張熒,吳宇平.無(wú)線(xiàn)物聯(lián)網(wǎng)中CoAP協(xié)議的研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2013(1):40-44.
(編輯?王永超)
Design and implementation of intelligent fire control system based on NB-IoT
Du Chaoming, Hu Jing, Song Tiecheng, Zhang Siyuan
(School of Information Science and Engineering, Southeast University, Nanjing 210096, China)
Abstract:In view of the problems of single data source, being unable to carry out inspection and hidden trouble investigation effectively in the traditional fire fighting industry, this paper designs and implements an intelligent fire control monitoring system based on NB-IoT. The system selects the STM32 as the microprocessor and uses the corresponding sensors to collect the information of smoke, electrical characteristics, pressure and water level. According to the fire risk of the environment, the information is uploaded to the OceanConnect Internet of Things cloud platform through the NB-IoT network according to pushed to the monitoring platform for data processing. After test, it proves that the whole system runs in good condition, has stable performance, and has good application prospect and popularization value.
Key words:NB-IoT; intelligent fire; STM32; OceanConnect
作者簡(jiǎn)介:杜朝明(1995— ),男,四川瀘州人,碩士研究生;研究方向:物聯(lián)網(wǎng)技術(shù)及應(yīng)用。