佘星星,紀超凡,李 星,李迎康,劉晴晴
(安徽信息工程學院 計算機與軟件工程學院,安徽 蕪湖 241000)
隨著互聯網和移動通信技術的發展壯大,人與人、人與虛擬世界的聯系日益密切。智能手機的應用更是讓互聯網在真正意義上得到了普及。據中國互聯網絡信息中心(China Internet Network Information Center,CNNIC)發布的第44次《中國互聯網絡發展狀況統計報告》顯示,截止2019年6月份,我國的網民更是創歷史新高,已經達到8.54×108人[1]。這些信息預示著互聯網即將進入下一個階段,即物聯網時代。物聯網就是將物理世界數字化,將虛擬和現實連接起來,實現物與人以及物與物連接[2]。而在此背后是大量設備與傳感器的在線化操作,如城市共享單車服務等[3,4]。物聯網中大量的數據是由設備產生的,這是物聯網與傳統互聯網之間最大的區別,但是這些設備可以24 h時刻在線不間斷工作,并提供隨時的服務[5,6]。
物聯網全流程全生命周期開發對后臺編寫、前端展示以及通信協議等計算機專業知識的掌握要求嚴格,本文設計了一種免除單片機底層開發,通過可視化配置交互單片機的智能物聯網設備應用系統,其具有部署速度快、編程可視化以及開發門檻低的特點[7,8]。該系統完成了從物聯網平臺對物聯網模塊引腳的控制與信息讀取,使用帶有csrf安全認證機制的框架為后臺,通過物聯網模塊刷入開發的固件,能通過TCP和HTTP(s)兩種方式進行通信,并根據用戶在平臺的設定進行訂閱推送,完成對設備引腳信號的控制與讀取[9]。使用Redis來存儲設備實時傳送的信息,使用MySQL存儲業務數據,GraphQl進行前端接口交互,此外還使用了Layui和Vue.js等新興技術的前端框架[10]。
本系統的體系結構分為3層,且有3個子系統。其中,3層結構為基礎感應控制層、網絡數據傳輸層以及遠程操作應用層,3個子系統為物聯網模塊端、智能物聯網設備處理系統以及可視化物聯網事件設定系統。
基礎感應控制層是最底層,主要采集用戶在系統上定義的指定針腳參數,并將這些參數規范成json格式,使其攜帶身份標識后發送給服務器。網絡數據傳輸層主要依靠TCP和HTTP等將物聯網模塊的信息發送至服務器,同時服務器響應操作將數據傳輸給物聯網模塊。在遠程操作應用層中,用戶可以定義針腳功能,設置操作邏輯,觀測數據等。物聯網模塊端主要負責采集信息上傳到服務器和執行服務器下發的指令。智能物聯網設備處理系統主要負責根據用戶設定的邏輯對物聯網模塊的數據進行邏輯運算后返回下發指令。可視化物聯網事件設定系統通過可視化的頁面,使用戶完成物聯網模塊綁定、引腳功能名稱設定、事件邏輯設定以及物聯網模塊狀態的可視化查看。
本系統通過借鑒MQTT實現方案并結合真實需要后做出以下兩套方案。方案一系統架構(基于TCP長連接)如圖1所示。

圖1 基于TCP長連接
當網絡通信采用TCP長連接時,在真正的讀寫操作之前,server與client之間必須建立一個連接,當讀寫操作完成后,雙方不再需要這個連接時可以將其釋放。長連接可以省去較多的TCP建立和關閉的操作,減少浪費,節約時間,適合頻繁請求資源的客戶端使用。
方案二系統架構(基于HTTP輕型開發解決方案)如圖2所示。

圖2 基于HTTP輕型開發解決方案
HTTP輕型開發客戶端和服務器每進行一次HTTP操作,就建立一次連接,任務結束就中斷連接。短連接對于服務器來說管理較為簡單,存在的連接都是有用的,不需要額外的控制手段。但如果客戶請求頻繁,那么將在TCP的建立和關閉操作上浪費較多時間和帶寬。
系統流程設計如下,用戶通過系統注冊擁有賬號,登錄賬號進入系統,在系統添加相應的事件,從而觸發相應的設備行為,也可以對相應事件進行修改或者在原本的事件上再添加行為。添加在系統上的設備可以通過系統的“設備管理”模塊進行相應管理,包括添加設備、重命名設備以及刪除設備等。通過系統“設置”模塊可以修改用戶名、修改用戶密碼以及重置密碼等。
實現原理為用戶將邏輯判斷事件儲存在數據庫后,服務器會收到用戶開發板的傳感器參數,然后將參數與用戶設定的邏輯判斷進行邏輯對比,產生操作結果,然后將操作結果返回至開發板,開發板執行操作,完成設定的事件流程。
系統登錄模塊中用戶使用注冊好的賬號登錄到系統中,此過程需要驗證碼驗證。綁定物聯網模塊中用戶通過輸入物聯網模塊的編號和名稱進行綁定操作,綁定完成后會在列表中顯示出已綁定的物聯網模塊。設置引腳功能是在用戶選擇綁定的物聯網模塊后,可以對引腳的功能、類型以及名稱進行設定。在完成物聯網模塊綁定和針腳設定后,設置物聯網模塊即可在此頁面設置事件邏輯的判斷標準,點擊保存后,用戶的物聯網模塊將會按照設定的邏輯條件進行相應的動作。操作用戶手機控制界面中用戶可以在移動設備上直接操作物聯網模塊。當傳感器的值符合用戶的警報邏輯時,基于用戶設定的報警功能平臺將會通過撥打電話和發送郵件等方式對用戶進行告警。
安裝并配置好 Nginx、MySQL、uWSGI,安裝python3.8、pip以及venv,需要的測試設備有DHT溫度傳感器、刷入開發固件的NodeMCU物聯網模塊、人體紅外傳感器、繼電器、5VUSB燈、USB移動電源、登陸APP控制系統的手機以及開發完成的智能物聯網設備系統。
首先在平臺配置好App控制的燈光控制器的邏輯事件,進行保存,如圖3所示。

圖3 系統配置事件
其次在手機界面打開相應開關,如圖4所示。

圖4 手機界面圖
最后開關開啟后燈光亮起,實驗成功,如圖5所示。

圖5 實驗成功
與傳統的編寫單片機設備和編寫后臺接口等開發流程不同,本系統提供了一套可視化功能快速實現的全流程全生命周期的開發模式。打造了物聯網創新孵化平臺,用戶可以節省開發的時間成本和學習成本,從而提高了物聯網創意的孵化率,對整個物聯網生態起到了促進作用,形成了一個能讓用戶在物聯網平臺快速開發的環境。以部署速度快和編程可視化為核心設計理念,大大降低了物聯網開發的門檻。智能物聯網快速應用系統的運用領域極為廣泛,可以運用到工程控制、自動化農業、物聯網智能醫療、物聯網智能家居、物聯網教育以及物聯網學科競賽等,具有積極的意義。