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