馮志剛,孫 浩,于明月
(沈陽(yáng)航空航天大學(xué) 自動(dòng)化學(xué)院, 沈陽(yáng) 110136)
隨著人們?nèi)找嬖鲩L(zhǎng)的生活需要和城市建設(shè)大力投入, 城市地井?dāng)?shù)量急劇增加,關(guān)于城市地井的管理問(wèn)題越來(lái)越嚴(yán)峻[1]。井蓋被盜,地下水沖開(kāi)井蓋導(dǎo)致道路毀壞等事件屢屢發(fā)生。所以,城市地井問(wèn)題一直是社會(huì)廣泛關(guān)注的焦點(diǎn)問(wèn)題之一[2]。目前國(guó)內(nèi)采用的主流地井監(jiān)測(cè)技術(shù)大多基于ZigBee和GPRS[3-4],在國(guó)外,比如日本,大多使用FRID技術(shù)進(jìn)行監(jiān)測(cè)。使用以上方法均存在覆蓋率低、功耗高、成品體較大、成本高、射頻識(shí)別極易被障礙物阻斷等問(wèn)題。由于人們對(duì)能源、成本以及技術(shù)的要求越來(lái)越高,此種方法慢慢無(wú)法滿足此類工程應(yīng)用。近些年來(lái),窄帶物聯(lián)網(wǎng)技術(shù)逐漸興起,在城市建設(shè)、智能家居等諸多方面解決了覆蓋面積小、信號(hào)弱、成本高、功耗高等問(wèn)題,因此NB-IoT技術(shù)逐漸出現(xiàn)在人們的視野中,并應(yīng)用于很多領(lǐng)域。
針對(duì)上述現(xiàn)象和問(wèn)題,本文設(shè)計(jì)了一種基于NB-IoT的城市地井智能監(jiān)測(cè)系統(tǒng),構(gòu)建了硬件電路平臺(tái),開(kāi)發(fā)了硬件終端軟件,設(shè)計(jì)了Web端業(yè)務(wù)監(jiān)控平臺(tái)網(wǎng)頁(yè),最終實(shí)現(xiàn)了城市地井的智能監(jiān)測(cè)和管理。
所設(shè)計(jì)的城市地井智能監(jiān)測(cè)系統(tǒng)總體方案結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
(1) 終端設(shè)備:系統(tǒng)的硬件平臺(tái),平臺(tái)的NB-IoT模塊通過(guò)空口連接到基站;
(2) 無(wú)線網(wǎng)側(cè):采用整體式無(wú)線接入網(wǎng),主要承擔(dān)空口接入管理、小區(qū)管理等相關(guān)功能, 并通過(guò)SI-lite接口與IoT核心網(wǎng)進(jìn)行連接,并將非接入層數(shù)據(jù)轉(zhuǎn)發(fā)給高層網(wǎng)元處理;
(3)核心網(wǎng):承擔(dān)與終端非接入層的交互功能,并將IoT業(yè)務(wù)相關(guān)數(shù)據(jù)轉(zhuǎn)發(fā)到IoT平臺(tái)進(jìn)行處理[5];
(4) IoT平臺(tái):IoT平臺(tái)是連接IoT系統(tǒng)中所有業(yè)務(wù)的支持平臺(tái),有助于通信、數(shù)據(jù)流、設(shè)備管理和應(yīng)用功能;
(5)客戶端:在本系統(tǒng)主要指的是井蓋監(jiān)測(cè)系統(tǒng)的客戶端界面,便于管理者對(duì)城市地井的后臺(tái)管理和監(jiān)控。
城市地井智能監(jiān)測(cè)硬件系統(tǒng)主要由主控電路、測(cè)量電路、GPS定位電路、存儲(chǔ)電路和NB-IoT通信電路組成。測(cè)量電路主要負(fù)責(zé)三軸加速度計(jì)的加速度采集、液位傳感器的超聲波返回時(shí)間采集和電源電壓的采集;GPS定位電路負(fù)責(zé)城市地井所處位置信息的采集;存儲(chǔ)電路負(fù)責(zé)存儲(chǔ)定時(shí)上傳間隔、角度報(bào)警閾值、液位報(bào)警閾值、終端編號(hào)等參數(shù);NB-IoT電路負(fù)責(zé)數(shù)據(jù)的傳輸和交互;主控電路負(fù)責(zé)將傳感器采集的數(shù)據(jù)進(jìn)行計(jì)算和處理,通過(guò)設(shè)定協(xié)議將數(shù)據(jù)打包,并將打包的數(shù)據(jù)通過(guò)NB-IoT模塊上傳至IoT平臺(tái),待客戶端下發(fā)指令時(shí),接收和處理指令。其硬件電路系統(tǒng)框架如圖2所示。
圖2 硬件電路系統(tǒng)框架圖
本系統(tǒng)的主控模塊選用意法半導(dǎo)體32位低功耗微處理器STM32L152R8T6。其特點(diǎn)如下[6]:(1) 1.65 V~3.6 V電壓供電;(2)-40 ℃~105 ℃的工作溫度范圍;(3)芯片在不工作的模式下輸出僅為560 nA;(4) 3對(duì)串口,2個(gè)SPI,2個(gè)12C以及足夠多的I/O接口。該芯片具有以上特點(diǎn),能夠滿足系統(tǒng)的低功耗、外設(shè)所需接口較多等要求。并且在惡劣的井內(nèi)環(huán)境中,也能正常工作。同時(shí)主控芯片通過(guò)I/O控制各個(gè)模塊的上下電通過(guò)SPI通信接口控制液位傳感器、存儲(chǔ)模塊的數(shù)據(jù)傳輸,通過(guò)URAT接口控制GPS定位模塊和NB-IoT通信模塊,通過(guò)ⅡC通信方式與傾角測(cè)量模塊的傳輸數(shù)據(jù)。具體電路設(shè)計(jì)如圖3所示。
圖3 控制模塊電路圖
本系統(tǒng)中三軸加速計(jì)選用的芯片型號(hào)為L(zhǎng)IS3DHTR。其精度高,模塊的最低功耗可以低到2 μA,滿足系統(tǒng)低功耗要求。其內(nèi)部工作原理為[7]:當(dāng)井蓋靜止不動(dòng)時(shí),三軸處于水平方向的狀態(tài),此時(shí)X、Y軸的加速度為0,Z軸的加速度為g,而當(dāng)井蓋發(fā)生偏移時(shí),井蓋在X軸方向的加速度為a,Y軸加速度為b,Z軸加速度為g,a和水平線的夾角為α,和g的夾角為α1,b和水平線的夾角為β,與g的夾角為β1,c和水平方向的夾角為θ,c和的夾角為θ1。所以由三角函數(shù)可知:
(1)
(2)
(3)
所以推導(dǎo)出:
(4)
(5)
(6)
芯片通過(guò)ⅡC總線通信方式與主控通信。ACC_12C_SCL是時(shí)鐘線,ACC_12C_SDA是一條雙向數(shù)據(jù)線,芯片內(nèi)部的MCU_INT與主控的外部中斷引腳連接可以喚醒三軸進(jìn)入工作狀態(tài)。P3為滾珠傾角傳感器,用來(lái)控制當(dāng)井蓋傾斜到一定角度時(shí)I/O口的通斷。具體電路設(shè)計(jì)如圖4所示。
圖4 傾角模塊電路圖
NB-IoT是IOT領(lǐng)域的新興技術(shù),支持低功耗設(shè)備在廣域網(wǎng)的蜂窩數(shù)據(jù)連接,因而也常被人叫作低功耗廣域網(wǎng)。其主要優(yōu)點(diǎn)表現(xiàn)在功耗低、信號(hào)強(qiáng),連接廣和成本低四個(gè)方面[8]。在通訊模塊硬件電路設(shè)計(jì)中,包括電源(其輸入范圍為3.1V~4.2V)、ADC模數(shù)轉(zhuǎn)換、射頻天線、UART串口、SIM卡接口等應(yīng)用。在具體電路設(shè)計(jì)中,在電源部分采用了10 μF+0.1 μF+1 nF+100 pF并聯(lián)電容,來(lái)濾掉高頻干擾部分。復(fù)位引腳9直接與單片機(jī)連接,用來(lái)控制模塊的工作和斷開(kāi)兩種狀態(tài)。指示燈與主控的兩個(gè)串口進(jìn)行連接分別顯示網(wǎng)絡(luò)附著狀態(tài)和供電狀態(tài)。井內(nèi)環(huán)境比較惡劣,使用ESD來(lái)對(duì)SIM卡進(jìn)行靜電保護(hù)。具體電路設(shè)計(jì)如圖5所示。
所設(shè)計(jì)的硬件平臺(tái)如圖6所示。
圖5 通信模塊電路圖
圖6 硬件平臺(tái)
軟件設(shè)計(jì)主要包括IoT平臺(tái)的選擇與連接、數(shù)據(jù)通信協(xié)議的設(shè)計(jì)、終端軟件設(shè)計(jì)和Web端網(wǎng)頁(yè)的設(shè)計(jì)。
本系統(tǒng)設(shè)計(jì)選擇的通信平臺(tái)為OneNet平臺(tái),是由中國(guó)移動(dòng)打造的PaaS物聯(lián)網(wǎng)開(kāi)放型平臺(tái)[9],能夠?qū)崿F(xiàn)在線監(jiān)控,終端設(shè)備的管理、在線調(diào)試和實(shí)時(shí)控制、數(shù)據(jù)存儲(chǔ)、讀寫數(shù)據(jù)庫(kù)、提供標(biāo)準(zhǔn)API接口等功能[10]。NB-IoT模塊與平臺(tái)具體連接過(guò)程中需調(diào)用相關(guān)的AT指令,通過(guò)LWM2M協(xié)議實(shí)現(xiàn),具體操作步驟如下所述:(1)創(chuàng)建產(chǎn)品,選用LWM2M協(xié)議;(2)添加設(shè)備,通過(guò)串口AT指令查詢方式查詢IMEI和IMSI,填寫設(shè)備基本信息;(3)單片機(jī)通過(guò)串口發(fā)送AT指令,查詢是否附著網(wǎng)絡(luò),創(chuàng)建套件,運(yùn)行套件[11]。連接流程如表1所示。
表1 AT指令的解釋說(shuō)明
在平臺(tái)與客戶端對(duì)接過(guò)程中,API接口為數(shù)據(jù)點(diǎn)的上傳與查詢,設(shè)備、數(shù)據(jù)流和觸發(fā)器的管理以及下發(fā)命令給以獲取到設(shè)備ID的設(shè)備??蛻舳苏{(diào)用平臺(tái)API接口時(shí),平臺(tái)以HTTP POSTS的請(qǐng)求方式向客戶端的地址推送數(shù)據(jù),推送數(shù)據(jù)的相關(guān)信息會(huì)以JSON串的形式置于HTTP請(qǐng)求中的body部分??蛻舳藭?huì)根據(jù)數(shù)據(jù)的設(shè)備ID和設(shè)備的api-key等進(jìn)行相關(guān)數(shù)據(jù)的接收。
為了實(shí)現(xiàn)終端控制模塊與OneNet平臺(tái)的數(shù)據(jù)交互,實(shí)現(xiàn)通過(guò)NB-IoT模塊的遠(yuǎn)程控制,本系統(tǒng)利用NB-IoT模塊作為無(wú)線傳輸介質(zhì),采用COAP透?jìng)髂J剑远x了通信協(xié)議實(shí)現(xiàn)終端控制設(shè)備和OneNet平臺(tái)的數(shù)據(jù)接收和發(fā)送。在上行過(guò)程中,主控制器會(huì)通過(guò)AT指令將數(shù)據(jù)打包成“AT+NMGS=
表2 部分通信協(xié)議說(shuō)明
設(shè)備初始化完畢后,首先會(huì)連接OneNet平臺(tái)發(fā)送Get請(qǐng)求,獲取設(shè)備的字段設(shè)置,如果設(shè)備沒(méi)有獲取到則按照默認(rèn)值進(jìn)行設(shè)備設(shè)置,然后用POST請(qǐng)求更新設(shè)備參數(shù),再斷開(kāi)連接。
本系統(tǒng)的硬件驅(qū)動(dòng)程序以keil為開(kāi)發(fā)環(huán)境,C語(yǔ)言進(jìn)行編寫。主程序如圖7所示,系統(tǒng)上電后首先對(duì)系統(tǒng)進(jìn)行初始化,包括時(shí)鐘的初始化、定時(shí)器的初始化、I/O工作狀態(tài)的設(shè)置、URAT、IIC等通信接口的初始化和NB-IoT模塊的初始化等。為了實(shí)現(xiàn)系統(tǒng)的低功耗功能,RTC配置單片機(jī)休眠周期,單片機(jī)平時(shí)處于休眠狀態(tài),當(dāng)?shù)竭_(dá)巡檢時(shí)間或者有外部報(bào)警信息時(shí)單片機(jī)立即被喚醒進(jìn)入工作模式,采集傾角,液位、電池電量和地理位置等各項(xiàng)巡檢數(shù)據(jù),并按照設(shè)定協(xié)議打包數(shù)據(jù),進(jìn)行循環(huán)冗余檢驗(yàn)保證數(shù)據(jù)正確[13],連接OneNet平臺(tái),通過(guò)IoT模塊將打包的數(shù)據(jù)上傳至平臺(tái)。待數(shù)據(jù)上傳完畢后,檢查是否有要接收的平臺(tái)指令,若有則處理平臺(tái)下發(fā)的指令;若沒(méi)有則斷開(kāi)與平臺(tái)的連接,進(jìn)入休眠狀態(tài)。
客戶端利用HTML5和PHP兩種語(yǔ)言分別編寫網(wǎng)頁(yè)的前端和后臺(tái)數(shù)據(jù)處理端,其開(kāi)發(fā)環(huán)境分別為sublime和WampServer[14-15]。網(wǎng)頁(yè)功能設(shè)計(jì)中主要包含了登錄頁(yè)面,監(jiān)控頁(yè)面,巡檢信息頁(yè)面、報(bào)警管理頁(yè)面和終端設(shè)置頁(yè)面,實(shí)現(xiàn)與終端設(shè)備的數(shù)據(jù)交互。其中登錄頁(yè)面實(shí)現(xiàn)用戶登錄;監(jiān)控頁(yè)面在地圖上直觀展示了報(bào)警城市地井位置,并設(shè)有查詢功能,可以搜索固定城市地井當(dāng)時(shí)所處狀態(tài);巡檢頁(yè)面實(shí)現(xiàn)了城市地井巡檢信息的展示;報(bào)警管理頁(yè)面實(shí)現(xiàn)了報(bào)警井位的報(bào)警原因、報(bào)警類型等信息的展示;終端設(shè)置頁(yè)面實(shí)現(xiàn)了終端傳感器參數(shù)和喚醒時(shí)間的設(shè)定。
本系統(tǒng)通過(guò)基于NB-IoT的硬件的電路設(shè)計(jì)、終端軟件程序設(shè)計(jì)以及客戶端網(wǎng)頁(yè)編寫,實(shí)現(xiàn)了系統(tǒng)的主要功能。選用兩個(gè)設(shè)備進(jìn)行測(cè)試,測(cè)試主要包含了硬件是否能夠正常工作,軟件系統(tǒng)實(shí)現(xiàn)OneNet平臺(tái)的連接和遠(yuǎn)程監(jiān)控與控制。經(jīng)測(cè)試,本系統(tǒng)實(shí)現(xiàn)了上述功能。部分終端頁(yè)面如圖8、9、10、11所示。
圖7 主程序流程圖
現(xiàn)對(duì)圖中所示頁(yè)面進(jìn)行解釋說(shuō)明:圖8為監(jiān)控中心功能區(qū),地圖上展示了城市地井的位置,能夠直觀地展示出井位狀態(tài)正常與否,也可通過(guò)井位編號(hào)和設(shè)備編號(hào)查詢的方式查看所要查看的城市地井的位置信息和狀態(tài);圖11為位井位巡檢功能區(qū),展示了各個(gè)終端監(jiān)測(cè)節(jié)點(diǎn)正常上報(bào)信息。需要注意的是,由于液位傳感器的內(nèi)部工作原理,此頁(yè)面展示的水位高度指的是液面距離井蓋的高度;圖10為報(bào)警管理功能區(qū),頁(yè)面功能為展示城市地井的報(bào)警歷史信息,可以對(duì)出現(xiàn)過(guò)的報(bào)警歷史進(jìn)行翻閱,并查看是否已處置及報(bào)警時(shí)間;圖11為終端管理功能區(qū),頁(yè)面的功能是展示和配置城市地井終端信息,包括終端的喚醒時(shí)間、電池參數(shù)、加速度傳感器參數(shù)、液位傳感器參數(shù)設(shè)置。需要注意的是,為了滿足低功耗的要求,平臺(tái)只有在終端上報(bào)巡檢信息或者報(bào)警信息時(shí),終端才可以執(zhí)行此頁(yè)面下發(fā)的命令,進(jìn)行終端的配置。
圖8 監(jiān)控中心頁(yè)面
圖9 井位巡檢頁(yè)面
圖10 報(bào)警管理頁(yè)面
圖11 終端管理頁(yè)面
本系統(tǒng)以NB-IoT模塊為核心,完成了井蓋傾斜角度、液位高度、地理位置、電池電量等數(shù)據(jù)的測(cè)量,基于自定義的通信協(xié)議上傳至OneNet平臺(tái),通過(guò)HTTP POSTS的請(qǐng)求方式將數(shù)據(jù)上傳至客戶端。經(jīng)過(guò)測(cè)試,系統(tǒng)能實(shí)現(xiàn)遠(yuǎn)程的監(jiān)測(cè)和控制,具有連接廣、信號(hào)強(qiáng)、通信穩(wěn)定等優(yōu)點(diǎn),系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、成本低、操作方便,對(duì)于城市地井的監(jiān)測(cè)和后臺(tái)管理具有很大作用與意義。