孫彥景,馮甜欣,李 松,陳 巖,蘆楠楠,云 霄,刑天琳
(中國礦業大學 信息與控制工程學院,江蘇 徐州 221116)
在移動互聯網、物聯網等技術迅速發展的背景下,萬物互連已成為時代發展的必然趨勢[1-2]。物聯網應用涉及嵌入式系統開發、計算機網絡、無線通信、云計算等多種專業知識,具有很強的綜合性與系統性。窄帶物聯網(narrow band internet of things,NB-IoT)作為一種新興的物聯網技術[3-4],具有強連接、廣覆蓋、低功耗、低成本等特點,在感知監測場景中具有巨大優勢[5-6]。本文基于NB-IoT、嵌入式系統、網絡傳輸、數據庫處理及數據可視化等技術,設計了一個低速率監測物聯網應用實驗系統[7-9]。系統包括數據采集節點、云端數據庫、顯示終端等模塊以及負責各模塊間數據交互的控制程序,能夠實時感知環境數據,并進行上傳、推送、存儲,通過終端在線顯示。該實驗系統有助于通過實驗環節幫助學生快速理解物聯網的框架結構,增強學生理解所學專業課程之間的關聯性,并培養電子信息類學生面向實際場景進行物聯網應用系統開發的能力。
根據監測物聯網應用的場景需求,對系統結構進行分析后,確定了系統的硬件結構和軟件組成。將實驗系統根據功能劃分為以下部分:具有感知功能的傳感器設備,定位標記的定位模塊,接入NB-IoT 網絡的NB-IoT 模組,控制數據上傳的MCU 和控制程序,接收數據的云端服務器,顯示監測結果的數據可視化顯示程序。實驗系統具體數據傳遞流程如下:首先通過NB-IoT 模組接入NB-IoT 網絡,數據采集節點感知環境數據后,由控制程序將數據上傳至云端服務器,并通過終端程序將結果展示給用戶。圖1 為設計的實驗系統框架。
NB-IoT 是一種新興的物聯網標準。NB-IoT 構建于蜂窩網絡,帶寬消耗約180 kHz,可直接在現有的2/3/4G 網絡上實現網絡復用,降低部署成本。NB-IoT屬于低功耗廣域網(low power wide area net,LPWAN),具有以下特點:一是更強的覆蓋能力,與傳統的GPRS 網絡相比,NB-IoT 可以提高100 倍的網絡覆蓋能力;二是更強的連接能力,NB-IoT 對網絡架構進行優化,單個扇區可以達到十萬級的設備連接能力;三是更低的功耗,NB-IoT 終端最高可以維持10a的正常通信周期,顯著的降低了設備的部署頻率;四是更低的模塊成本,目前單個連接模塊的成本已低于5 美元。基于以上優勢,NB-IoT 非常適合未來大規模覆蓋的物聯網場景[10-11]。
物聯網應用的實際場景中通常需要部署大量節點,為了方便地對這些節點進行管理,需要將物理設備映射到云端,通常為物聯網云平臺。由于NB-IoT網絡基于LTE 網絡升級,其映射關系通過NB-IoT 模組嵌入的SIM 物聯卡所承載。本實驗選用的物聯網云平臺為中國移動ONENET 平臺,ONENET 是一種PaaS物聯網開放平臺,提供了多種協議接入的API,可以為物聯網硬件提供從設備接入到產品部署的開發環境[12]。
對面向監測物聯網應用的電子信息系統而言,系統的硬件結構決定了軟件的開發效率,軟件的合理部署有助于充分發揮硬件的功能。本實驗通過硬件平臺搭建與軟件結構分析,鍛煉學生系統分析與設計的能力,幫助學生理解物聯網應用的框架結構以及開發流程。
基于實驗的通用性與可擴展性,實驗系統的硬件主要包括MCU 主控模塊、NB-IoT 模組、傳感模塊和定位模塊等。
(1)主控模塊負責整體硬件設備的運行流程,包括設備上線控制、數據自動采集、數據交互邏輯等,本文采用STM32 作為微處理器,STM32 功能強大且具有豐富的接口,方便進行擴展。
(2)NB-IoT 模組用于接入NB-IoT 網絡,同時將數據上傳至云平臺,實驗中選用SIM7000C 模組,并通過串口模塊與STM32 相連,進行數據交互。
(3)傳感模塊負責感知監測環境數據,選擇常用的溫濕度傳感器,通過STM32 驅動控制程序進行數據采集。
(4)定位模塊選擇GPS 模塊,通過NB-IoT 模組進行終端節點定位。
系統硬件模塊結構如圖2 所示。

