李文趨 高大利 劉赟 陳玉思
(泉州師范學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 福建省泉州市 362000)
物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的設(shè)計(jì)是物聯(lián)網(wǎng)技術(shù)落地應(yīng)用的一個(gè)重要內(nèi)容,物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的數(shù)據(jù)傳輸方式可以分為有線傳輸和無(wú)線傳輸,其中無(wú)線傳輸方式常用的技術(shù)方案有:Wi‐Fi、ZigBee、藍(lán)牙等,這些技術(shù)都是短距離通信技術(shù),當(dāng)需要長(zhǎng)距離通信時(shí),現(xiàn)有的無(wú)線通信技術(shù)中LORA[1]和NB‐IOT[2]技術(shù)是兩種常用的選擇方案,NB‐IOT 有賴于移動(dòng)運(yùn)營(yíng)商的網(wǎng)絡(luò),如果用戶想要保持?jǐn)?shù)據(jù)通信的獨(dú)立性,LORA 技術(shù)就是一種較好的選擇。
典型的基于LORA 的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)是通過(guò)LORA 終端向LORA 基站發(fā)送數(shù)據(jù),再由LORA 基站通過(guò)網(wǎng)關(guān)將數(shù)據(jù)上云[3][4],本文設(shè)計(jì)的應(yīng)用系統(tǒng)采用LORA 終端點(diǎn)對(duì)點(diǎn)通信方式,在擔(dān)任匯聚節(jié)點(diǎn)的終端中添加Wi‐Fi 通信模塊,通過(guò)Wi‐Fi 模塊完成數(shù)據(jù)的上云工作,這樣做成本更低,部署更簡(jiǎn)單。我們?cè)偻ㄟ^(guò)設(shè)計(jì)自己的服務(wù)器平臺(tái)通過(guò)云平臺(tái)的API 接口獲取監(jiān)測(cè)數(shù)據(jù),系統(tǒng)架構(gòu)圖1所示。
圖1:系統(tǒng)總體結(jié)構(gòu)圖
終端節(jié)點(diǎn)由MCU、傳感器單元、電源模塊、LORA 通信模塊、SWD 調(diào)試模塊等構(gòu)成,MCU 采用STM32F103 系列的芯片,該芯片應(yīng)用廣泛,成本較低。LoRa 通信單元主要采用 Semtech 公司的SX1278 射頻芯片實(shí)現(xiàn) LoRa 數(shù)據(jù)的傳輸。整體構(gòu)造如圖2所示。
圖2:終端節(jié)點(diǎn)硬件結(jié)構(gòu)圖
LORA 匯聚節(jié)點(diǎn)擔(dān)負(fù)收集傳感數(shù)據(jù)和將數(shù)據(jù)上傳到云端的功能,在硬件結(jié)構(gòu)上比終端節(jié)點(diǎn)多了一個(gè)WIFI 模塊(或者4G 模塊),其他結(jié)構(gòu)和終端節(jié)點(diǎn)一樣,這里不在贅述。
軟件系統(tǒng)包括:終端節(jié)點(diǎn)軟件和匯聚節(jié)點(diǎn)軟件,匯聚節(jié)點(diǎn)通過(guò)通訊模塊連接到云平臺(tái)(機(jī)智云物聯(lián)網(wǎng)云平臺(tái)[5]),依賴云平臺(tái)快速開發(fā)出系統(tǒng)的WEB 應(yīng)用端。
終端節(jié)點(diǎn)采集傳感器數(shù)據(jù),并將采集的數(shù)據(jù)通過(guò)點(diǎn)對(duì)點(diǎn)的方式發(fā)送到匯聚節(jié)點(diǎn),在終端節(jié)點(diǎn)發(fā)送給匯聚節(jié)點(diǎn)的數(shù)據(jù)報(bào)文中包含終端節(jié)點(diǎn)的編號(hào)、傳感器類型等信息。匯聚節(jié)點(diǎn)在接收到終端節(jié)點(diǎn)發(fā)送的報(bào)文后,檢查報(bào)文中的節(jié)點(diǎn)編號(hào)、傳感器類型等信息分別通過(guò)通信模塊上報(bào)的物聯(lián)網(wǎng)云平臺(tái)。終端節(jié)點(diǎn)和匯聚節(jié)點(diǎn)的軟件流程圖如圖3、圖4。
圖3:終端節(jié)點(diǎn)程序流程圖
圖4:匯聚節(jié)點(diǎn)程序流程圖
由于所有的終端節(jié)點(diǎn)和匯聚節(jié)點(diǎn)都是采用點(diǎn)對(duì)點(diǎn)通信,因此必須設(shè)計(jì)一套終端節(jié)點(diǎn)和匯聚節(jié)點(diǎn)之間的通信協(xié)議,以便匯聚節(jié)點(diǎn)能夠識(shí)別各個(gè)終端節(jié)點(diǎn)發(fā)送的數(shù)據(jù)。我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的協(xié)議格式。該協(xié)議的數(shù)據(jù)格式如表1。
表1:協(xié)議的數(shù)據(jù)格式
為了提高數(shù)據(jù)通信的可靠性,2 個(gè)字節(jié)的地址編碼我們只采用了如表2 的地址。
即除了匯聚節(jié)點(diǎn)外,每個(gè)終端節(jié)點(diǎn)的地址編碼只能是2n,可以容納16 個(gè)終端節(jié)點(diǎn),通過(guò)冗余便于節(jié)點(diǎn)檢查地址編碼傳輸是否出錯(cuò)。這樣做的代價(jià)較大,可以通過(guò)實(shí)際部署環(huán)境的實(shí)際通信狀況修改地址編碼的方法,提高通信的效率。傳感器類型的編碼可以參考地址編碼的方法,這樣就可以部署8 種不同類型的傳感器,如果需要部署的傳感器類型超過(guò)8 個(gè),可以根據(jù)實(shí)際的通信狀況改變傳感器類型編碼方法或者增加傳感器類型字段的長(zhǎng)度。數(shù)據(jù)校驗(yàn)碼我們采用數(shù)據(jù)+數(shù)據(jù)字段長(zhǎng)度的算術(shù)和。在系統(tǒng)的部署測(cè)試中,我們?cè)O(shè)計(jì)的這套簡(jiǎn)單通信協(xié)議能夠支持系統(tǒng)的穩(wěn)定運(yùn)行。
我們將設(shè)備接入了機(jī)智云,基于機(jī)智云的Open API 接口,我們?cè)O(shè)計(jì)了系統(tǒng)的服務(wù)器平臺(tái)。我們的服務(wù)器平臺(tái)基于Springboot[6]設(shè)計(jì),平臺(tái)模塊包括:用戶管理模塊、設(shè)備管理模塊、數(shù)據(jù)呈現(xiàn)模塊。該平臺(tái)的功能可以繼續(xù)擴(kuò)展。
(1)用戶管理模塊在本服務(wù)器上實(shí)現(xiàn)用戶的注冊(cè)、登錄、修改、刪除等功能,使用shiro 框架進(jìn)行權(quán)限管理,通過(guò)調(diào)用機(jī)智云的用戶管理API 完成機(jī)智云用戶的創(chuàng)建、登錄等功能。
(2)設(shè)備管理模塊通過(guò)調(diào)用機(jī)智云的綁定管理API 實(shí)現(xiàn)設(shè)備的綁定、解綁等功能。
(3)數(shù)據(jù)呈現(xiàn)模塊設(shè)置了定時(shí)任務(wù),定時(shí)任務(wù)會(huì)定時(shí)從機(jī)智云獲取設(shè)備的狀態(tài)、傳感器數(shù)據(jù)等信息保存到本地?cái)?shù)據(jù)庫(kù),并通過(guò)Echarts 可視化庫(kù)將數(shù)據(jù)呈現(xiàn)在Web 端。
LORA 基站目前的價(jià)格普遍在幾百元至上千元之間,本研究采用LORA 匯聚節(jié)點(diǎn)匹配相應(yīng)的軟件設(shè)計(jì)替代LORA 基站實(shí)現(xiàn)遠(yuǎn)距離無(wú)線通信,在監(jiān)測(cè)節(jié)點(diǎn)數(shù)量較少(10 個(gè)以下)的應(yīng)用中可以顯著減少硬件成本,是一種經(jīng)濟(jì)實(shí)用的LORA 應(yīng)用方案。