李松濤,尹清爽
(河南工程學院 計算機學院,河南 鄭州 451191)
基于Android和ZigBee的移動環境監控系統
李松濤,尹清爽
(河南工程學院 計算機學院,河南 鄭州 451191)
針對遠程監控的需求和特點,在分析Android智能手機平臺結構和ZigBee無線網絡通信技術特點的基礎上,設計了一種新的移動環境監控系統。該系統集成Android智能終端和ZigBee傳感器網絡,可以實現區域環境數據采集和遠距離的數據通信。系統硬件平臺由ZigBee節點和Tiny6410嵌入式開發平臺組成,ZigBee節點采用高性能CC2430芯片,多個節點自組織成無線傳感網絡,實現環境數據的采集和無線傳輸。基于S3C6410微控制器的Tiny6410作為網關,其上運行Android系統,用戶使用智能終端可以遠程訪問運行于網關的Web服務器,通過瀏覽器獲取監控對象的數據。系統測試結果表明,該系統具有低成本、高可靠性等特點,可以滿足移動環境監測的需要。
Android;ZigBee;遠程監控;無線傳感器網絡
隨著無線通信技術的發展,無線信息傳遞越來越穩定可靠,其抗干擾能力、糾錯能力和保密能力越來越強[1]。而有線監控系統存在著鋪設成本高、建設周期長、抗破壞能力弱等一系列問題。在遠程監控領域,無線技術取代有線將是大勢所趨。
伴隨移動通信技術的發展,手機成為新的獲取信息的終端。由于現在智能手機的主頻頻率、內存容量不斷提升,而且集成了越來越多的傳感器,特別是基于Android的智能手機的快速普及,使手機成為一種新型的智能監控終端[2-3]。
Android智能手機是一種全新的開源系統架構,有強大的應用層和豐富的傳感器功能,其開放的平臺有利于開發者開發出各類應用軟件[4]。由于Android基于Linux系統,因此可以使用C語言訪問底層硬件,對硬件進行功能擴展,能夠與其他模塊進行有線或無線的數據通信[5]。ZigBee技術是一種低功耗、自組織的網絡系統,是物聯網中的核心技術,作為一種新型的短距離無線通信技術,特別適用于多點分布式的數據采集系統的無線通信。
文中提出一種基于Android和ZigBee技術的監控系統,在系統中使用以S3C6410為核心處理器的Tiny6410開發板作為Android系統網關,其上運行Web服務程序,服務程序通過ZigBee協調器節點與ZigBee無線網絡交互,對采集到的數據進行處理。用戶可以通過3G網絡訪問網關,獲取監控對象的數據。
1.1 Android開源平臺
Android是Google公司推出的一個基于Linux內核的智能移動平臺的解決方案,由于Android具有人機界面友好、可擴充性強、安全易用等特點,在推出后短短幾年就已經占據了移動平臺的領軍地位。
Android操作系統自頂向下分為4個層次,即應用層、應用框架層、本地框架和Java運行環境以及Linux內核層[6]。應用層是系統自帶的或者由用戶開發的應用程序,應用程序使用Java編寫。應用框架層提供方便復用的組件,可以調用該層的組件構建應用程序。本地框架使用C/C++實現,包含C庫,多媒體庫,瀏覽器引擎,2D、3D圖形引擎等。Android中使用Dalvik作為Java虛擬機,每個Android應用程序都擁有一個獨立的Dalvik虛擬機實例,在各自的線程中運行。開發者可以通過應用程序框架調用這些庫函數,實現滿足特定領域需求的應用程序[7]。Android底層是一個基于Linux內核開發的獨立操作系統。該層用來提供系統的底層服務,包括安全機制、內存管理、進程管理、網絡堆棧及一系列的驅動模塊。作為一個虛擬的中間層,該層位于硬件與其他的軟件層之間。
1.2 ZigBee技術
ZigBee技術具有自組織、穩定性好、抗干擾性強、功耗低等一系列優點[8],在無線局域網、物聯網和低功耗傳感網絡等領域得到了廣泛應用[9]。ZigBee技術基于IEEE802.15.4標準,該標準滿足國際標準組織(ISO)開放系統互連(OSI)參考模式。它定義了單一的MAC層和多樣的物理層。網絡層以上協議由ZigBee聯盟制定,ZigBee實現了網絡層和應用層。
ZigBee由實現不同功能的節點通過無線通信組成星狀、網狀和樹狀網絡,為降低成本,網絡中的大部分節點只實現了全功能的一個子集,稱為精簡功能設備,而另外一些節點實現了通信、路由數據等功能,稱為全功能設備。
系統整體上是一個C/S結構。ZigBee協調器和路由器節點組成了一個短距離無線網絡,負責傳感器數據的采集和傳輸。系統使用基于Android的系統作為網關,其上運行Web服務程序,服務程序可以和ZigBee網絡中的協調器節點交互,獲取來自ZigBee路由節點的傳感器數據。用戶可以通過手機遠程訪問網關、獲取實時數據。系統的總體結構如圖1所示。
Android網關起到一個協議轉換的作用,實現了采集數據的處理和傳輸。它一方面接收來自用戶的數據請求,另一方面與ZigBee協調器節點交互,獲取ZigBee節點檢測到的現場數據[2]。

