肖鵬 陳健 姜培
摘 要:文中設(shè)計(jì)了一套基于物聯(lián)網(wǎng)的遠(yuǎn)程環(huán)境監(jiān)控系統(tǒng),實(shí)現(xiàn)了對(duì)廣州市大學(xué)城,廣州市五山和惠州市廣工大物聯(lián)網(wǎng)協(xié)同創(chuàng)新研究院等三地溫濕度、光強(qiáng)的監(jiān)測(cè),并對(duì)燈泡亮滅進(jìn)行遠(yuǎn)程控制。利用Qt平臺(tái)開發(fā)的基于安卓操作系統(tǒng)的移動(dòng)客戶端應(yīng)用程序,通過簡(jiǎn)潔友好的界面展示了不同位置的環(huán)境信息以及供用戶使用的控制按鈕。
關(guān)鍵詞:物聯(lián)網(wǎng);網(wǎng)關(guān);設(shè)備云;遠(yuǎn)程監(jiān)控
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)01-00-03
0 引 言
物聯(lián)網(wǎng)的概念于1999年由麻省理工學(xué)院的Auto-ID實(shí)驗(yàn)室提出,基于無線傳感網(wǎng)絡(luò)和射頻識(shí)別技術(shù),實(shí)現(xiàn)物體的定位和狀態(tài)識(shí)別[1]。其目的在于實(shí)現(xiàn)一個(gè)全面感知,無縫互聯(lián)的高度智能世界。隨著因特網(wǎng)技術(shù)和無線傳感網(wǎng)技術(shù)的進(jìn)步,一個(gè)萬物互聯(lián)的時(shí)代已悄悄來臨。據(jù)IDC預(yù)測(cè):“到2020年,物聯(lián)網(wǎng)網(wǎng)絡(luò)的連接設(shè)備數(shù)量將達(dá)到290億,到2025年,這些設(shè)備產(chǎn)生的數(shù)據(jù)將驅(qū)動(dòng)11萬億美元的經(jīng)濟(jì)價(jià)值”[2]。通常來說,物聯(lián)網(wǎng)由感知層,傳輸層,應(yīng)用層構(gòu)成[3]。感知層主要負(fù)責(zé)信息采集和短距離傳輸;傳輸層主要負(fù)責(zé)將感知層的數(shù)據(jù)進(jìn)行長(zhǎng)距離傳輸;應(yīng)用層用于實(shí)現(xiàn)對(duì)數(shù)據(jù)的處理和決策,主要包括各類應(yīng)用服務(wù),如環(huán)境監(jiān)控,智能電網(wǎng),工業(yè)控制,綠色農(nóng)業(yè),智能家居,公共安全等。物聯(lián)網(wǎng)和和云計(jì)算技術(shù)為物聯(lián)網(wǎng)基礎(chǔ)平臺(tái)應(yīng)用提供了新的機(jī)遇,在物聯(lián)網(wǎng)應(yīng)用過程中,傳感器采集的數(shù)據(jù)將會(huì)被存儲(chǔ)在云環(huán)境中[4]。云計(jì)算技術(shù)為用戶提供了三種不同的服務(wù)模式,即基礎(chǔ)設(shè)施及服務(wù)(LaaS)、平臺(tái)及服務(wù)(PaaS)、軟件及服務(wù)(SaaS),這些服務(wù)可以運(yùn)行在公有云、私有云和混合云當(dāng)中[5]。
本文基于物聯(lián)網(wǎng)傳感技術(shù)和DiGi云平臺(tái)的PaaS模式,設(shè)計(jì)并實(shí)現(xiàn)了一套環(huán)境監(jiān)控系統(tǒng)。通過在廣州市大學(xué)城、廣州市五山和惠州市廣工大物聯(lián)網(wǎng)協(xié)同創(chuàng)新研究院(簡(jiǎn)稱惠州市廣工大研究院)分別部署執(zhí)行器和傳感器,利用DIGI公司的XBee適配器將數(shù)據(jù)匯集到物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)調(diào)器,使用Python語(yǔ)言在網(wǎng)關(guān)上部署應(yīng)用程序。一方面網(wǎng)關(guān)通過ZigBee技術(shù)與感知層設(shè)備交互,另一方面網(wǎng)關(guān)可以通過以太網(wǎng)與設(shè)備云交互。設(shè)備云可以對(duì)網(wǎng)關(guān)上傳的數(shù)據(jù)進(jìn)行分析、存儲(chǔ)和展示。利用Qt平臺(tái)設(shè)計(jì)的Android手機(jī)應(yīng)用客戶端可通過調(diào)用設(shè)備云提供的應(yīng)用程序接口(API)實(shí)現(xiàn)對(duì)執(zhí)行器的控制,并以燈泡的亮滅顯示;可對(duì)當(dāng)前環(huán)境的溫度、濕度及光強(qiáng)進(jìn)行監(jiān)測(cè)。該系統(tǒng)大大提高了用戶對(duì)遠(yuǎn)程環(huán)境的感知能力。
1 系統(tǒng)總體實(shí)現(xiàn)
在本系統(tǒng)中,感知層部署了兩個(gè)終端節(jié)點(diǎn),分別為信息采集傳感器節(jié)點(diǎn)和燈泡控制節(jié)點(diǎn),其中信息采集傳感器可以采集溫度(T)、濕度(H)和光強(qiáng)(L);終端節(jié)點(diǎn)利用ZigBee技術(shù)將數(shù)據(jù)傳送至網(wǎng)關(guān)協(xié)調(diào)器,網(wǎng)關(guān)利用以太網(wǎng)將數(shù)據(jù)上傳至設(shè)備云。此時(shí)可以通過本地瀏覽器或者安卓客戶端監(jiān)控感知層節(jié)點(diǎn)。整體系統(tǒng)框圖如圖1所示。
1.1 T/H/L傳感器節(jié)點(diǎn)與燈泡執(zhí)行器節(jié)點(diǎn)
本系統(tǒng)的T/H/L傳感器節(jié)點(diǎn)采用XBee傳感器模塊,該模塊可實(shí)時(shí)讀取溫度、濕度、光強(qiáng)參數(shù),并通過ZigBee技術(shù)進(jìn)行數(shù)據(jù)傳送;燈泡執(zhí)行器節(jié)點(diǎn)使用XBee數(shù)字I/O適配器,該適配器擁有4個(gè)支持集電極開路上拉和下拉的接口,可通過配置引腳模式來控制適配器的端口狀態(tài)。二者皆可配合網(wǎng)關(guān)將數(shù)據(jù)送至設(shè)備云,也可通過網(wǎng)關(guān)下發(fā)指令,控制適配器輸出引腳的高低電平。
1.2 物聯(lián)網(wǎng)網(wǎng)關(guān)
物聯(lián)網(wǎng)網(wǎng)關(guān)的作用在于銜接感知層與應(yīng)用層,主要功能涵蓋節(jié)點(diǎn)管理、多種信息交互(TCP,HTTP,UDP,SMTP,SMS等)、信息記錄與管理、云端信息安全管理等[6,7]。本系統(tǒng)使用DIGI公司的XBee Gateway-ZigBee to Ethernet/WiFi,該網(wǎng)關(guān)通過ZigBee技術(shù)與其他XBee模塊連接,使用了開源的Python開發(fā)環(huán)境,可通過開發(fā)應(yīng)用程序?qū)崿F(xiàn)設(shè)備云與感知層節(jié)點(diǎn)的數(shù)據(jù)交互。圖2所示為該網(wǎng)關(guān)的軟硬件架構(gòu)。
網(wǎng)關(guān)核心處理器為Fresscale公司生產(chǎn)的i.MX28 ARM9處理器,ZigBee網(wǎng)絡(luò)信息交互采用DIGI公司生產(chǎn)的XBee S2C ZigBee模塊。該模塊采用SMT封裝,擁有PRO版本的物理層,傳輸距離更遠(yuǎn)。XBee S2C采用Ember357單片機(jī),與XBee S2采用相同的Ember ZigBee 協(xié)議棧,二者之間可以相互通信。網(wǎng)關(guān)中用戶應(yīng)用程序可使用20 MB RAM和10 MB Flash。
1.3 DIGI設(shè)備云
設(shè)備云處在整個(gè)系統(tǒng)的應(yīng)用層,具有數(shù)據(jù)分析、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)顯示和設(shè)備管理等功能,并提供豐富的API。DIGI設(shè)備云是一個(gè)設(shè)備托管服務(wù)平臺(tái),具備PaaS服務(wù)能力,可提供設(shè)備管理、設(shè)備實(shí)時(shí)通信以及數(shù)據(jù)存儲(chǔ)服務(wù)等[8,9]。考慮到DIGI設(shè)備云不僅提供了免費(fèi)的應(yīng)用開發(fā)平臺(tái),以及業(yè)界領(lǐng)先的安全協(xié)議和可即時(shí)連接任何M2M設(shè)備,更可對(duì)存儲(chǔ)時(shí)間序列數(shù)據(jù)進(jìn)行智能分析的優(yōu)勢(shì),因此將其作為本系統(tǒng)的云服務(wù)平臺(tái)。本系統(tǒng)設(shè)備云作為應(yīng)用層數(shù)據(jù)的獲取源,同時(shí)也作為數(shù)據(jù)展現(xiàn)和設(shè)備控制的平臺(tái)。
1.4 移動(dòng)客戶端應(yīng)用
設(shè)計(jì)基于安卓的客戶端是為了實(shí)現(xiàn)移動(dòng)監(jiān)控功能,由于Qt擁有跨平臺(tái)的C++應(yīng)用程序開發(fā)框架,且提供了自由軟件的用戶協(xié)議,使得它可以被廣泛應(yīng)用在各平臺(tái)上的開放源代碼軟件開發(fā)中,因此選擇Qt作為開發(fā)平臺(tái)。使用Qt開發(fā)的軟件,相同的代碼可以在任何支持的平臺(tái)上編譯、運(yùn)行,無需修改源代碼,可自動(dòng)根據(jù)平臺(tái)的變化而表現(xiàn)出平臺(tái)特有的圖形界面風(fēng)格[10]。本系統(tǒng)開發(fā)的移動(dòng)客戶端主要基于安卓操作系統(tǒng)。
2 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
2.1 網(wǎng)關(guān)應(yīng)用程序設(shè)計(jì)
2.1.1 燈泡控制應(yīng)用程序
在XBee數(shù)字I/O適配器的一個(gè)輸出端口接MOSFET三極管的柵極,適配器+12 V電源輸出端通過燈泡接到漏極,適配器的地與源極相連,可通過控制輸出口的電平實(shí)現(xiàn)控制燈泡亮滅的目標(biāo)。適配器輸出端的電平通過調(diào)用XBee封裝的庫(kù)函數(shù)實(shí)現(xiàn),常用的幾個(gè)庫(kù)函數(shù)見表1。
本程序中主要用到了 xbee.ddo_set_param()和idigidata.register_callback()模塊。idigidata.register_callback()函數(shù)實(shí)現(xiàn)了回調(diào)功能。應(yīng)用程序按照預(yù)先制定的協(xié)議解析指令內(nèi)容,實(shí)現(xiàn)對(duì)適配器端口狀態(tài)的控制。在本系統(tǒng)中,指令協(xié)議只有六條,分別為HUI4 ,HUI5,DA4,DA5,WU4,WU5,其中4代表開燈,5代表關(guān)燈,數(shù)字前面的字母代表不同的位置。主要程序片段如下:
Def data_callback(data_callback_example,xml:
If xml.find(“HUI4”)>-1:
xbee.ddo_set_param(DESTINATION0, ‘D4, 4)
elif xml.find(“HUI5”)>-1:
xbee.ddo_set_param(DESTINATION0, ‘D4, 5)
handle=iDIGIdata.register_callback(“data_callback_example”, data_callback)
當(dāng)網(wǎng)關(guān)程序部署好后,使用設(shè)備云提供的API進(jìn)行調(diào)試,可及時(shí)驗(yàn)證網(wǎng)關(guān)程序的運(yùn)行效果,同時(shí)為后續(xù)的App開發(fā)提供可靠依據(jù)。00000000-00000000-00409DFF-FF5E0EBF為網(wǎng)關(guān)的Id,API 調(diào)試程序如下:
HUI4
2.1.2 傳感器數(shù)據(jù)讀取應(yīng)用程序
在將傳感器采集的數(shù)據(jù)上傳到設(shè)備云的過程中,網(wǎng)關(guān)應(yīng)用程序的主要功能包括獲取數(shù)據(jù)、封裝數(shù)據(jù)格式、上傳數(shù)據(jù)。下面分別就實(shí)現(xiàn)三個(gè)功能的主要代碼作簡(jiǎn)單介紹。
數(shù)據(jù)獲取調(diào)用 sock.recvfrom()模塊,該函數(shù)以近似Socket套接字通信的方式將底層傳感器的數(shù)據(jù)上傳到網(wǎng)關(guān)。根據(jù)I/O采樣的數(shù)據(jù)手冊(cè)可以分別提取出溫度、濕度和光強(qiáng)數(shù)據(jù)。部分代碼如下:
payload,src_addr=sock.recvfrom(200)
light=float(ord(payload[6])*256+ord(payload[7]))*1200/1023
temp_c=(float(ord(payload[8])*256+ord(payload[9]))*1200/1023-500)/10
hum=float(ord(payload[10])*256+ord(payload[11]))*1200/1023
humidity=((hum*108.2/33.2)/5000-0.16)/0.0062
封裝數(shù)據(jù)格式主要是指將數(shù)據(jù)封裝為可擴(kuò)展標(biāo)記語(yǔ)言格式(XML),XML語(yǔ)言是一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語(yǔ)言,也是用于數(shù)據(jù)交換的公共語(yǔ)言。通過設(shè)計(jì)的fmt_dp()函數(shù)可以將數(shù)據(jù)以XML的格式封裝。部分代碼如下,其中參數(shù)payload為上一步采集的數(shù)據(jù)。
upload_data=fmt_dp(payload, “serial_data_0621hz”, time.time() * 1000, “String”, “b6 encoded”)
數(shù)據(jù)上傳是將已封裝好的數(shù)據(jù)通過idigidata.send_to_idigi()函數(shù)送至設(shè)備云,主要程序如下,其中參數(shù)upload_data 為上一步封裝為XML的數(shù)據(jù)。
status, number, error_msg = idigidata.send_to_idigi(upload_data, “DataPoint/stream_0703dxc.xml”)
DataPoint/stream_0703dxc.xml是事先在設(shè)備云建立的數(shù)據(jù)點(diǎn),數(shù)據(jù)最終保存到該文件下。
至此,傳感器所在環(huán)境的數(shù)據(jù)已采集完畢并上傳到設(shè)備云,可在設(shè)備云上直接查看。
2.2 移動(dòng)客戶端應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)
基于安卓的移動(dòng)客戶端設(shè)計(jì)主要分為五個(gè)模塊,分別為用戶登錄模塊,燈泡控制模塊,燈泡顯示模塊,T/H/L顯示模塊以及系統(tǒng)信息模塊,其框架如圖3所示。
關(guān)于移動(dòng)客戶端的UI設(shè)計(jì)以簡(jiǎn)潔明了為主旨,設(shè)計(jì)了監(jiān)測(cè)模式和控制模式。在監(jiān)測(cè)模式下,三個(gè)位置的現(xiàn)場(chǎng)都將在同一個(gè)頁(yè)面展現(xiàn);在控制模式下,可以選擇和切換不同位置。圖4所示為客戶端UI圖。
3 實(shí)驗(yàn)結(jié)果
系統(tǒng)運(yùn)行效果如圖5所示,各傳感器所在地的相關(guān)環(huán)境信息都展現(xiàn)在App上,同時(shí)可通過App打開燈泡。
可在設(shè)備云的數(shù)據(jù)服務(wù)窗口查看各類參數(shù)的走勢(shì)。圖6所示為最近一周的溫度走勢(shì)圖。
通過實(shí)驗(yàn)證明,此系統(tǒng)實(shí)現(xiàn)了對(duì)傳感器所在環(huán)境的溫度、濕度和光強(qiáng)的監(jiān)測(cè),也實(shí)現(xiàn)了對(duì)開關(guān)的控制,并可將監(jiān)控結(jié)果友好地展現(xiàn)在移動(dòng)終端。
4 結(jié) 語(yǔ)
本文利用DIGI公司生產(chǎn)的XBee系列產(chǎn)品搭建起了基本的硬件平臺(tái),通過設(shè)計(jì)并部署物聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用程序,成功將廣州大學(xué)城,廣州五山和惠州廣工大研究院三個(gè)不同位置的環(huán)境信息上傳到設(shè)備云端;設(shè)計(jì)的基于安卓的移動(dòng)App通過調(diào)用設(shè)備云提供的API,實(shí)現(xiàn)了對(duì)三個(gè)位置的環(huán)境信息的監(jiān)測(cè)以及對(duì)燈泡亮滅的控制。該系統(tǒng)將一個(gè)完整的物聯(lián)網(wǎng)基礎(chǔ)架構(gòu)成功應(yīng)用在實(shí)際中。未來的主要工作是在設(shè)備的安全性以及信息的互通性方面進(jìn)行優(yōu)化,以適應(yīng)更加多變的環(huán)境,滿足更加復(fù)雜的需求。在傳輸方式的選擇上,可以考慮低功耗廣域網(wǎng)。
參考文獻(xiàn)
[1]丁天明.基于RFID技術(shù)的物聯(lián)網(wǎng)在現(xiàn)代物流領(lǐng)域的應(yīng)用[J].中國(guó)物流與采購(gòu), 2011(4):54-55.
[2] Columbus L. Roundup Of Internet of Things Forecasts And Market Estimates,2015[Z]. Forbes, December, 2015, 27.
[3] Gubbi J, Buyya R, Marusic S, et al. Internet of Things (IoT): A vision, architectural elements, and future directions[J].Future generation computer systems,2013,29(7): 1645-1660.
[4]孫利民,沈杰,朱紅松.從云計(jì)算到海計(jì)算:論物聯(lián)網(wǎng)的體系結(jié)構(gòu)[J].中興通訊技術(shù),2011,17(1):3-7.
[5]張建勛,古志民,鄭超.云計(jì)算研究進(jìn)展綜述[J].計(jì)算機(jī)應(yīng)用研究.2010,27(2):429-433.
[6]車楠,劉勝輝.物聯(lián)網(wǎng)技術(shù)原理及實(shí)現(xiàn)—AnduiBee 開源物聯(lián)網(wǎng)解決路線[M].北京:人民郵電出版社,2014.
[7]汪永鵬. 物聯(lián)網(wǎng)感知層智能網(wǎng)關(guān)及開放服務(wù)接口的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué), 2013.
[8] Digi. iDigi Device Cloud - Application Platform for Device Networks.datasheet[EB/OL]. http://www.digi.com/pdf/dsidigidevicecloud.pdf, Jan 2012.
[9]陳斌.云計(jì)算在物聯(lián)網(wǎng)中的作用[J].中國(guó)防偽報(bào)道.2012(1):52-54.
[10]曹龍,劉煒,曾力.基于Qt on Android平臺(tái)的空氣質(zhì)量監(jiān)測(cè)系統(tǒng)手機(jī)客戶端設(shè)計(jì)[J].電子技術(shù)與軟件工程,2017(2):56-57.