范小青 王宜懷 張藝琳
(蘇州大學計算機科學與技術(shù)學院 江蘇 蘇州 215006)
全球每天生產(chǎn)、運輸、儲存、分發(fā)數(shù)百萬噸溫濕度敏感醫(yī)藥,然而國內(nèi)醫(yī)藥冷鏈的發(fā)展仍存在醫(yī)藥冷鏈功耗較高、通信不穩(wěn)、監(jiān)測數(shù)據(jù)失真等問題[1],亟需開發(fā)一整套低功耗、高穩(wěn)定性、高準確性的醫(yī)藥冷鏈監(jiān)測系統(tǒng)。因此國內(nèi)外許多學者對醫(yī)藥冷鏈監(jiān)測系統(tǒng)進行了大量的研究和探索。無線傳感網(wǎng)絡(luò)(Wireless Sensor Network,WSN)[2]因其安裝靈活無害、維護方便、擴展性高等優(yōu)點,應(yīng)用領(lǐng)域日趨廣泛,尤其在監(jiān)測領(lǐng)域表現(xiàn)不俗。文獻[3]設(shè)計一種基于GPRS-ZigBee的物聯(lián)網(wǎng)醫(yī)療冷鏈自動檢測溫控系統(tǒng),用于監(jiān)測醫(yī)療冷鏈信息,但通信穩(wěn)定性不足。文獻[4]設(shè)計一種結(jié)合433 MHz頻段ZigBee技術(shù)與2.4 GHz頻段Wi-Fi技術(shù)的無線監(jiān)測系統(tǒng),實現(xiàn)對無人值守處環(huán)境的實時監(jiān)控,但Wi-Fi通信距離較短,功耗也相對偏高。窄帶物聯(lián)網(wǎng)(Narrow Band Internet of Things,NB-IoT)[5-7]的出現(xiàn)為醫(yī)藥冷鏈監(jiān)測系統(tǒng)提供了新思路。NB-IoT作為一種基于蜂窩網(wǎng)絡(luò)的低功耗廣域無線接入技術(shù),具有大連接、廣覆蓋、深穿透、低成本、低功耗等優(yōu)點,在智能測量、智能家居和環(huán)境監(jiān)測等領(lǐng)域有廣泛應(yīng)用[8-10],但是與醫(yī)藥冷鏈監(jiān)測系統(tǒng)相結(jié)合的研究卻較少。
本文設(shè)計并實現(xiàn)一套以433 MHz頻段ZigBee為WSN通信協(xié)議,以NB-IoT通信方式遠距離接入廣域網(wǎng)的多傳感器醫(yī)藥冷鏈監(jiān)測系統(tǒng)。該系統(tǒng)選擇433 MHz頻段作為WSN通信頻率,相比高頻段穿透性更強、傳輸距離更遠;選擇NB-IoT通信技術(shù)實現(xiàn)數(shù)據(jù)遠程傳輸,相比使用GPRS實現(xiàn)遠程傳輸數(shù)據(jù)更高效更低耗;提出一種多傳感器數(shù)據(jù)融合方法,保證醫(yī)藥冷鏈監(jiān)測數(shù)據(jù)的真實性與可靠性,為NB-IoT與WSN相結(jié)合的多傳感器醫(yī)藥冷鏈監(jiān)測系統(tǒng)的應(yīng)用提供可行性方案。
該系統(tǒng)整體通信架構(gòu)參考物聯(lián)網(wǎng)分層模型,并面向醫(yī)藥冷鏈監(jiān)測場景進行適應(yīng)性應(yīng)用,如圖1所示。自左向右分為感知層、網(wǎng)絡(luò)層和應(yīng)用層。感知層利用傳感器實現(xiàn)醫(yī)藥冷鏈的信息采集、感知與控制;網(wǎng)絡(luò)層支撐感知層的冷鏈信息傳遞、路由和控制;應(yīng)用層針對醫(yī)藥冷鏈的業(yè)務(wù)需求進行信息處理[11]。將該模型實例化,感知層由多個傳感器節(jié)點和網(wǎng)關(guān)節(jié)點構(gòu)成,主要采集醫(yī)藥冷鏈的溫度、濕度、加速度、光照強度等信息,節(jié)點間通過433 MHz頻段無線通信組成WSN,網(wǎng)關(guān)節(jié)點通過NB-IoT直接連接至廣域網(wǎng);網(wǎng)絡(luò)層由NB-IoT基站、NB-IoT核心網(wǎng)及NB-IoT平臺組成,該部分由運營商負責;應(yīng)用層由用戶云服務(wù)器及人機交互系統(tǒng)組成。
圖1 系統(tǒng)整體通信框架
終端硬件設(shè)計主要分為傳感器節(jié)點硬件設(shè)計和網(wǎng)關(guān)節(jié)點硬件設(shè)計兩部分。
傳感器節(jié)點需要實現(xiàn)采集監(jiān)測點數(shù)據(jù)和無線組網(wǎng)傳輸數(shù)據(jù)的功能。因此,硬件設(shè)計主要包含KW01Z128硬件最小系統(tǒng)、射頻天線前端電路及傳感器信息采集模塊。
(1) KW01Z128硬件最小系統(tǒng)。KW01Z128芯片集成了KL26Z128芯片與SX1231射頻收發(fā)器,兩者之間通過內(nèi)部SPI通信,本系統(tǒng)選擇KW01Z128芯片,既能滿足對主控器低功耗的需求,也能避免增加獨立射頻收發(fā)器的不便。KW01Z128芯片是一款基于ARM Cortex-M0+內(nèi)核的32位MCU,具有低功耗、高集成、擴展性強等特點,且芯片內(nèi)部集成射頻收發(fā)器,在WSN領(lǐng)域有廣泛使用。該MCU工作頻率高達48 MHz,擁有128 KB的Flash和16 KB的SRAM,提供UART、SPI、I2C等多種外設(shè)接口,擴展方便。其硬件最小系統(tǒng)如圖2所示。
圖2 KW01Z128硬件最小系統(tǒng)
(2) SX1231射頻天線前端電路。SX1231是一款Sub 1 GHz的超低功耗射頻收發(fā)控制器,具有出色的靈敏度和高選擇性,支持多種無線頻段,具有低功耗、低成本、高度集成、通信穩(wěn)定等特點,適用于諸如工業(yè)監(jiān)測、智能家居、智能城市等多種物聯(lián)網(wǎng)產(chǎn)品的研究與開發(fā)[12]。由于射頻收發(fā)器集成在KW01Z128內(nèi)部,所以該模塊電路部分囊括在KW01Z128最小硬件系統(tǒng)中,而射頻前端電路需要適配433 MHz的載波頻率,做出恰當?shù)淖杩蛊ヅ洳⒘舫鎏炀€接口。射頻前端電路如圖3所示。
圖3 SX1231射頻收發(fā)器天線前端電路
(3) 傳感器信息采集模塊。為獲取醫(yī)藥冷鏈關(guān)鍵狀態(tài)信息,可借助熱敏電阻、濕度傳感器、光敏電阻等傳感器對醫(yī)藥冷鏈的環(huán)境進行數(shù)據(jù)采樣。表1給出各傳感器型號、與主控芯片KW01Z128的通信方式、量程及分辨率和功能說明。
表1 傳感器采樣方式及功能說明
網(wǎng)關(guān)節(jié)點需要與獲取醫(yī)藥冷鏈信息的傳感器節(jié)點無線組網(wǎng),并將傳感器數(shù)據(jù)通過NB-IoT通信方式傳輸至服務(wù)器。因此,網(wǎng)關(guān)節(jié)點硬件設(shè)計包含KW01Z128硬件最小系統(tǒng)、射頻天線前端電路與ME3616硬件最小系統(tǒng)。其中KW01Z128硬件最小系統(tǒng)和射頻天線前端電路與傳感器節(jié)點一致,這里不再贅述。ME3616是一款支持NB-IoT通信標準的窄帶蜂窩物聯(lián)網(wǎng)通信模組,能夠提供最大66 Kbit/s上行速率和34 Kbit/s下行速率,支持UART接口,具有小尺寸、低功率、遠距離等優(yōu)點。ME3616通過UART與主控芯片KW01Z128相連,將處理后的傳感器數(shù)據(jù)遠程傳輸至服務(wù)器。其硬件最小系統(tǒng)如圖4所示。
圖4 ME3616硬件最小系統(tǒng)
系統(tǒng)軟件設(shè)計分為傳感器節(jié)點軟件設(shè)計、網(wǎng)關(guān)節(jié)點軟件設(shè)計、多傳感器數(shù)據(jù)融合三部分。
傳感器節(jié)點軟件主要功能需求為實現(xiàn)433 MHz頻段ZigBee通信和采集處理醫(yī)藥冷鏈傳感器數(shù)據(jù)。軟件采用模塊構(gòu)件化編程思想,將ZigBee通信功能相關(guān)函數(shù)封裝成ZigBee構(gòu)件,實現(xiàn)射頻收發(fā)器初始化、ZigBee協(xié)議封裝發(fā)送、ZigBee數(shù)據(jù)包接收解幀和重復(fù)振幀過濾等功能;將傳感器數(shù)據(jù)采集處理相關(guān)函數(shù)封裝成sensor構(gòu)件,實現(xiàn)傳感器初始化、傳感器數(shù)據(jù)采集和傳感器數(shù)據(jù)濾波處理等功能。在主函數(shù)中調(diào)用相應(yīng)功能函數(shù),最終實現(xiàn)傳感器節(jié)點軟件需求,程序流程如圖5所示。
圖5 傳感器節(jié)點軟件流程
傳感器節(jié)點上電后,主控芯片首先讀取存放在FALSH最后一個扇區(qū)的節(jié)點配置參數(shù),如射頻模塊硬件濾波地址、射頻模塊軟件地址和節(jié)點傳感器類型等,并使用讀取的參數(shù)初始化芯片外設(shè)及射頻收發(fā)器。進入主循環(huán)后,周期性采集多傳感器的醫(yī)藥冷鏈數(shù)據(jù),根據(jù)不同類型傳感器確定不同采集間隔,數(shù)據(jù)采集完成后,對數(shù)據(jù)進行異常數(shù)據(jù)濾波處理,最終對正常數(shù)據(jù)按傳感器類型進行均值化,最終確定各個傳感器數(shù)據(jù),并將傳感器數(shù)據(jù)封裝成ZigBee數(shù)據(jù)包通過射頻模塊發(fā)送。主循環(huán)正常進行的同時,若節(jié)點接收到ZigBee數(shù)據(jù)包,將進入射頻接收中斷,在本系統(tǒng)中表現(xiàn)為UART中斷,中斷內(nèi)完成數(shù)據(jù)包接收和解析,跳轉(zhuǎn)回主循環(huán)后,在循環(huán)中執(zhí)行數(shù)據(jù)包中命令對應(yīng)的操作。
網(wǎng)關(guān)節(jié)點軟件功能主要實現(xiàn)多傳感器數(shù)據(jù)匯總和ZigBee協(xié)議與NB-IoT技術(shù)的轉(zhuǎn)換。使用傳感器節(jié)點軟件已經(jīng)封裝的ZigBee構(gòu)件,并新增NB-IoT通信相關(guān)的uecom構(gòu)件,用于實現(xiàn)NB-IoT模塊初始化、NB-IoT連接、NB-IoT數(shù)據(jù)包收發(fā)等功能。在主函數(shù)中調(diào)用相應(yīng)功能函數(shù),最終實現(xiàn)網(wǎng)關(guān)節(jié)點軟件需求,程序流程如圖6所示。
圖6 網(wǎng)關(guān)節(jié)點軟件流程
網(wǎng)關(guān)節(jié)點上電后,讀取FLASH中節(jié)點配置、射頻模塊和NB-IoT通信模組相關(guān)參數(shù),并對芯片外設(shè)、射頻模塊和NB-IoT模塊進行初始化。接著進入主循環(huán),在主循環(huán)中不斷檢測是否觸發(fā)中斷,當節(jié)點接收到ZigBee數(shù)據(jù)包,在中斷中對數(shù)據(jù)包進行接收解析,并封裝成NB-IoT數(shù)據(jù)包。接著初始化NB-IoT模塊,建立TCP連接,發(fā)送NB-IoT數(shù)據(jù)包;如果數(shù)據(jù)發(fā)送失敗,則通信模組ME3616再次執(zhí)行初始化、連接基站、上傳數(shù)據(jù)操作,如果發(fā)送成功,則再次循環(huán)檢測是否觸發(fā)中斷。系統(tǒng)的這種“數(shù)據(jù)發(fā)送失敗重傳”機制,有利于保證數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
自適應(yīng)加權(quán)融合算法根據(jù)各傳感器歷史數(shù)據(jù)求出對應(yīng)方差,對歷史監(jiān)測數(shù)據(jù)的依賴度極大,一旦樣本量過大,極易使方差值變得僵化。分批估計理論對監(jiān)測數(shù)據(jù)進行分批處理,使得方差根據(jù)樣本的變化而改變,從而有效避免監(jiān)測數(shù)據(jù)誤差所導(dǎo)致的融合結(jié)果偏差,進而提高整個系統(tǒng)的容錯性和魯棒性。因此,本文結(jié)合分批估計理論,將多個傳感器多次采樣的結(jié)果進行自適應(yīng)加權(quán)平均融合處理。
將n個傳感器的所有數(shù)據(jù)按照時間段分為若干組,然后對每個傳感器各組內(nèi)的數(shù)據(jù)做分批處理,過程如下。
(2) 計算該時間段內(nèi)每個傳感器的最小平方誤差,表達式如下:
(1)
(3) 計算該時間段內(nèi)每個傳感器的融合值,表達式如下:
(2)
對傳感器數(shù)據(jù)進行分批處理后,然后進行自適應(yīng)加權(quán)平均融合,具體過程如下。
(3)
(2) 為達到數(shù)據(jù)融合的目標,得到總方差最小的融合值,即:
(4)
(5)
此時Wi為:
(6)
(4) 最終融合值為:
(7)
為測試基于分批估計的自適應(yīng)加權(quán)融合方法的置信度,本次實驗使用自適應(yīng)加權(quán)平均融合方法和基于Rough集理論的多傳感器數(shù)據(jù)融合方法進行數(shù)據(jù)融合置信度比較。溫度傳感器節(jié)點傳輸半徑為80 m,數(shù)據(jù)采集半徑為20 m,傳輸數(shù)據(jù)包的大小為500 bit/s,將10個溫度傳感器測得的溫度數(shù)據(jù)按時間段分為若干組,每組均為連續(xù)10個時間點的監(jiān)測數(shù)據(jù),測試三種融合方法的置信度,如圖7所示。
圖7 三種數(shù)據(jù)融合方法置信度對比
實驗結(jié)果表明,基于Rough集理論的多傳感器數(shù)據(jù)融合方法的融合置信度最高為0.801,自適應(yīng)加權(quán)平均融合方法的融合置信度最高為0.679,本文所使用的基于分批估計的自適應(yīng)加權(quán)融合方法的置信度最高為0.971。通過實驗對比結(jié)果可知,在多傳感器醫(yī)藥冷鏈監(jiān)測系統(tǒng)中,使用本文方法,融合置信度最高,融合效果更好。
用戶云服務(wù)器作為醫(yī)藥冷鏈終端和人機交互系統(tǒng)的通信橋梁,負責醫(yī)藥冷鏈數(shù)據(jù)的接收、存儲與處理。云服務(wù)器上的偵聽程序一方面?zhèn)陕牻K端發(fā)來的數(shù)據(jù),一旦偵聽到數(shù)據(jù),就把它接收下來,并存放到數(shù)據(jù)庫中;另一方面為人機交互系統(tǒng)中的各種客戶端程序提供數(shù)據(jù)訪問接口,并能夠反饋數(shù)據(jù)到終端,達到遠程控制醫(yī)藥冷鏈終端的目的。終端與用戶云服務(wù)器之間通過嵌入式應(yīng)用層驅(qū)動構(gòu)件uecom實現(xiàn)通信;終端與人機交互系統(tǒng)中客戶端程序之間的通信接口采用WebSocket協(xié)議方式,通過通信接口類HCICom實現(xiàn)通信。
在人機交互系統(tǒng)軟件方面,設(shè)計了客戶端程序、WEB網(wǎng)頁、微信小程序、Android App等,用來顯示醫(yī)藥冷鏈終端上傳的數(shù)據(jù)以及將數(shù)據(jù)回發(fā)給終端,以滿足不同用戶的需要。
為測試醫(yī)藥冷鏈系統(tǒng)整體通信性能,搭建1個網(wǎng)關(guān)、3個溫度傳感器節(jié)點、3個濕度傳感器節(jié)點和4個光照傳感器的自組網(wǎng),通過網(wǎng)關(guān)收集不同類型醫(yī)藥傳感器節(jié)點數(shù)據(jù),上傳至用戶云服務(wù)器,由運行在服務(wù)器端的偵聽程序接收統(tǒng)計數(shù)據(jù)包,檢驗網(wǎng)關(guān)從收集數(shù)據(jù)到上傳數(shù)據(jù)的丟包率。
在整個系統(tǒng)供電正常和NB-IoT基站信號良好的前提下,保證所有類型傳感器節(jié)點正常運行,通過網(wǎng)關(guān)連續(xù)收集10個不同類型傳感器節(jié)點的1 000個數(shù)據(jù)包,統(tǒng)計接收、丟失、錯誤數(shù)據(jù)包的數(shù)量;同時改變網(wǎng)關(guān)與不同類型傳感器節(jié)點的通信距離,測試網(wǎng)關(guān)收發(fā)數(shù)據(jù)的性能,測試結(jié)果如表2所示。
表2 網(wǎng)關(guān)整體通信丟包率和誤包率測試
從統(tǒng)計結(jié)果可以看出,該網(wǎng)關(guān)采用的“數(shù)據(jù)發(fā)送失敗重傳”機制效果明顯,測試結(jié)果良好,可實現(xiàn)預(yù)期設(shè)計目標。丟包率雖然隨著通信距離有一定的增長,但仍在可控范圍,通信穩(wěn)定性和可靠性完全可以滿足醫(yī)藥冷鏈監(jiān)測場景的需求。
為測試醫(yī)藥冷鏈監(jiān)測系統(tǒng)中多傳感器數(shù)據(jù)融合方法的有效性,選擇一般藥品作為實驗對象,其溫度儲存范圍是0℃~8℃。本次實驗為得到醫(yī)藥冷鏈的溫度融合信息,設(shè)置10個溫度傳感器,以獲取醫(yī)藥冷鏈10:00-12:00內(nèi)連續(xù)10個時間點的溫度監(jiān)測數(shù)據(jù),選擇其中一組數(shù)據(jù),如表3所示。
表3 10個溫度傳感器采樣數(shù)據(jù) 單位:℃
使用本文提出的多傳感器數(shù)據(jù)融合方法計算該時段內(nèi)10個溫度傳感器的最小平方誤差、融合值、最優(yōu)權(quán)值,如表4所示。最終可得該時段內(nèi)溫度融合值為:
表4 融合值最小平方誤差和最優(yōu)權(quán)值W
同理,可得到該時段內(nèi)醫(yī)藥冷鏈環(huán)境的濕度為65.912 145%RH,光線強度為357 lx。多傳感器數(shù)據(jù)融合結(jié)果與真實測量值之間的相對誤差如表5所示。
表5 多傳感器數(shù)據(jù)融合結(jié)果與相對誤差比較
由表4和表5可知,采用分批估計進行數(shù)據(jù)融合,得到的方差可根據(jù)監(jiān)測數(shù)據(jù)的變化而改變,由此避免數(shù)據(jù)量過大時產(chǎn)生方差值僵化。同時,采用本文所提出的多傳感器數(shù)據(jù)融合方法得到的數(shù)據(jù)更接近于測量值,且相對誤差小于自適應(yīng)加權(quán)平均融合方法與基于Rough集理論的多傳感器數(shù)據(jù)融合方法的融合結(jié)果,因此可保證醫(yī)藥冷鏈環(huán)境數(shù)據(jù)的精確性與準確性。
本文設(shè)計一套基于NB-IoT與WSN相結(jié)合的多傳感器醫(yī)藥冷鏈監(jiān)測系統(tǒng)。該系統(tǒng)以NB-IoT作為醫(yī)藥冷鏈終端與用戶云服務(wù)之間的通信方式,有效降低系統(tǒng)整體功耗;同時結(jié)合WSN技術(shù),利用本文提出的多傳感器數(shù)據(jù)融合方法,可以穩(wěn)定且準確地監(jiān)測醫(yī)藥冷鏈環(huán)境。測試結(jié)果表明,網(wǎng)關(guān)整體通信穩(wěn)定可靠,醫(yī)藥冷鏈監(jiān)測數(shù)據(jù)穩(wěn)定精準,對醫(yī)藥冷鏈監(jiān)測系統(tǒng)的實際應(yīng)用具有重要價值。