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

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

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

圖3 系統(tǒng)配置事件
其次在手機(jī)界面打開相應(yīng)開關(guān),如圖4所示。

圖4 手機(jī)界面圖
最后開關(guān)開啟后燈光亮起,實(shí)驗(yàn)成功,如圖5所示。

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