李松濤,尹清爽
(河南工程學(xué)院 計(jì)算機(jī)學(xué)院,河南 鄭州 451191)
基于Android和ZigBee的移動環(huán)境監(jiān)控系統(tǒng)
李松濤,尹清爽
(河南工程學(xué)院 計(jì)算機(jī)學(xué)院,河南 鄭州 451191)
針對遠(yuǎn)程監(jiān)控的需求和特點(diǎn),在分析Android智能手機(jī)平臺結(jié)構(gòu)和ZigBee無線網(wǎng)絡(luò)通信技術(shù)特點(diǎn)的基礎(chǔ)上,設(shè)計(jì)了一種新的移動環(huán)境監(jiān)控系統(tǒng)。該系統(tǒng)集成Android智能終端和ZigBee傳感器網(wǎng)絡(luò),可以實(shí)現(xiàn)區(qū)域環(huán)境數(shù)據(jù)采集和遠(yuǎn)距離的數(shù)據(jù)通信。系統(tǒng)硬件平臺由ZigBee節(jié)點(diǎn)和Tiny6410嵌入式開發(fā)平臺組成,ZigBee節(jié)點(diǎn)采用高性能CC2430芯片,多個節(jié)點(diǎn)自組織成無線傳感網(wǎng)絡(luò),實(shí)現(xiàn)環(huán)境數(shù)據(jù)的采集和無線傳輸?;赟3C6410微控制器的Tiny6410作為網(wǎng)關(guān),其上運(yùn)行Android系統(tǒng),用戶使用智能終端可以遠(yuǎn)程訪問運(yùn)行于網(wǎng)關(guān)的Web服務(wù)器,通過瀏覽器獲取監(jiān)控對象的數(shù)據(jù)。系統(tǒng)測試結(jié)果表明,該系統(tǒng)具有低成本、高可靠性等特點(diǎn),可以滿足移動環(huán)境監(jiān)測的需要。
Android;ZigBee;遠(yuǎn)程監(jiān)控;無線傳感器網(wǎng)絡(luò)
隨著無線通信技術(shù)的發(fā)展,無線信息傳遞越來越穩(wěn)定可靠,其抗干擾能力、糾錯能力和保密能力越來越強(qiáng)[1]。而有線監(jiān)控系統(tǒng)存在著鋪設(shè)成本高、建設(shè)周期長、抗破壞能力弱等一系列問題。在遠(yuǎn)程監(jiān)控領(lǐng)域,無線技術(shù)取代有線將是大勢所趨。
伴隨移動通信技術(shù)的發(fā)展,手機(jī)成為新的獲取信息的終端。由于現(xiàn)在智能手機(jī)的主頻頻率、內(nèi)存容量不斷提升,而且集成了越來越多的傳感器,特別是基于Android的智能手機(jī)的快速普及,使手機(jī)成為一種新型的智能監(jiān)控終端[2-3]。
Android智能手機(jī)是一種全新的開源系統(tǒng)架構(gòu),有強(qiáng)大的應(yīng)用層和豐富的傳感器功能,其開放的平臺有利于開發(fā)者開發(fā)出各類應(yīng)用軟件[4]。由于Android基于Linux系統(tǒng),因此可以使用C語言訪問底層硬件,對硬件進(jìn)行功能擴(kuò)展,能夠與其他模塊進(jìn)行有線或無線的數(shù)據(jù)通信[5]。ZigBee技術(shù)是一種低功耗、自組織的網(wǎng)絡(luò)系統(tǒng),是物聯(lián)網(wǎng)中的核心技術(shù),作為一種新型的短距離無線通信技術(shù),特別適用于多點(diǎn)分布式的數(shù)據(jù)采集系統(tǒng)的無線通信。
文中提出一種基于Android和ZigBee技術(shù)的監(jiān)控系統(tǒng),在系統(tǒng)中使用以S3C6410為核心處理器的Tiny6410開發(fā)板作為Android系統(tǒng)網(wǎng)關(guān),其上運(yùn)行Web服務(wù)程序,服務(wù)程序通過ZigBee協(xié)調(diào)器節(jié)點(diǎn)與ZigBee無線網(wǎng)絡(luò)交互,對采集到的數(shù)據(jù)進(jìn)行處理。用戶可以通過3G網(wǎng)絡(luò)訪問網(wǎng)關(guān),獲取監(jiān)控對象的數(shù)據(jù)。
1.1 Android開源平臺
Android是Google公司推出的一個基于Linux內(nèi)核的智能移動平臺的解決方案,由于Android具有人機(jī)界面友好、可擴(kuò)充性強(qiáng)、安全易用等特點(diǎn),在推出后短短幾年就已經(jīng)占據(jù)了移動平臺的領(lǐng)軍地位。
Android操作系統(tǒng)自頂向下分為4個層次,即應(yīng)用層、應(yīng)用框架層、本地框架和Java運(yùn)行環(huán)境以及Linux內(nèi)核層[6]。應(yīng)用層是系統(tǒng)自帶的或者由用戶開發(fā)的應(yīng)用程序,應(yīng)用程序使用Java編寫。應(yīng)用框架層提供方便復(fù)用的組件,可以調(diào)用該層的組件構(gòu)建應(yīng)用程序。本地框架使用C/C++實(shí)現(xiàn),包含C庫,多媒體庫,瀏覽器引擎,2D、3D圖形引擎等。Android中使用Dalvik作為Java虛擬機(jī),每個Android應(yīng)用程序都擁有一個獨(dú)立的Dalvik虛擬機(jī)實(shí)例,在各自的線程中運(yùn)行。開發(fā)者可以通過應(yīng)用程序框架調(diào)用這些庫函數(shù),實(shí)現(xiàn)滿足特定領(lǐng)域需求的應(yīng)用程序[7]。Android底層是一個基于Linux內(nèi)核開發(fā)的獨(dú)立操作系統(tǒng)。該層用來提供系統(tǒng)的底層服務(wù),包括安全機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧及一系列的驅(qū)動模塊。作為一個虛擬的中間層,該層位于硬件與其他的軟件層之間。
1.2 ZigBee技術(shù)
ZigBee技術(shù)具有自組織、穩(wěn)定性好、抗干擾性強(qiáng)、功耗低等一系列優(yōu)點(diǎn)[8],在無線局域網(wǎng)、物聯(lián)網(wǎng)和低功耗傳感網(wǎng)絡(luò)等領(lǐng)域得到了廣泛應(yīng)用[9]。ZigBee技術(shù)基于IEEE802.15.4標(biāo)準(zhǔn),該標(biāo)準(zhǔn)滿足國際標(biāo)準(zhǔn)組織(ISO)開放系統(tǒng)互連(OSI)參考模式。它定義了單一的MAC層和多樣的物理層。網(wǎng)絡(luò)層以上協(xié)議由ZigBee聯(lián)盟制定,ZigBee實(shí)現(xiàn)了網(wǎng)絡(luò)層和應(yīng)用層。
ZigBee由實(shí)現(xiàn)不同功能的節(jié)點(diǎn)通過無線通信組成星狀、網(wǎng)狀和樹狀網(wǎng)絡(luò),為降低成本,網(wǎng)絡(luò)中的大部分節(jié)點(diǎn)只實(shí)現(xiàn)了全功能的一個子集,稱為精簡功能設(shè)備,而另外一些節(jié)點(diǎn)實(shí)現(xiàn)了通信、路由數(shù)據(jù)等功能,稱為全功能設(shè)備。
系統(tǒng)整體上是一個C/S結(jié)構(gòu)。ZigBee協(xié)調(diào)器和路由器節(jié)點(diǎn)組成了一個短距離無線網(wǎng)絡(luò),負(fù)責(zé)傳感器數(shù)據(jù)的采集和傳輸。系統(tǒng)使用基于Android的系統(tǒng)作為網(wǎng)關(guān),其上運(yùn)行Web服務(wù)程序,服務(wù)程序可以和ZigBee網(wǎng)絡(luò)中的協(xié)調(diào)器節(jié)點(diǎn)交互,獲取來自ZigBee路由節(jié)點(diǎn)的傳感器數(shù)據(jù)。用戶可以通過手機(jī)遠(yuǎn)程訪問網(wǎng)關(guān)、獲取實(shí)時數(shù)據(jù)。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。
Android網(wǎng)關(guān)起到一個協(xié)議轉(zhuǎn)換的作用,實(shí)現(xiàn)了采集數(shù)據(jù)的處理和傳輸。它一方面接收來自用戶的數(shù)據(jù)請求,另一方面與ZigBee協(xié)調(diào)器節(jié)點(diǎn)交互,獲取ZigBee節(jié)點(diǎn)檢測到的現(xiàn)場數(shù)據(jù)[2]。
圖1 系統(tǒng)的整體結(jié)構(gòu)
ZigBee網(wǎng)絡(luò)實(shí)現(xiàn)了系統(tǒng)的采集和無線近距離傳輸功能,分布在監(jiān)測點(diǎn)的路由節(jié)點(diǎn)采集數(shù)據(jù)并將其發(fā)送至協(xié)調(diào)器節(jié)點(diǎn)。同時,協(xié)調(diào)器節(jié)點(diǎn)會向路由節(jié)點(diǎn)發(fā)送各類控制命令。
2.1 Android網(wǎng)關(guān)節(jié)點(diǎn)設(shè)計(jì)
Android網(wǎng)關(guān)的硬件平臺采用Tiny6410嵌入式開發(fā)板,Tiny6410使用ARM11(S3C6410)處理器芯片作為嵌入式核心板,板載256 M DDR RAM,256 M/2 GB Nand Flash存儲器,開發(fā)板接口資源豐富,集成了多個串行口、USB口等,支持SD卡啟動、通過2.0 mm間距的排陣,引出ARM芯片引腳,便于系統(tǒng)擴(kuò)展。由于Tiny6410豐富的板上資源及可擴(kuò)展性,非常適合進(jìn)行二次開發(fā)[10]。
網(wǎng)關(guān)運(yùn)行Android 2.3系統(tǒng),通過串口實(shí)現(xiàn)了與ZigBee網(wǎng)絡(luò)中協(xié)調(diào)器節(jié)點(diǎn)的通信,并可以利用有線或GPRS的形式實(shí)現(xiàn)網(wǎng)關(guān)設(shè)備與Internet的連接。Android應(yīng)用程序在Activity中通過應(yīng)用框架和硬件抽象層調(diào)用串口通信函數(shù),獲取來自ZigBee協(xié)調(diào)器的數(shù)據(jù),串口通信函數(shù)使用C語言編寫,最終編譯成so文件。傳感器采集到的數(shù)據(jù)保存在Android內(nèi)置的SQLite數(shù)據(jù)庫中。運(yùn)行在Android系統(tǒng)上的服務(wù)軟件可以將溫度、濕度等數(shù)據(jù)通過Web服務(wù)器向外發(fā)布。網(wǎng)關(guān)軟件結(jié)構(gòu)如圖2所示。
圖2 Android網(wǎng)關(guān)軟件結(jié)構(gòu)
2.2 ZigBee節(jié)點(diǎn)設(shè)計(jì)
近距離無線網(wǎng)絡(luò)由ZigBee節(jié)點(diǎn)組成。在系統(tǒng)中設(shè)定了兩種類型的節(jié)點(diǎn):協(xié)調(diào)器節(jié)點(diǎn)和路由器節(jié)點(diǎn)。前者負(fù)責(zé)ZigBee網(wǎng)絡(luò)的建立和管理、與Android網(wǎng)關(guān)的通信。后者與傳感器模塊相連,可以自動加入已經(jīng)存在的ZigBee網(wǎng)絡(luò),建立路由及進(jìn)行數(shù)據(jù)采集。
(1)節(jié)點(diǎn)的硬件結(jié)構(gòu)。
ZigBee協(xié)調(diào)器節(jié)點(diǎn)和路由節(jié)點(diǎn)都采用CC2430作為硬件結(jié)構(gòu)的核心[11]。CC2430內(nèi)部集成了業(yè)界領(lǐng)先的射頻收發(fā)器、豐富的片內(nèi)外設(shè)和強(qiáng)大的DMA控制器,以及高性能的射頻收發(fā)器。協(xié)調(diào)器節(jié)點(diǎn)不需要外接傳感器,但需要用到UART口和網(wǎng)關(guān)通信。
ZigBee路由節(jié)點(diǎn)需要連接傳感器,傳感器用于將各種物理量轉(zhuǎn)換為計(jì)算機(jī)能夠處理的數(shù)字量[12]。硬件結(jié)構(gòu)框圖如圖3所示。
系統(tǒng)中采用SHT11作為溫濕度傳感器來采集分散的環(huán)境數(shù)據(jù)。該傳感器為具有二線串行接口的單片全校數(shù)字式新型相對濕度和溫度傳感器,具有數(shù)字式輸出、免標(biāo)定、免外圍電路、壽命長、適用性廣等優(yōu)點(diǎn),在管道、溫室、機(jī)房等場合得到了廣泛應(yīng)用。
SHT11將傳感器、信號放大、A/D轉(zhuǎn)換、串行接口集成到一個芯片內(nèi),可以很方便地實(shí)現(xiàn)與微處理器的連接[13]。
(2)節(jié)點(diǎn)的軟件設(shè)計(jì)。
節(jié)點(diǎn)的軟件設(shè)計(jì)建立在ZigBee網(wǎng)絡(luò)協(xié)議棧的基礎(chǔ)上,TI推出了一種針對CC2430的協(xié)議棧Z-stack,該協(xié)議?;贠SAL操作系統(tǒng)[14]。應(yīng)用程序被分成一個個不同的用戶任務(wù),用戶任務(wù)和ZDO等ZigBee系統(tǒng)任務(wù)一起在OSAL操作系統(tǒng)的調(diào)度下運(yùn)行,其調(diào)度機(jī)制基于優(yōu)先級,用戶任務(wù)的優(yōu)先級是最低的。無線網(wǎng)絡(luò)開始工作時,首先由協(xié)調(diào)器建立網(wǎng)絡(luò),路由器節(jié)點(diǎn)檢測并加入ZigBee網(wǎng)絡(luò),由協(xié)調(diào)器給每一個加入網(wǎng)絡(luò)的路由器分配唯一的16位網(wǎng)絡(luò)地址。在編程時,為每一個節(jié)點(diǎn)設(shè)定不同的設(shè)備號。路由器節(jié)點(diǎn)周期性地向協(xié)調(diào)器發(fā)送采集到的傳感器數(shù)據(jù)。協(xié)調(diào)器接收并區(qū)分來自不同路由器節(jié)點(diǎn)的傳感器數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理、存儲和顯示。協(xié)調(diào)器與路由器節(jié)點(diǎn)之間的交互如圖4所示。
在一個節(jié)點(diǎn)之上可以運(yùn)行多個任務(wù),任務(wù)之間通過消息和事件進(jìn)行通信。在協(xié)調(diào)器上運(yùn)行串口收發(fā)任務(wù)和數(shù)據(jù)處理任務(wù),在路由節(jié)點(diǎn)上運(yùn)行數(shù)據(jù)采集和無線傳輸任務(wù)。不同節(jié)點(diǎn)的任務(wù)通過命令簇建立起連接。
圖4 協(xié)調(diào)器與路由器節(jié)點(diǎn)之間的交互
通過簇建立起來的通信模型如圖5所示。
圖5 節(jié)點(diǎn)之間基于簇的鏈接模型
在ZigBee網(wǎng)絡(luò)中,協(xié)調(diào)器節(jié)點(diǎn)采用廣播的方式向各個路由器節(jié)點(diǎn)發(fā)送命令,路由器節(jié)點(diǎn)接收到來自協(xié)調(diào)器的命令后,自動匹配自己的命令簇。如果相同,路由器節(jié)點(diǎn)響應(yīng)協(xié)調(diào)器的命令并調(diào)用相應(yīng)的函數(shù)完成操作,如啟動傳感器的工作,同時將采集到的數(shù)據(jù)發(fā)送到協(xié)調(diào)器。
系統(tǒng)運(yùn)行時,首先啟動ZigBee協(xié)調(diào)器節(jié)點(diǎn),由ZigBee協(xié)調(diào)器掃描可用的信道,建立ZigBee網(wǎng)絡(luò),然后依次啟動各個ZigBee路由節(jié)點(diǎn)并自動加入ZigBee網(wǎng)絡(luò)。最后啟動運(yùn)行在Android平臺之上的Web服務(wù)程序,服務(wù)程序?qū)碜訸igBee協(xié)調(diào)器節(jié)點(diǎn)的數(shù)據(jù),保存到Android內(nèi)嵌的數(shù)據(jù)庫中,用戶就可以通過PC或者智能手機(jī)的瀏覽器獲取遠(yuǎn)程監(jiān)控對象的數(shù)據(jù)。終端的顯示界面如圖6所示。
圖6 手機(jī)客戶端運(yùn)行界面
將ZigBee技術(shù)和Android智能平臺技術(shù)軟硬件資源的多樣性結(jié)合起來,在Android網(wǎng)關(guān)上構(gòu)建服務(wù)器程序,實(shí)現(xiàn)了客戶的遠(yuǎn)程訪問。該系統(tǒng)具有部署方便、可擴(kuò)充性強(qiáng)等特點(diǎn),可以充分利用Android系統(tǒng)的軟硬件資源,是對遠(yuǎn)程監(jiān)控在移動互聯(lián)網(wǎng)環(huán)境下的一次有效嘗試。適用于小范圍、低數(shù)據(jù)量的監(jiān)控系統(tǒng)設(shè)計(jì)。測試結(jié)果表明,系統(tǒng)的設(shè)計(jì)達(dá)到了預(yù)期目標(biāo)。
[1] Mottola L,Picco G P.Programming wireless sensor networks:fundamental concepts and state of the art[J].ACM Computing Surveys,2011,43(3):1-51.
[2] 耿東久,索 岳,陳 渝,等.基于Android手機(jī)的遠(yuǎn)程訪問和控制系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2011,31(2):559-561.
[3] 許強(qiáng)鍵,楊 飛,翁玲瑜.基于Android的一種主動監(jiān)控系統(tǒng)設(shè)計(jì)與研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(4):189-192.
[4] Wu Yonghong,Luo Jianchao,Luo Lei.Porting mobile web application engine to the Android platform[C]//Proceedings of 2010 IEEE 10th international conference on computer and information technology.Chengdu,China:IEEE,2010:2157-2161.
[5] 周時偉,謝維波.基于Android的智能家居終端設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2012,31(14):10-13.
[6] 姚昱旻,劉衛(wèi)國.Android的架構(gòu)與應(yīng)用開發(fā)研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008,17(11):110-112.
[7] 王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(6):225-228.
[8] Byun J,Jeon B,Noh J,et al.An intelligent self-adjusting sensor for smart home services based on ZigBee communications[J].IEEE Transactions on Consumer Electronics,2012,58(3):794-802.
[9] Park S,Choi M.Design and implementation of smart energy management system for reducing power consumption using ZigBee wireless communication module[J].Procedia Computer Science,2013,19(4):662-668.
[10] 鄭 娟,王建華.基于ARM的智能家居安防監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2014,22(5):183-186.
[11] 楊福寶.基于ZigBee無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的研究[J].制造業(yè)自動化,2011,33(19):85-88.
[12] 張 猛,房俊龍,韓 雨.基于ZigBee和Internet的溫室群環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(4):171-176.
[13] 陳子龍,張紅雨,李俊斌.CC2540和SHT11的無線溫濕度采集系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13(4):41-44.
[14] 楊春勇,牛 磊,路 杰,等.環(huán)境監(jiān)測網(wǎng)絡(luò)中的ZigBee網(wǎng)關(guān)服務(wù)器[J].大地測量與地球動力學(xué),2011,31(2):156-159.
Mobile Environmental Monitoring System Based on Android and ZigBee
LI Song-tao,YIN Qing-shuang
(School of Computer,Henan Institute of Engineering,Zhengzhou 451191,China)
In accordance with the applicable demands and features of remote monitoring,on the base of the analysis of Android smart phone platform structure and the characteristics of ZigBee,a new mobile environment monitoring system is designed.The system which consists of Android intelligent terminal and ZigBee sensor network can achieve regional environmental data and remote data communications.ZigBee node and Tiny6410 are used to build hardware platform.ZigBee node adopts high performance CC2430 chip.In order to achieve and transfer data,multiple nodes are self-organized into wireless sensor networks.Tiny6410 based on S3C6410 microcontroller is used as a gateway.Not only in local but also through the network,user can access to data on Android phone.The test results show that the system is of low cost and high liability.It can meet the requirements for environmental monitoring.
Android;ZigBee;remote monitoring;wireless sensor network
2015-05-21
2015-10-13
時間:2017-02-17
河南省科技攻關(guān)計(jì)劃項(xiàng)目(122102310443)
李松濤(1971-),男,講師,碩士,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、嵌入式系統(tǒng)。
http://www.cnki.net/kcms/detail/61.1450.TP.20170217.1623.010.html
TP311.5
A
1673-629X(2017)03-0197-04
10.3969/j.issn.1673-629X.2017.03.042