圖1 系統的整體結構
ZigBee網絡實現了系統的采集和無線近距離傳輸功能,分布在監測點的路由節點采集數據并將其發送至協調器節點。同時,協調器節點會向路由節點發送各類控制命令。
2.1 Android網關節點設計
Android網關的硬件平臺采用Tiny6410嵌入式開發板,Tiny6410使用ARM11(S3C6410)處理器芯片作為嵌入式核心板,板載256 M DDR RAM,256 M/2 GB Nand Flash存儲器,開發板接口資源豐富,集成了多個串行口、USB口等,支持SD卡啟動、通過2.0 mm間距的排陣,引出ARM芯片引腳,便于系統擴展。由于Tiny6410豐富的板上資源及可擴展性,非常適合進行二次開發[10]。
網關運行Android 2.3系統,通過串口實現了與ZigBee網絡中協調器節點的通信,并可以利用有線或GPRS的形式實現網關設備與Internet的連接。Android應用程序在Activity中通過應用框架和硬件抽象層調用串口通信函數,獲取來自ZigBee協調器的數據,串口通信函數使用C語言編寫,最終編譯成so文件。傳感器采集到的數據保存在Android內置的SQLite數據庫中。運行在Android系統上的服務軟件可以將溫度、濕度等數據通過Web服務器向外發布。網關軟件結構如圖2所示。

圖2 Android網關軟件結構
2.2 ZigBee節點設計
近距離無線網絡由ZigBee節點組成。在系統中設定了兩種類型的節點:協調器節點和路由器節點。前者負責ZigBee網絡的建立和管理、與Android網關的通信。后者與傳感器模塊相連,可以自動加入已經存在的ZigBee網絡,建立路由及進行數據采集。
(1)節點的硬件結構。
ZigBee協調器節點和路由節點都采用CC2430作為硬件結構的核心[11]。CC2430內部集成了業界領先的射頻收發器、豐富的片內外設和強大的DMA控制器,以及高性能的射頻收發器。協調器節點不需要外接傳感器,但需要用到UART口和網關通信。
ZigBee路由節點需要連接傳感器,傳感器用于將各種物理量轉換為計算機能夠處理的數字量[12]。硬件結構框圖如圖3所示。
系統中采用SHT11作為溫濕度傳感器來采集分散的環境數據。該傳感器為具有二線串行接口的單片全校數字式新型相對濕度和溫度傳感器,具有數字式輸出、免標定、免外圍電路、壽命長、適用性廣等優點,在管道、溫室、機房等場合得到了廣泛應用。
SHT11將傳感器、信號放大、A/D轉換、串行接口集成到一個芯片內,可以很方便地實現與微處理器的連接[13]。
(2)節點的軟件設計。
節點的軟件設計建立在ZigBee網絡協議棧的基礎上,TI推出了一種針對CC2430的協議棧Z-stack,該協議棧基于OSAL操作系統[14]。應用程序被分成一個個不同的用戶任務,用戶任務和ZDO等ZigBee系統任務一起在OSAL操作系統的調度下運行,其調度機制基于優先級,用戶任務的優先級是最低的。無線網絡開始工作時,首先由協調器建立網絡,路由器節點檢測并加入ZigBee網絡,由協調器給每一個加入網絡的路由器分配唯一的16位網絡地址。在編程時,為每一個節點設定不同的設備號。路由器節點周期性地向協調器發送采集到的傳感器數據。協調器接收并區分來自不同路由器節點的傳感器數據,對數據進行處理、存儲和顯示。協調器與路由器節點之間的交互如圖4所示。
在一個節點之上可以運行多個任務,任務之間通過消息和事件進行通信。在協調器上運行串口收發任務和數據處理任務,在路由節點上運行數據采集和無線傳輸任務。不同節點的任務通過命令簇建立起連接。

