◆盧佳佳 王錦毅
行業(yè)與應用安全
基于NB-IOT冷鏈車聯(lián)網(wǎng)的調(diào)度實現(xiàn)與優(yōu)化
◆盧佳佳1王錦毅2
(1.福州理工學院 福建 3505062;2.福建師范大學協(xié)和學院 福建 350117)
本課題主要介紹安卓客戶端與云平臺之間數(shù)據(jù)互控過程,發(fā)送過程中使用自定義車載終端協(xié)議,實現(xiàn)車載信息的環(huán)境溫度上報及車載實時位置上報。安卓前端,通過界面設計、協(xié)議棧設計實現(xiàn)對云平臺的SSL雙向安全訪問的同時與云平臺通過HTTP GET或POST實現(xiàn)數(shù)據(jù)互控,獲取硬件發(fā)送到云平臺的溫、濕度信息及其GPS地理位置信息,從而實現(xiàn)監(jiān)控數(shù)據(jù)的遠程集中控制與管理,同時采用K-Means聚類算法對車輛位置進行調(diào)優(yōu),經(jīng)測試可以很好改良物流車輛聚集分布的問題。
云平臺;窄帶物聯(lián)網(wǎng);北向開發(fā);K-Means聚類
冷鏈車作為冷鏈物流中最重要的裝置之一,保障冷凍類食品在運輸過程中持續(xù)穩(wěn)定的低溫環(huán)境,讓食品在生產(chǎn)、存儲、運輸、銷售過程中不受環(huán)境溫度升高影響,保證食品質(zhì)量,減少食品損耗。在冷藏運輸過程中,溫度波動是引起貨物品質(zhì)下降的主要原因之一,所以運輸工具應具有良好性能,在保持規(guī)定低溫的同時,更要保持溫度的穩(wěn)定。因此,加強冷鏈車運輸過程中的監(jiān)控與管理尤為重要。
本文主要利用Android Studio開發(fā)平臺設計出一款冷鏈物流安卓客戶程序,通過STM32主控芯片控制傳感器監(jiān)控冷鏈車溫濕度,并搭配GPS獲取車輛位置信息。硬件設備與華為云平臺之間通過AT指令互發(fā)控制數(shù)據(jù)。通過NB-IOT通信通道與基站之間傳遞數(shù)據(jù)并最終發(fā)往華為OceanConnect云平臺?!鞍沧壳岸恕眲t通過北向通道與云平臺之間進行數(shù)據(jù)交互,通過JSON格式進行數(shù)據(jù)封裝及解析,并展示于管理平臺前端。
Nb-Iot技術可滿足對低功耗、長待機、深覆蓋、大容量有所要求的低速率業(yè)務,適合于時延敏感低、實時傳輸數(shù)據(jù)的業(yè)務場景。Nb-Iot技術數(shù)據(jù)速度為65kpbs,頻帶寬度200kHz,下行速率為160kbps~250kbps。僅采用23dBm的發(fā)射功率,比2G/3G/4G有50~100倍的上行容量提升,單個基站小區(qū)可支持5萬個NB終端接入。另外Nb-Iot采用重傳機制保證了數(shù)據(jù)的可靠性[2]。
NB模組進行數(shù)據(jù)傳輸時中,運輸層協(xié)議使用UDP協(xié)議,我們在應用層使用COAP+LWM2M協(xié)議,保證了數(shù)據(jù)傳輸?shù)目煽啃?。COAP協(xié)議包含4種消息類型:需要被確認的CON消息請求,不需要被確認的NON消息請求,ACK消息用于對CON消息的應答及其RST復位消息,當出現(xiàn)收不到數(shù)據(jù)顯示出超時需要重傳時發(fā)送。LWM2M協(xié)議則可以在可靠傳輸?shù)幕A上將數(shù)據(jù)按照規(guī)范格式組織并發(fā)送到服務器[7]。
華為云平臺支持用戶使用移植有開源物聯(lián)網(wǎng)Huawei LiteOS操作系統(tǒng)的STM32開發(fā)板,通過有線和無線連接,如NB-IOT/5G和AgenLite網(wǎng)絡如物聯(lián)網(wǎng)關、智慧家庭網(wǎng)關等方式接入網(wǎng)絡, 最后信息匯聚到統(tǒng)一開放的物聯(lián)網(wǎng)平臺OceanConnect。OceanConnect是一個統(tǒng)一的物聯(lián)網(wǎng)開放平臺,平臺包含數(shù)據(jù)管理、設備管理和運營管理等部分。設備可以采用LWM2M(Coap)、AgenLite接入方式、MQTT接入方式接入平臺[8]。
OceanConnect內(nèi)可以分成連接管理和應用使能兩層,前者是無線連接、智慧家庭網(wǎng)關及行業(yè)網(wǎng)關背后共同的平臺,為下層連接,上層應用提供支持。后者則為豐富應用程序功能的實現(xiàn)提供能力支持。
華為云平臺創(chuàng)建項目,并通過自定義產(chǎn)品的方法,選擇CoAP的二進制碼流,作為產(chǎn)品協(xié)議類型。同時根據(jù)實際需求填寫“廠商名稱ID”、“設備型號類型”等數(shù)據(jù)。屬性添加完成之后,添加字段上報字段名稱,使用虛擬設備模擬“數(shù)據(jù)上報”、“命令下發(fā)”過程。
建立的Profile屬性與命令、消息之間的映射,并自動生成插件包,同時綁定設備IMEI碼。創(chuàng)建設備后,可以檢測到設備連接上線。
安卓客戶使用Https Get或Post 網(wǎng)絡請求申請對物聯(lián)網(wǎng)平臺的安全訪問,接口API需要提供Token令牌及其APPID。在登錄訪問API實現(xiàn)中,服務器端和客戶端采用SSL雙向認證機制。常見的SSL驗證較多的只是提供單向認證,即客戶端驗證服務器是否是真實正確。本系統(tǒng)采用的是SSL雙向驗證,除了客戶端驗證服務器,服務器也會驗證客戶端。物聯(lián)網(wǎng)云平臺為每個設備頒發(fā)唯一的證書,從而保證只有擁有證書的設備才能允許接入到云平臺。
為了實現(xiàn)消息認證。服務器端和客戶端都需要:KeyStore和Trust KeyStore。其中KeyStore保存服務端的私鑰,Trust KeyStore保存客戶端的授權證書。需要的步驟包括:(1)生成服務端私鑰,并且導入到服務端KeyStore文件中;(2)根據(jù)私鑰,導出服務端證書(3)將服務端證書,導入到客戶端的Trust KeyStore中。采用同樣的方法,生成客戶端的私鑰及其證書,導入到服務端的Trust KeyStore中。最后通過服務器與客戶端之間的Socket通信互相認證并實現(xiàn)訪問。
鑒權是調(diào)用其他API的前提,北向接口除了鑒權接口,其他API接口都需要在Request Header中攜帶AppID和Token,AppID為用戶申請賬戶時的唯一標識符,而每次調(diào)用API接口都會獲取到不同的Token。表示獲取數(shù)據(jù)操作的權限。首先通過Token認證登錄身份,在調(diào)用API的時候?qū)oken加到請求消息頭,獲得操作API的權限。
查詢單個設備API信息參數(shù)為AppId及其DeviceId值,其中DeviceId值為硬件設備唯一標識。通過Get方法調(diào)用會返回設備JSON格式的信息。通過此JSON格式信息,可以解析出設備的當前溫濕度值,及其GPS檢測到的經(jīng)度緯度信息。由于安卓App需要查詢批量的車輛信息,一次性可以獲取城市中所有冷鏈車聯(lián)網(wǎng)信息,則只需要給出Appid值作為參數(shù)進而獲取JSON格式的返回值。若獲取到的是JSON對象,則需要從JSON對象中取出鍵值對的值,若值域的體現(xiàn)是數(shù)組形式,則需要在JSON數(shù)組中,通過名稱取出值。最終轉為前端所需要的形式展示[9]。其中主要查詢的信息包括溫濕度及其GPS位置信息
百度地圖SDK擁有成熟的物流地圖能力,可以支撐本系統(tǒng)實現(xiàn)物流下單、分單、干線運輸規(guī)劃、軌跡管理等多類核心業(yè)務場景。在運輸過程中需要通過跟蹤位置信息獲取運輸最佳路徑及其調(diào)配運輸車輛。本項目主要依托接口實現(xiàn)物流車輛軌跡管理、派送軌跡管理、物流車輛路線規(guī)劃、智能調(diào)度規(guī)劃等功能。
在課題開發(fā)中,通過獲取到的經(jīng)度緯度信息調(diào)用百度地圖SDK從而進行前端展示。注冊和獲取密鑰后,在AndroidManifest中添加開發(fā)密鑰及權限。在布局Xml文件中添加地圖控件,使用可視化插件MapV,實現(xiàn)海量地理數(shù)據(jù)渲染展示,從而實現(xiàn)在APP界面上實現(xiàn)對百度地圖SDK的應用。圖1為通過傳感器將車輛位置信息顯示到百度地圖效果展示。
圖1 百度地圖效果
同時,運營分析場景中,管理員往往需要展示取、寄貨物地址的分布情況以及運輸軌跡,并進行相應的業(yè)務分析,進而實現(xiàn)業(yè)務分析科學決策[15]。
我們從后臺拉取所有聯(lián)網(wǎng)車輛的位置信息,使用K-Mean聚類算法,經(jīng)過多次迭代后,會將車輛按照區(qū)域進行聚類處理。若無法聚類則表明車輛的分布情況良好,若出現(xiàn)明顯聚類,則表明車輛處理不良分布狀態(tài)。
K-Means算法會將給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個簇。讓“簇內(nèi)”的點盡量緊密的連在一起,讓“簇間”的距離盡量地大。
我們使用如果用數(shù)據(jù)表達式表示,假設簇劃分為(C1,C2,...Ck),則我們的目標是最小化平方誤差E[16]:
其中μ是簇Ci的均值向量,有時也稱為質(zhì)心,表達式為:
由于本項目只需要實現(xiàn)到簡單的稀疏及密集的分類,我們假設k=2。我們隨機選擇了兩個k類所對應的類別質(zhì)心,然后分別求,所有車輛的位置點到這兩個質(zhì)心的距離,并將所有車輛距離這兩個點哪個最近進行標注及分類,結果多次迭代可以得到車輛的分類情況。如分析結果收斂速度慢,大于設定的閾值則認為聚類效果不佳,并無法很好實現(xiàn)聚類,此時可以認定車輛的分布處于比較好的狀況。車輛聚類收斂速度快,小于閾值則表明聚類效果好,車輛分布不佳。
傳統(tǒng)的冷鏈車運輸由于缺乏有效的管控平臺支撐導致車輛調(diào)動管理差、運輸效率低下等問題,本設計采用基于NB-IOT的窄帶物聯(lián)網(wǎng)傳輸通道,將車輛位置信息及其溫、濕度信息發(fā)送至云平臺,并很好實現(xiàn)前端展示及后端管控功能,同時使用K—Mean聚類算法輔助對車輛的位置信息進行分析與調(diào)優(yōu),通過聚類收斂閾值的設定判斷車輛位置分布是否處于較合理狀態(tài),此方法可以很好解決物流車輛調(diào)度不良的問題。
[1]劉博偉. 物聯(lián)網(wǎng)設備發(fā)現(xiàn)與管理技術研究與應用[D].南京郵電大學,2018.
[2]江林華.5G物聯(lián)網(wǎng)及NB-IoT技術詳解[M].北京:電子工業(yè)出版社,2018:179-193.
[3]王劍秋,趙一.物聯(lián)網(wǎng)傳輸協(xié)議MQTT與CoAP比較與應用[J].計算機時代,2017(10):25-28+31.
[4]黃海峰.解讀華為IoT平臺以開放構建生態(tài)使能行業(yè)革新[J].通信世界,2017(21).
[5]張雪. 基于物聯(lián)網(wǎng)業(yè)務平臺的設備管理方法研究與實現(xiàn)[D].北京郵電大學,2015.
[6].解運洲.NB-IoT技術詳解與行業(yè)應用[M].科學出版社.
[7]湯春明,張熒,吳宇平.無線物聯(lián)網(wǎng)中CoAP協(xié)議的研究與實現(xiàn)[J].現(xiàn)代電子技術,2013,36(01):40-44.
[8]王龑,蔡學軍,張修勇,駱璐.物聯(lián)網(wǎng)中的設備管理技術[J].物聯(lián)網(wǎng)技術,2013,3(12):78-80+83.
[9]徐凱.IoT開發(fā)實戰(zhàn):CoAP卷[M].北京:機械工業(yè)出版社.
[10]CoAP:An Application Protocol for Billions of Tiny Internet Nodes[J] . Bormann, Carsten,Castellani,Angelo P,Shelby,Zach.EN . 2012 (2)
[11]張康. 基于CoAP協(xié)議的數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)[D].內(nèi)蒙古科技大學,2015.
[12]楊榮悅,張鵬洲,宋卿.基于5G技術的智能車聯(lián)網(wǎng)研究與展望[J].電信科學,2020,36(05):106-114.
[13]劉東山.NB-IoT物聯(lián)網(wǎng)的CoAP協(xié)議及實際部署應用[J].信息通信,2019(07):236-237.
[14]Satvik Vats,B. B. Sagar. Performance evaluation of K-means clustering on Hadoop infrastructure[J]. Journal of Discrete Mathematical Sciences and Cryptography,2019,22(8).
[15]孫領,東亞,劉偉,楊冠云.自駕游交通路線仿真分析[J].系統(tǒng)仿真學報,2019,31(03):429-437.