張坤鰲,郭澤梅
(西安科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,陜西 西安 710054)
現(xiàn)如今物聯(lián)網(wǎng)技術(shù)在通信行業(yè)應(yīng)用得越來越多,運營商在國內(nèi)建造了大規(guī)模的光交箱、基站等基礎(chǔ)設(shè)施,因此導(dǎo)致全國范圍內(nèi)的光交箱分布過于廣泛且數(shù)量龐大,使得在光交箱管理方面出現(xiàn)很多問題[1]。例如,由于箱體數(shù)量的不斷增多,導(dǎo)致在鑰匙分配和箱體狀態(tài)的管理上出現(xiàn)很大問題;光交箱出現(xiàn)故障時不能及時地進行維護,即對光交箱的監(jiān)控沒有實現(xiàn)實時性[2];管理和維護光交箱的人員流動性太大,普通的人員登記表也容易丟失,導(dǎo)致在人員管理方面比較困難;對光交箱進行施工之后,箱體信息不能進行及時更新,導(dǎo)致許多數(shù)據(jù)錯誤;偏遠地區(qū)的光纜被盜現(xiàn)象非常嚴重,無法做到及時告警[3]。隨著無線通信與遠程技術(shù)的發(fā)展, 國內(nèi)外已出現(xiàn)基于Zigbee和GPRS等技術(shù)的光交箱管理系統(tǒng)或類似管理系統(tǒng)的設(shè)計與研究[4-8]。但是,和NB-IoT技術(shù)對比,Zigbee的傳輸距離短,易受干擾,網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜。另外,NB-IoT技術(shù)比GPRS技術(shù)的最大鏈路預(yù)算提高了20 dB,相當于覆蓋強度[9]增大了100倍[10]。更重要的是,NB-IoT通信模塊成本很小,非常適合大范圍的使用[11]。
為此,文中設(shè)計了一種基于NB-IoT的光交箱管理系統(tǒng),該系統(tǒng)易于操作、靈活方便、運行穩(wěn)定、成本較低,能夠做到對光交箱實時監(jiān)控的智能化管理。
系統(tǒng)總體結(jié)構(gòu)如圖1所示。該系統(tǒng)分為數(shù)據(jù)采集模塊、數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊。其中數(shù)據(jù)采集模塊是由光交箱中的智能鎖具完成。智能鎖具中包含了STM32主控芯片、電子行程開關(guān)、溫度傳感器和濕度傳感器,完成對數(shù)據(jù)的采集與封裝。數(shù)據(jù)發(fā)送模塊是由智能鎖具中的NB-IoT通信模塊、NB-IoT基站以及IoT平臺三部分實現(xiàn),完成對數(shù)據(jù)的發(fā)送以及數(shù)據(jù)的編解碼。數(shù)據(jù)接收模塊是由云端服務(wù)器和終端顯示設(shè)備完成,實現(xiàn)對光交箱信息的實時顯示[12]以及遠程監(jiān)控。
圖1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)的工作原理如下:首先,智能鎖具中的電子行程開關(guān)、溫度傳感器和濕度傳感器將分別采集到的門鎖狀態(tài)、環(huán)境溫度和環(huán)境濕度數(shù)據(jù)傳送給STM32主控芯片,主控芯片將采集到的信息封裝成NB-IoT通信模塊發(fā)送數(shù)據(jù)所需的十六進制格式。NB-IoT基站將數(shù)據(jù)負責(zé)轉(zhuǎn)發(fā)到IoT平臺,IoT平臺將數(shù)據(jù)解碼后提供給云端服務(wù)器。Web網(wǎng)頁和手機端通過查詢的方式將數(shù)據(jù)分析結(jié)果顯示在界面上。其次,遠程用戶通過Web網(wǎng)頁發(fā)送的控制命令,經(jīng)IoT平臺編碼后傳送至NB-IoT通信模塊,實現(xiàn)對STM32主控芯片的遠程控制。
智能鎖具由STM32F103VCT6主控芯片、數(shù)據(jù)采集模塊、電子行程開關(guān)、NB-IoT通信模塊以及電源模塊組成。溫度傳感器選用DS18B20,其溫度測量范圍[13]為-55~+125 ℃,另外在-10~+85 ℃之間,測量精度為±0.5 ℃。DS18B20的特點是采用單總線的接口方式,使得僅需一根I/O口便可實現(xiàn)與主控芯片的雙向通訊[14]。濕度傳感器采用STH15,其能適配各種單片機,優(yōu)點是響應(yīng)速度快,抗干擾能力強。電子行程開關(guān)選用LX19-001,其為直動式行程開關(guān),可將機械信號轉(zhuǎn)變?yōu)殡娦盘?,用來控制機械動作、變換機械運動方向等。NB-IoT通信模塊采用BC95-B5模組,其優(yōu)點是超低功耗、高靈敏度以及超強覆蓋。電源模塊采用鋰電池供電,為可充電式電池。智能鎖具的硬件組成結(jié)構(gòu)如圖2所示。主控芯片通過I/O口與DS18B20連接,通過I2C接口與STH15通信,通過LX19-001開關(guān)的常閉觸點與其連接,并將接收到的數(shù)據(jù)進行封裝后通過串口發(fā)送到BC95-B5通信模塊。
圖2 智能鎖具硬件組成結(jié)構(gòu)示意
該系統(tǒng)NB-IoT通信模塊采用BC95-B5模組,該模組體積小,支持頻段[10]為850 MHz,工作溫度為 -40~+85 ℃。
NB-IoT是IoT領(lǐng)域的一個新興技術(shù),支持低功耗設(shè)備在廣域網(wǎng)的蜂窩數(shù)據(jù)連接[15]。NB-IoT具備四大特點:功耗方面,NB-IoT采用簡化的協(xié)議,更適合的設(shè)計,大幅提升了終端的待機時間;信號覆蓋方面,NB-IoT有更好的覆蓋能力(20 dB增益),相當于提升了100倍覆蓋區(qū)域的能力[10];連接數(shù)量方面,NB-IoT一個扇區(qū)能夠支持10萬個連接;價格方面,NB-IoT模塊的成本很低,有利于大批量的使用。
NB-IoT網(wǎng)絡(luò)包括NB-IoT模組、NB-IoT基站、NB-IoT分組核心網(wǎng)、IoT平臺和應(yīng)用平臺[16]。數(shù)據(jù)的傳輸過程為:NB-IoT模組將數(shù)據(jù)發(fā)送至NB-IoT基站,基站將數(shù)據(jù)傳輸至NB-IoT分組核心網(wǎng),經(jīng)過NB-IoT分組核心網(wǎng)數(shù)據(jù)被傳至IoT平臺,隨后IoT平臺再將數(shù)據(jù)轉(zhuǎn)發(fā)到應(yīng)用平臺進行處理。同理,數(shù)據(jù)從應(yīng)用平臺的下發(fā)直到NB-IoT模組的接收也是在這個過程中傳輸。NB-IoT模組與應(yīng)用平臺的數(shù)據(jù)交互過程如圖3所示。
圖3 NB-IoT模組與應(yīng)用平臺數(shù)據(jù)交互過程
系統(tǒng)軟件設(shè)計有底層模塊軟件設(shè)計、通信模塊軟件設(shè)計、管理系統(tǒng)軟件設(shè)計和小程序端設(shè)計,其中關(guān)鍵部分設(shè)計有底層模塊軟件設(shè)計、通信模塊軟件設(shè)計和管理系統(tǒng)中的報警模塊軟件設(shè)計。下面將詳細說明這些關(guān)鍵部分的設(shè)計。
底層模塊主要功能是:在設(shè)備入網(wǎng)成功的前提下,LX19-001、DS18B20和STH15分別定時采集門鎖狀態(tài)、環(huán)境溫度和環(huán)境濕度數(shù)據(jù),并通過主控芯片將每次采集到的數(shù)據(jù)進行A/D轉(zhuǎn)換和濾波處理;之后通過NB-IoT模塊將采集到的數(shù)據(jù)發(fā)送至IoT平臺。主程序設(shè)計流程如圖4所示??梢钥闯?,首先對LX19-001、DS18B20和STH15進行初始化操作,然后設(shè)備嘗試入網(wǎng),入網(wǎng)成功后,LX19-001采集門鎖狀態(tài)、DS18B20采集環(huán)境溫度、STH15采集環(huán)境濕度,之后由NB-IoT模塊把被MCU進行A/D轉(zhuǎn)換和濾波處理過的數(shù)據(jù)發(fā)送到IoT平臺。數(shù)據(jù)發(fā)送完成之后,設(shè)備進入睡眠等待狀態(tài),等待下一次被喚醒之后,繼續(xù)循環(huán)以上操作。
圖4 主程序設(shè)計流程
通信模塊設(shè)計分為兩個部分:一是南向NB-IoT設(shè)備與IoT平臺之間的通信,二是IoT平臺與北向應(yīng)用即終端顯示設(shè)備之間的通信。
NB-IoT設(shè)備與IoT平臺間的通信需要經(jīng)過設(shè)備注冊、設(shè)備配置以及命令響應(yīng)三個步驟。其中設(shè)備注冊的過程比較復(fù)雜,又分為profile開發(fā)和插件開發(fā)。profile開發(fā)是指編寫一個設(shè)備是什么、能干什么以及如何控制設(shè)備的文件,使用Microsoft Visual Studio 2008編寫,文件內(nèi)容要符合JSON數(shù)據(jù)轉(zhuǎn)換格式。開發(fā)插件是為了將NB-IoT設(shè)備發(fā)送到IoT平臺的十六進制數(shù)據(jù)解碼為JSON格式數(shù)據(jù)。設(shè)備配置是指通過AT命令實現(xiàn)NB-IoT設(shè)備與IoT平臺之間的數(shù)據(jù)交互,所需要的AT命令如表1所示。命令響應(yīng)是指NB-IoT設(shè)備對IoT平臺向其下發(fā)訂閱信息或命令時的回應(yīng)動作。
表1 AT命令
IoT平臺與北向應(yīng)用之間的通信分為創(chuàng)建設(shè)備、設(shè)備訂閱、命令下發(fā)和命令響應(yīng)四個步驟。創(chuàng)建設(shè)備是指北向應(yīng)用在IoT平臺創(chuàng)建NB-IoT設(shè)備,等待設(shè)備注冊成功后,則可以通過IoT平臺管理設(shè)備。設(shè)備訂閱是指北向應(yīng)用通過API接口向IoT平臺發(fā)送訂閱信息,以此得到需要的數(shù)據(jù)。命令下發(fā)是指北向應(yīng)用將JSON格式命令發(fā)送到IoT平臺,經(jīng)IoT平臺編碼后再轉(zhuǎn)發(fā)給NB-IoT設(shè)備。命令響應(yīng)是指IoT平臺將NB-IoT設(shè)備響應(yīng)的十六進制數(shù)據(jù)解碼成JSON格式數(shù)據(jù)后轉(zhuǎn)發(fā)給北向應(yīng)用。
NB-IoT設(shè)備與北向應(yīng)用分別通過與IoT平臺之間的通信實現(xiàn)了北向應(yīng)用對NB-IoT設(shè)備的管理,整體通信過程如圖5所示。
報警分為機械故障報警和非法開鎖報警兩種模式。當環(huán)境溫度值和濕度值不屬于系統(tǒng)設(shè)定閾值的范圍,則啟動機械故障報警模式。當箱體在關(guān)閉狀態(tài)下被暴力開鎖時,則啟動非法開鎖報警模式。
圖5 NB-IoT設(shè)備、IoT平臺和北向應(yīng)用整體通信過程
實現(xiàn)報警的過程如下:用戶通過小程序掃描箱體IMEI碼(箱體的唯一識別碼),將箱體信息顯示在管理系統(tǒng)界面上,管理系統(tǒng)通過查詢服務(wù)器實時更新箱體狀態(tài),并由此判斷是否存在故障。(1)當環(huán)境溫度值和濕度值大于設(shè)定閾值時,則表明出現(xiàn)機械故障。此時,系統(tǒng)界面會彈出包含箱體編號和故障原因的機械故障告警框,同時在監(jiān)控地圖中的箱體標注會變成黃色,以便施工人員分辨并及時找出箱體詳細位置;(2)當箱門狀態(tài)為開,施工狀態(tài)為關(guān)時,則表明出現(xiàn)非法開鎖報警。此時,系統(tǒng)界面會彈出包含箱體編號和故障原因的非法開鎖告警框,同時在監(jiān)控地圖中的箱體標注會變成紅色,以便施工人員迅速找出箱體詳細位置。
兩種報警模式的設(shè)計實現(xiàn)。
檢測模塊實現(xiàn)過程:定時器管理器每隔五秒刷新一次數(shù)據(jù)庫中存儲的光交箱狀態(tài)表,程序循環(huán)讀取數(shù)據(jù)庫中的狀態(tài)表數(shù)據(jù),并將讀取到的狀態(tài)數(shù)據(jù)一一進行判斷,最后根據(jù)判斷結(jié)果在系統(tǒng)界面彈出相應(yīng)告警框。檢測模塊設(shè)計流程如圖6所示。
告警提示模塊實現(xiàn)過程:系統(tǒng)首先獲取故障信息表中未處理的故障數(shù)據(jù),之后利用JavaScript將AJAX獲取到的后臺數(shù)據(jù)動態(tài)加載至網(wǎng)頁中。告警提示模塊設(shè)計流程如圖7所示。獲取故障數(shù)據(jù)的偽代碼如下:
int max=7; //最多顯示7條記錄
for(Breakhistory breakhistory:breakhistorylist)
{
max--;
if(max<0)
{
break;
}
stringBuffer.append("
stringBuffer.append("
stringBuffer.append("
stringBuffer.append(breakhistory.getIMEI());
stringBuffer.append("");
stringBuffer.append("");
stringBuffer.append(breakhistory.getTYPE());
stringBuffer.append("");
stringBuffer.append("
}
圖6 檢測模塊設(shè)計流程
圖7 告警提示模塊設(shè)計流程
地圖模塊實現(xiàn)過程:JavaScript通過SQL語句與數(shù)據(jù)庫中的光交箱狀態(tài)表進行關(guān)聯(lián),并對狀態(tài)表中的數(shù)據(jù)進行判斷,同時根據(jù)判斷條件將最終結(jié)果顯示在監(jiān)控地圖中。
系統(tǒng)設(shè)計完成后,對其進行了系統(tǒng)測試。測試分為開鎖測試和報警測試。測試結(jié)果如下:(1)系統(tǒng)硬件設(shè)備上電后,特定用戶在小程序掃描箱體IMEI碼后,管理系統(tǒng)界面彈出開鎖請求,待審核通過后,箱門在5 s內(nèi)打開,大大簡化了開鎖流程,提高了工作效率;(2)箱體為關(guān)閉狀態(tài),箱體溫度為60 ℃,管理系統(tǒng)界面1 min內(nèi)彈出機械故障告警框,同時監(jiān)控地圖中的標注顏色變?yōu)辄S色;(3)箱體為關(guān)閉狀態(tài),箱門被撬開,管理系統(tǒng)界面1 min內(nèi)彈出非法開鎖告警框,同時監(jiān)控地圖中的標注顏色變?yōu)榧t色。結(jié)果表明,該系統(tǒng)能夠遠程實時監(jiān)控光交箱,并且消除了傳統(tǒng)管理光交箱存在的許多隱患。
文中設(shè)計的基于NB-IoT的光交箱管理系統(tǒng),可通過PC端和手機端對數(shù)量龐大的光交箱體進行遠程監(jiān)控。系統(tǒng)界面簡潔,易于操作,運行穩(wěn)定,實時性高,大大提高了工作效率,減少了人力和資源的浪費,能從根本上解決傳統(tǒng)管理光交箱的許多問題。下一步將在該系統(tǒng)上增加傳感器的種類和增加視頻監(jiān)控的方式,使系統(tǒng)更加完善。