圖4 協調器與路由器節點之間的交互
通過簇建立起來的通信模型如圖5所示。

圖5 節點之間基于簇的鏈接模型
在ZigBee網絡中,協調器節點采用廣播的方式向各個路由器節點發送命令,路由器節點接收到來自協調器的命令后,自動匹配自己的命令簇。如果相同,路由器節點響應協調器的命令并調用相應的函數完成操作,如啟動傳感器的工作,同時將采集到的數據發送到協調器。
系統運行時,首先啟動ZigBee協調器節點,由ZigBee協調器掃描可用的信道,建立ZigBee網絡,然后依次啟動各個ZigBee路由節點并自動加入ZigBee網絡。最后啟動運行在Android平臺之上的Web服務程序,服務程序將來自ZigBee協調器節點的數據,保存到Android內嵌的數據庫中,用戶就可以通過PC或者智能手機的瀏覽器獲取遠程監控對象的數據。終端的顯示界面如圖6所示。

圖6 手機客戶端運行界面
將ZigBee技術和Android智能平臺技術軟硬件資源的多樣性結合起來,在Android網關上構建服務器程序,實現了客戶的遠程訪問。該系統具有部署方便、可擴充性強等特點,可以充分利用Android系統的軟硬件資源,是對遠程監控在移動互聯網環境下的一次有效嘗試。適用于小范圍、低數據量的監控系統設計。測試結果表明,系統的設計達到了預期目標。
[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].計算機應用,2011,31(2):559-561.
[3] 許強鍵,楊 飛,翁玲瑜.基于Android的一種主動監控系統設計與研究[J].計算機技術與發展,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的智能家居終端設計與實現[J].微型機與應用,2012,31(14):10-13.
[6] 姚昱旻,劉衛國.Android的架構與應用開發研究[J].計算機系統應用,2008,17(11):110-112.
[7] 王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統的研究與實現[J].計算機技術與發展,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的智能家居安防監控系統的設計與實現[J].電子設計工程,2014,22(5):183-186.
[11] 楊福寶.基于ZigBee無線傳感器網絡節點的研究[J].制造業自動化,2011,33(19):85-88.
[12] 張 猛,房俊龍,韓 雨.基于ZigBee和Internet的溫室群環境遠程監控系統設計[J].農業工程學報,2013,29(4):171-176.
[13] 陳子龍,張紅雨,李俊斌.CC2540和SHT11的無線溫濕度采集系統設計[J].單片機與嵌入式系統應用,2013,13(4):41-44.
[14] 楊春勇,牛 磊,路 杰,等.環境監測網絡中的ZigBee網關服務器[J].大地測量與地球動力學,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
河南省科技攻關計劃項目(122102310443)
李松濤(1971-),男,講師,碩士,研究方向為計算機網絡、嵌入式系統。
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