圖2 系統硬件模塊結構圖
為了提高學生的邏輯思維能力,根據圖1 的軟件結構,將實驗系統分為3 個層次,自下而上分別是設備域、平臺域、應用域。
設備域主要為系統的硬件模塊,以及用于控制硬件運行的數據采集上傳程序;平臺域為云端服務器,以及將數據轉存到私有數據庫的數據推送程序;應用域為終端顯示設備,以及用于人機交互的可視化顯示程序。
圖3 展示了系統的軟件結構,下面分別給出每層的軟件程序設計,方便學生根據模塊進行實驗程序編寫與完善。
3.2.1 數據采集上傳程序
數據采集上傳程序控制傳感設備感知環境數據,同時控制NB-IoT 模組接入網絡后將數據上傳至云端數據庫。
圖4 展示了數據采集上傳程序的工作流程。首先STM32 通過GPIO 接口驅動溫濕度傳感器采集數據,并通過串口模塊與NB-IoT 模組完成數據交互,之后模組將數據封裝到指定字段,通過notify 上傳指令發送給基站,完成數據上報。

圖3 系統軟件結構

圖4 數據采集上傳程序工作流程
模組通過創建對象來區分不同種類的傳感設備,通過添加屬性對數據的特征值進行管理。圖5 為模組注冊成功后設備管理界面。圖6 為云平臺接收到上傳數據時的界面。

圖5 設備管理界面

圖6 數據上傳界面
3.2.2 數據推送程序
數據推送程序將上傳的數據轉存到本地私有數據庫,以供顯示終端使用。
數據推送程序通過HTTP 協議實現,首先云平臺向私有數據庫發送HTTP GET,請求進行token 驗證,驗證一致后,返回msg 的值,表示連接成功;之后云平臺通過HTTP POST 請求向私有數據庫的URL 地址推送上傳的數據。圖7 為數據推送程序的實現流程。

圖7 數據傳輸流程
數據推送的數據格式為json 字符串,置于HTTP請求的body 部分。各字段定義見表1,type 為數據類型;dev_id 為設備ID,作為設備的唯一標識;ds_id是數據流ID,對應一個傳感器對象;value 為設備上傳或觸發的數據;at 為平臺時間戳,單位ms。

表1 數據推送json 字符串格式
3.2.3 數據可視化顯示程序
數據可視化顯示程序通過動態的圖表顯示監測的數據,針對感知監測的場景需求,實現的功能有顯示檢測節點位置并進行標注、動態更新實時數據、顯示歷史數據以及異常警告等。
實驗采用WEB 應用程序進行數據的可視化顯示,使用HTML 作為WEB 程序的編程語言,可以通過擴展控件滿足功能設計差異化的需求。本文通過Ajax技術動態獲取后臺數據,調用百度地圖API 進行位置標記,通過ECharts 圖表進行數據的可視化顯示[13]。
圖8 為實驗設計的一個數據采集節點。

圖8 監測節點
圖9 為顯示采集數據的可視化感知監測管理終端。其中第Ⅰ部分為節點定位標記界面,能夠對數據采集節點的位置信息進行標記,點擊后能夠顯示經度、緯度、海拔等詳細信息;第Ⅱ部分為歷史數據展示界面,通過雙Y軸動態顯示歷史的溫度和相對濕度數據,實現監測功能;第Ⅲ部分為實時溫度顯示界面;第Ⅳ部分為相對濕度顯示界面,能夠通過儀表盤動態更新實時數據。

圖9 NB-IoT 感知監測管理終端
系統還實現了異常數據警告功能,當監測的數據觸發設置的閾值時,節點會進行彈窗提醒。圖10 為異常數據的警告界面。經實驗測試,系統運行穩定。

圖10 異常數據警告界面
為了啟發學生通過所學知識來解決遇到的實際工程應用問題,本文綜合電子信息類專業多門課程知識,面向感知監測物聯網場景,設計并實現了一個基于NB-IoT 的低速率監測物聯網應用實驗系統,實現了節點位置標記顯示、動態更新歷史數據、顯示實時數據及異常數據警告等功能。通過硬件平臺搭建和軟件結構分析,不僅能夠鍛煉學生的系統分析能力和設計能力,培養學生工程素養,同時還將理論與實踐相結合,增強學生理解電子信息工程專業課程間的關聯知識體系。