, ,,
(1.北京工商大學 計算機與信息工程學院,北京 100048; 2.煙臺市產(chǎn)品質(zhì)量監(jiān)督檢驗所,山東 煙臺 264009)
智能網(wǎng)關采用物聯(lián)網(wǎng)主流技術NB-IoT技術,主要設計用于小區(qū)家庭中水、電能、燃氣三表數(shù)據(jù)的共同采集,達到家庭物聯(lián)網(wǎng)中數(shù)據(jù)廣域傳輸中節(jié)能降耗的初衷。傳統(tǒng)智能網(wǎng)關通常采用GPRS、ZigBee、LoRa等技術進行數(shù)據(jù)傳輸至智能云平臺。文獻[1]中使用GPRS技術完成了小區(qū)電力智能抄表的設計,但受到一定阻礙,如信號覆蓋不穩(wěn)定、傳輸距離受限、功耗大及數(shù)據(jù)量大造成的終端數(shù)據(jù)飽和等因素。文獻[2]中使用ZigBee技術完成了智能網(wǎng)關的設計,但ZigBee無線模塊價格昂貴,且對信道帶寬要求較高,導致海量部署困難。LoRa技術發(fā)展較為成熟,但目前全面部署面臨一定阻礙,且所用頻段目前處于受制狀態(tài),因此NB-IoT成為主流之選[3]。支持3種方式部署的窄帶物聯(lián)網(wǎng)NB-IoT技術,在相同發(fā)射功率下覆蓋比LTE增加20dB,信號穿透性強,低功耗待機時間可維持10年之久,單個小區(qū)用戶連接可達5萬余,適用于剛需智能家居設備[4-5]。
本文設計了基于窄帶物聯(lián)網(wǎng)NB-IoT技術的“三表合一”智能網(wǎng)關,采用國內(nèi)已搭建完成的公共射頻網(wǎng)絡,應用Cortex-M3內(nèi)核的STM32F103芯片,可以精確獲取三塊表的使用數(shù)據(jù),配合智能云平臺,采用上位機程序智能調(diào)控各網(wǎng)關,構(gòu)成智能網(wǎng)關[6],解決了家庭物聯(lián)網(wǎng)中數(shù)據(jù)廣域低成本傳輸中節(jié)能降耗的問題。
根據(jù)NB-IoT發(fā)展現(xiàn)狀,NB-IoT智能網(wǎng)關部署架構(gòu)包括智能網(wǎng)關采集終端、智能云平臺及用戶接收終端,如圖1所示。
智能網(wǎng)關采集終端即由智能網(wǎng)關連接三表構(gòu)成,采用485通訊,與NB-IoT基站通過CoAP協(xié)議傳輸,經(jīng)由智能云平臺通過虛擬專用撥號網(wǎng)(VPDN)運營商專屬的網(wǎng)絡轉(zhuǎn)發(fā)至接收終端,形成完整架構(gòu)部署。
采集終端主要由主控制器電路、RS-485通信電路和NB-IoT網(wǎng)絡接入電路構(gòu)成。工作中,由主控制器控制依次將三塊表數(shù)據(jù)采集至智能網(wǎng)關中,存儲于主控制器中,由CoAP協(xié)議組裝、解析,由USR-NB75模組向NB-IoT基站傳輸。
智能網(wǎng)關設備可接入智能云平臺,利用SDK和API接口實現(xiàn)自主開發(fā)軟件功能,由智能云平臺對智能網(wǎng)關進行調(diào)控,實現(xiàn)存儲數(shù)據(jù)并實時監(jiān)測各智能網(wǎng)關,通過微信公眾號等方式即時報警功能,并通過HTTPS協(xié)議傳輸水、電能、燃氣三塊表數(shù)據(jù)至接收終端。
用戶接收終端主要由PC端或手機端構(gòu)成,接收終端上位機程序?qū)?shù)據(jù)進行解析、校驗、處理并給予反饋,亦可采用PC端或手機端實時監(jiān)控數(shù)據(jù)收發(fā)情況,接收終端根據(jù)用戶需求查看或下載數(shù)據(jù),并可將調(diào)控指令反饋至智能云平臺進行命令轉(zhuǎn)接,對智能網(wǎng)關進行調(diào)控。
智能網(wǎng)關由電源模塊、主控制器、三表對應的RS-485接口、NB-IoT模組及液晶顯示器構(gòu)成,并包含SPI藍牙模塊接口,增強智能網(wǎng)關可擴展性,總體結(jié)構(gòu)設計如圖2所示。
圖2 智能網(wǎng)關結(jié)構(gòu)設計框圖
智能網(wǎng)關采用AMS1117電壓轉(zhuǎn)換器進行全局供電,主控制器通過UART接口與3選1I/O選擇器與三表進行異步通信,定時向三表依次發(fā)出采集數(shù)據(jù)指令,三表接收指令后回復數(shù)據(jù);同時主控制器控制NB-IoT模組定時向已部署的NB-IoT基站傳輸三塊表采集的數(shù)據(jù)。智能網(wǎng)關報警時液晶顯示器顯示報警情況,同時報警信息即時傳輸至用戶手機終端。此外,藍牙模塊接口可用于智能家居,如監(jiān)測智能穿戴設備,實時監(jiān)測家庭中老人狀況,各模塊協(xié)同合作構(gòu)成智能網(wǎng)關。
智能網(wǎng)關經(jīng)由采集接口直接連接水、電能、燃氣三塊表,由家庭電壓220 V供電,電壓進入智能網(wǎng)關前經(jīng)過AC/DC模塊轉(zhuǎn)換,將220 V電壓轉(zhuǎn)為5 V電壓,再經(jīng)過AMS1117電源元件將5 V電壓轉(zhuǎn)為3.3 V對智能網(wǎng)關中各模塊全局供電,通過主控制器控制數(shù)據(jù)的定時采集,并將數(shù)據(jù)傳輸至NB-IoT模塊,對數(shù)據(jù)進行打包并通過NB-IoT模塊綁定的CoAP協(xié)議進行數(shù)據(jù)傳輸。智能網(wǎng)關報警、時鐘及各表工作情況均通過液晶顯示屏顯示。藍牙模塊作為萬物聯(lián)網(wǎng)智能家居擴展接口,可連接老人防摔倒設備,監(jiān)測老人安全動態(tài)。
智能網(wǎng)關封裝選取86盒規(guī)格,大小為86 mm×86 mm的正方形底盒,并將TLT-LCD液晶顯示器嵌于正表面。該底盒可有效防范漏電,并在較小改變房屋電氣布局基礎上實現(xiàn)了智能網(wǎng)關的安裝,符合智能網(wǎng)關在家庭應用中安全且便捷的需求。
主控制器采用STM32F103內(nèi)核Cortex-M3微處理器與三路RS-485差分信號負邏輯芯片進行數(shù)據(jù)采集,分別獲取三塊表的數(shù)據(jù)。系統(tǒng)工作時鐘為72M,工作電壓3.3 V,外圍設備豐富,抗干擾能力強。智能網(wǎng)關進行系統(tǒng)初始化后,STM32F103芯片進入低功耗模式,等待定時中斷喚醒STM32F103芯片,并在傳輸數(shù)據(jù)前喚醒NB-IoT模塊。同時,Cortex-M3微處理器可根據(jù)報警信息即時控制各表關停,避免各表持續(xù)異常工作,并將報警信息顯示在TLT-LCD液晶顯示器模塊上。主控制器原理圖如圖3所示。
圖3 主控制器原理圖
主控制器電路設計包含看門狗電路,防止主控制器進入死機狀態(tài)。并包含RS-485芯片接口及I/O選擇器電路。要求當且僅當I/O選擇器選中的發(fā)送口R0/R1與接收口T0/T1為同一塊表的收發(fā)接口時,該表被選通,Cortex-M3微處理器可通過指令對該表進行數(shù)據(jù)采集。主控制器芯片中亦包含NB-IoT模組接口、藍牙模塊接口及TLT-LCD模塊接口。
NB-IoT網(wǎng)絡接入電路包含物聯(lián)網(wǎng)模塊系列的USR-NB75模塊及外圍電路,在智能網(wǎng)關初始化后,等待NB-IoT模塊被喚醒后,與綁定了運營商IP的NB-IoT網(wǎng)絡專用卡進行數(shù)據(jù)交互,再經(jīng)由已部署的NB-IoT網(wǎng)絡即800 MHz射頻頻段將數(shù)據(jù)傳輸至NB-IoT基站。USR-NB75模組采用5-16 V供電,與Cortex-M3微處理器UART接口連接,實現(xiàn)NB-IoT模組與主控制器之間的異步通信,NB-IoT網(wǎng)絡接入電路設計如圖4所示。
圖4 NB-IoT網(wǎng)絡接入電路設計
在NB75模塊中內(nèi)嵌心跳包,定時對其進行喚醒,保證傳輸數(shù)據(jù)的穩(wěn)定性。并設置復位接口,使主控制器可通過AT指令集控制NB75模塊,在智能網(wǎng)關初始化時選通復位接口,使NB-IoT網(wǎng)絡接入電路復位。NB75模塊與主控制器通過UART串口異步通信,TXD口數(shù)據(jù)發(fā)送,RXD口用于數(shù)據(jù)接收。
NB-IoT網(wǎng)絡接入電路將NB-IoT網(wǎng)絡與微控制器系統(tǒng)相連接,使微控制器在采集水、電能、燃氣三表數(shù)據(jù)后可將數(shù)據(jù)打包,控制數(shù)據(jù)包經(jīng)由NB-IoT網(wǎng)絡傳輸至基站。
STM32芯片上已預留串口,串口擴展接口可連接藍牙或其他模塊,擴展智能網(wǎng)關功能,以藍牙模塊為例,藍牙模塊可連接智能家居如智能穿戴設備等裝置,加強智能網(wǎng)關可擴展性同時提升智能家居普及度。在連接智能穿戴設備,防止老人摔倒的擴展應用中,智能網(wǎng)關使用SPI串口連接藍牙模塊5.0,采用主從模式,主模塊連接UART串口至智能網(wǎng)關中,從模塊接入智能穿戴設備中,主模塊通過廣播模式監(jiān)聽從機信號,實時監(jiān)測老人動態(tài)。一個主機可連接個3個從機,當從機模塊報警時,信號由NB-IoT網(wǎng)絡接入電路傳輸,通過智能云平臺及時推送至手機端,通知家人。
采集終端由主控制器全局掌控,定時進行數(shù)據(jù)采集并與NB-IoT網(wǎng)絡接入電路進行數(shù)據(jù)交互,采集終端軟件流程如圖5所示。
圖5 采集終端軟件流程圖
采集終端進行采集系統(tǒng)初始化后,STM32F103芯片進入低功耗模式,等待中斷定時器每半小時對其喚醒一次,喚醒后進行數(shù)據(jù)采集并存儲;同時中斷定時器每6小時控制NB-IoT模塊初始化一次,并連接STM32F103芯片等待數(shù)據(jù)傳輸,數(shù)據(jù)采集完成后退出PSM模式,Cortex-M3微處理器寫入心跳包使能時延,通過心跳包使能保持NB-IoT模塊與STM32芯片的正常連接,數(shù)據(jù)通過AT指令集發(fā)送至NB-IoT基站。
用戶接收終端測試軟件使用管理者權(quán)限登陸系統(tǒng),使接收終端服務器與智能云平臺連接,系統(tǒng)可實現(xiàn)數(shù)據(jù)包下載從而獲取全部用戶家庭各表使用情況,亦可在界面中查詢單個用戶的使用數(shù)據(jù),用戶接收終端測試軟件界面如圖6所示。
用戶終端測試軟件由管理者登陸欄和用戶數(shù)據(jù)欄構(gòu)成。其中管理者登陸欄包括用戶名及密碼輸入框及登陸/斷開按鈕,用戶數(shù)據(jù)欄包括用戶ID框、查詢按鈕、數(shù)據(jù)包下載按鈕及三表已使用和賬戶剩余顯示框。用戶ID框可手動輸入或下拉選擇ID。
管理者輸入在程序中已設置好的用戶名及密碼,點擊登陸即可登陸用戶終端測試軟件,連接智能云平臺,用戶ID為智能網(wǎng)關中NB-IoT專用卡的ID,可下拉選擇或手動輸入,點擊查詢即可查詢該ID對應用戶家庭中各表數(shù)據(jù)使用情況及預存賬戶剩余情況。點擊數(shù)據(jù)包下載即可下載智能云平臺中該管理者賬號已授權(quán)的所有用戶ID的數(shù)據(jù)。方便管理者查詢各用戶情況及下載數(shù)據(jù)包進行處理。
用戶接收終端測試軟件可直觀體現(xiàn)智能網(wǎng)關采集到的數(shù)據(jù),并可將用戶家庭賬戶中已購買的水、電能、燃氣已用及剩余量值均以表格形式體現(xiàn),可明確與水、電能、燃氣三表進行對比,查驗接收終端所接受數(shù)據(jù)是否有誤,從而監(jiān)測智能網(wǎng)關及整體傳輸系統(tǒng)正確率。同時,終端測試軟件可隨時通過登陸軟件,連接至智能云平臺,向智能云平臺調(diào)取數(shù)據(jù),將數(shù)據(jù)包下載至接收終端服務器中,便于及時對最新數(shù)據(jù)進行下載分析處理。
(1)數(shù)據(jù)幀校驗方式。
各表數(shù)據(jù)由STM32F103芯片通過RS-485芯片采集,在智能網(wǎng)關向NB-IoT基站傳輸數(shù)據(jù)過程中可能發(fā)生丟包導致數(shù)據(jù)異常。因此在數(shù)據(jù)包定義時采用循環(huán)冗余校驗碼(CRC)校驗方式,設置循環(huán)冗余校驗碼置于數(shù)據(jù)最后2Byte,使校驗位與數(shù)據(jù)一同打包、傳輸、解析,解析后的數(shù)據(jù)采用與設置校驗碼相同運算方式進行計算,得出校驗位與解析得到校驗位比較,判斷數(shù)據(jù)是否異常,異常則由智能云平臺向智能網(wǎng)關進行反饋重傳。
(2)數(shù)據(jù)包定義及數(shù)據(jù)傳輸。
本文采用自定義數(shù)據(jù)包對傳輸數(shù)據(jù)幀進行定義,數(shù)據(jù)包由幀頭、用戶ID 、三表數(shù)據(jù)、擴展接口數(shù)據(jù)、CRC校驗位和幀尾構(gòu)成,由CoAP協(xié)議將自定義數(shù)據(jù)包打包傳輸,向NB-IoT基站傳輸,具體傳輸幀定義如表1所示。
表1 傳輸數(shù)據(jù)幀定義
在數(shù)據(jù)采集及傳輸時,水表數(shù)據(jù)及電表數(shù)據(jù)分別保留1位小數(shù),燃氣表保留3位小數(shù),校驗位保留3位小數(shù)。幀頭、幀尾、校驗碼及各數(shù)據(jù)共同打包,選用CoAP協(xié)議中的需要確認消息(CON)類型進行傳輸,即智能網(wǎng)關傳輸數(shù)據(jù)后需要收到智能云平臺的確認。
搭建實驗環(huán)境:將網(wǎng)關接入一戶家庭中,分別將485總線接入水表、電能表及燃氣表中,構(gòu)成智能網(wǎng)關采集環(huán)境。三表數(shù)據(jù)經(jīng)智能網(wǎng)關采集后通過NB-IoT網(wǎng)絡上傳至智能云平臺,并由智能云平臺進行轉(zhuǎn)發(fā),經(jīng)由測試軟件顯示數(shù)據(jù)情況。
測試過程:初始化智能網(wǎng)關,微控制器向各表發(fā)出指令采集水、電能、燃氣三表數(shù)據(jù),智能網(wǎng)關連續(xù)工作15天,每半小時采集一次數(shù)據(jù),間隔6小時傳輸一次數(shù)據(jù),通過測試軟件監(jiān)測數(shù)據(jù)接收情況。測試結(jié)果表明:
(1)數(shù)據(jù)采集端采集時間及采集數(shù)據(jù)準確,未發(fā)現(xiàn)存在誤差數(shù)據(jù),滿足智能網(wǎng)關設計要求;
(2)數(shù)據(jù)傳輸時延可控制在10s之內(nèi),在遠端服務器接收準確,未發(fā)生丟包現(xiàn)象,滿足行業(yè)使用標準;
(3)監(jiān)控數(shù)據(jù)采集系統(tǒng)長時間運行穩(wěn)定,可穩(wěn)定支持智能網(wǎng)關運行。
測試結(jié)果及分析:在一周時,登陸測試軟件,通過云平臺調(diào)取智能網(wǎng)關采集的水、電能、燃氣三表數(shù)據(jù),此用戶家庭中一周使用水、電、氣使用如圖7所示。
圖7 測試家庭一周用水、電能、燃氣情況
如圖7所示,該測試家庭一周中所用電量為23千瓦時,用水量為4立方米,用燃氣量為8立方米,經(jīng)查驗,接收終端測試軟件所接收數(shù)據(jù)與水、電能、燃氣三表上顯示數(shù)據(jù)相同。因此,說明智能網(wǎng)關在采集數(shù)據(jù)、傳輸數(shù)據(jù)至智能云平臺及數(shù)據(jù)從智能云平臺透傳至服務器時工作穩(wěn)定。用戶家庭接入智能網(wǎng)關后,電能消耗未見明顯提升,說明智能網(wǎng)關功耗較低,滿足用戶家庭中正常使用條件,并且相對水、電能、燃氣三表分別采用一套數(shù)據(jù)采集系統(tǒng)而言,功耗在理論上降低了三分之二。
本文針對水表、電能表、燃氣表數(shù)據(jù)采集與傳輸功耗較高的問題設計了智能網(wǎng)關。所設計智能網(wǎng)關基于NB-IoT通信技術,對三表使用數(shù)據(jù)進行定時采集并傳輸,使用STM32F103芯片采集數(shù)據(jù),并采用CoAP協(xié)議經(jīng)由NB-IoT模組傳輸,安全性能較高。數(shù)據(jù)經(jīng)由智能云平臺轉(zhuǎn)發(fā),到達接收終端,便捷采集海量家庭中的各表數(shù)據(jù)并管理相關數(shù)據(jù)。測試表明所設計家庭智能網(wǎng)關數(shù)據(jù)采集準確、傳輸距離不受限、系統(tǒng)運行穩(wěn)定、實用性強,可以有效解決海量家庭中采集各表數(shù)據(jù)、智能調(diào)控各表的問題,可擴展性強。