馮陳偉,張 璘,袁江南
(廈門理工學院 光電與通信工程學院 通信工程系,福建 廈門 361024)
基于ZigBee與安卓的智能遠程監控系統的設計
馮陳偉,張 璘,袁江南
(廈門理工學院 光電與通信工程學院 通信工程系,福建 廈門 361024)
隨著中國經濟與社會的快速發展,環境監測引起人們的廣泛關注。為了解決目前監控系統的不足,設計一種基于ZigBee和因特網的智能遠程監控系統。該系統采用TI公司的CC2530芯片及相應傳感器構建ZigBee局域網,將采集到的溫濕度信息,經過上位機存儲并處理,利用因特網或無線移動網絡,在安卓智能手機終端上實現數據的遠程傳輸。通過上位機與手機終端,可以查看當前環境狀態,保存歷史數據,并進行自動報警。給出系統硬件及軟件實現方法,包括節點設計、組網流程、數據傳輸功能、上位機軟件設計、安卓智能手機終端軟件設計等。實驗測試結果說明該系統工作穩定、容易擴展、上位機及手機操作簡便。
ZigBee技術;安卓;遠程監控;CC2530芯片
隨著我國經濟的快速發展,環境監控問題越來越值得重視。傳統的監控以有線傳輸方式為主,但隨著通信技術的發展,越來越多的人將智能監控信息通過網絡傳送到監控區域之外的遠程終端上[1]。因此,本文采用ZigBee和因特網技術以及上位機與安卓智能手機終端軟件實現了智能遠程監控。該系統利用ZigBee技術構建了區域無線傳感器網絡(WSN)網絡,完成對環境溫濕度信息的收集,通過上位機將現場監控數據傳送至遠程手機終端完成實時監控。測試結果表明該系統成本低、功耗小、容易擴展、工作穩定,可以廣泛應用于各類監控場景。
基于ZigBee技術的智能遠程監控系統由ZigBee協調器和ZigBee 終端節點、上位機、智能手機終端等構成[2],系統方案設計如圖1所示。連接溫濕度傳感器的ZigBee終端節點周期性收集環境數據,ZigBee協調器和終端節點建立ZigBee網絡,協調器節點匯聚各節點的數據后,經RS-232轉USB接口傳送到上位機進行處理。上位機在接收到協調器傳輸過來的數據后,不僅能在上位機界面實時顯示,還可以通過因特網與智能手機進行網絡連接。借助基于Java的安卓手機客戶端程序,用戶可以進行溫濕度信息查看、查詢及限值報警等功能。當監控人員因為需要離開監控崗位時,就可以通過智能手機終端來遠程監控。

圖1 系統方案設計圖
ZigBee是一種物理層和MAC層基于IEEE802.15.4的短距離無線通信技術。ZigBee具有很強的網絡健壯性和系統可靠性,廣泛應用于智能監控、無線傳感器網絡、家居智能化等領域[3]。網絡中的ZigBee節點主要包括協調器和終端節點,協調器和終端節點的硬件結構相同,不同的功能是由軟件進行控制[4]。下面對系統方案設計中的主要硬件設備進行設計。
2.1 協調器硬件設計
ZigBee協調器主要負責建立網絡并將其他節點加入網絡,同時匯聚接收數據等功能。本系統中ZigBee節點使用TI公司的CC2530模塊,該模塊內部集成了射頻(RF)前端、8051內核、A/D等功能,因此以CC2530為核心的硬件電路只需少量外圍元器件配合就能實現收發功能[5]。本系統協調器的硬件結構框圖如圖2所示,它由穩壓電路模塊、USB轉串口電路、接收數據的天線組成。

圖2 協調器的硬件結構框圖
USB轉串口驅動電路是為了提高本系統的實用性與便捷性,使用目前計算機普遍配備的USB接口與計算機進行通信,將原本需要使用串口的通信轉換成USB接口。USB轉串口驅動電路如圖3所示,將CC2530的TX和RX分別與PL2303芯片的RXD和TXD相連接,并加以擴展相應的外設電路即可。完成硬件的設計之后,在上位機上安裝USB轉串口驅動,就能把USB接口當串口正常使用。

圖3 USB轉串口驅動電路
2.2 終端節點設計
終端節點包括處理器模塊、傳感器模塊、無線通信模塊以及電源模塊。CC2530芯片集成了處理器模塊和無線通信模塊,從而簡化了外部電路設計,因此終端節點的設計主要就是傳感器模塊的設計[6]。
本系統采用DHT11溫濕度傳感器,它是一款含有已校準數字信號輸出的溫濕度復合傳感器,采用單線制串行接口,1個I/O接口就可以同時對溫濕度進行測量[7]。溫濕度檢測電路圖如圖4所示,注意接線時將空腳NC懸空。

圖4 溫濕度檢測電路圖
2.3 電源模塊
電源模塊主要為協調器和終端節點供電。協調器和終端節點均為直流供電,電壓適用范圍在2~3.6 V。在實際系統中,終端節點可以采用2節AA電池供電,協調器工作頻率高,能量消耗大,因此協調器可采用鋰電池供電,通過低壓差穩壓芯片AMS117-3.3 V為CC2530提供直流3.3 V工作電壓。
3.1 協調器軟件設計
ZigBee節點軟件在IAR開發環境下使用C語言進行編譯和調試。硬件模塊上電后程序進行相應的初始化,協調器選擇一個適當的信道創建網絡,其他終端節點通過主動掃描發現并加入已創建的網絡。組網成功后,協調器便可接收來自ZigBee網絡內各終端節點所發送的數據,并將數據傳輸至上位機。協調器組網的功能流程如圖5所示。

圖5 協調器功能流程
3.2 終端節點軟件設計
終端節點上電后程序進行相應的初始化,通過主動掃描發現并加入對應網絡,在啟動定時器后進入待機狀態,等待定時到進入工作模式,這樣做主要為了減少節點能量消耗[8]。終端節點功能流程如圖6所示。

圖6 終端節點功能流程
3.3 上位機軟件設計
ZigBee協調器對溫濕度信息進行接收后通過串口發送至上位機,即服務器。在服務器,使用基于Java中RXTX的串口類庫采集并處理溫濕度數據,將其存儲在MySQL數據庫中,并按照自定義的數據幀格式解析后進行實時顯示,包括節點編號、溫濕度、接收時間等信息,并可以通過查詢等功能觀測環境變化情況。最后利用socket協議與安卓手機終端進行通信,傳輸所需的溫濕度信息。具體分為構建串口通信協議、上位機數據處理、socket網絡通信設計3部分。
3.3.1 串口通信協議
在上述ZigBee終端節點中,傳感器DHT11的DATA引腳輸出40位二進制數據,基本格式為:濕度高8位,濕度低8位,溫度高8位,溫度低8位,校驗位8位。
通過串口傳輸至上位機的數據,利用RXTX類庫中包含的語句獲取串口信息,只需要設定好串口號、波特率、數據位、停止位以及奇偶校驗就可以通過串口接收到ZigBee協調器發來的信息。具體實現方法下:
public static final String PARAMS_PORT = “port name”; // 端口名稱
public static final String PARAMS_DATABITS = “data bits”; // 數據位
public static final String PARAMS_STOPBITS = “stop bits”; // 停止位
public static final String PARAMS_PARITY = “parity”; // 奇偶校驗
public static final String PARAMS_RATE = “rate”; // 波特率
public static final String dataBit = “”+SerialPort.DATAVITS_8; // 數據位
public static final String stopBit = “”+SerialPort.STOPBITS_1; // 停止位
public static final int parityInt = SerialPort.PARITY_NONE; // 無奇偶校驗
public static final String port = “COM3”; // 端口名稱
public static final String rate = 115200; // 波特率
3.3.2 上位機數據處理
出于對實時性要求和用戶體驗度的考慮,本系統采用C/S(客戶端/服務器)的連接方式,上位機也因此作為服務器使用。服務器通過串口程序讀取ZigBee協調器發送的溫濕度信息并將其存放到MySQL數據庫。在數據庫中,用戶可以自由地對數據進行管理操作,例如對需要的數據進行查詢,對錯誤的數據刪除,還有根據查看要求對數據進行排序等。數據庫還將存儲用戶的登錄信息以便于實現對客戶端進行服務器登錄時的驗證,個人信息的查詢等功能。
本系統服務器所使用的表單較為簡單,包括用戶注冊信息表與溫濕度信息記錄表。用戶注冊信息表對象名有Username,Userpwd,Name,Sex,Age,Phone,分別用于表示用戶名、密碼、姓名、性別、年齡、電話號碼;溫濕度信息記錄表對象名有ID,Node,Temperature,Humidity,Time,分別用于表示序號、節點、溫度、濕度、接收時間。
為了在服務器能夠方便地查看數據,本系統還設計了一個可視化程序用于數據查看、報警及檢索等功能,如圖7所示。

圖7 服務器數據查看(截圖)
3.3.3 socket通信設計
服務器的另一個作用就是與手機客戶端進行交互通信,如發送所查詢的信息、保存注冊信息以及驗證登錄信息等。服務器與手機客戶端進行數據通信時采用的是基于TCP/IP的socket協議。
首先,服務器需要將所有的端口與數據庫初始化,即所有端口數據置零,打開串口,確認串口數據通斷,嘗試連接數據庫,創建套接字并偵聽端口。接著確認通斷,判斷是否連接等。在加載完成并成功建立通信以后,服務器就開始處理客戶端的各種請求。客戶端在與服務器的交互中主要涉及:登錄信息的判斷、注冊信息的保存、報警信息的推送以及根據時間、節點查詢溫濕度信息所做出的回應。服務器程序流程圖如圖8所示。

圖8 服務器程序流程圖
3.4 安卓手機客戶端軟件設計
安卓智能手機客戶端應用程序是以Java作為編程語言,通過Eclipse來創建和開發的,使用Java開發包JDK以及安卓ADT進行軟件開發和調試。客戶端軟件設計分為與服務器的網絡通信以及用戶界面設計,詳細的手機客戶端程序流程圖如圖9所示。

圖9 手機客戶端程序流程圖
與服務器的網絡通信過程主要包括系統初始化、創建socket連接、向服務器發送連接請求、接收數據和發送控制命令、退出程序等。在客戶端的連接模塊中,其原理與思路與服務器類似,只需把收發關系顛倒即可。
用戶界面設計包括用戶訪問界面與用戶主界面。其中用戶訪問界面用于用戶注冊與登錄,用戶主界面用于數據的查詢、顯示、報警等功能。
3.4.1 訪問界面設計
訪問界面設計包括注冊/登錄界面、登錄提示及跳轉到主界面等功能。首先客戶端向服務器發送socket請求,接著判斷服務器與客戶端是否連接成功,如果連接成功則進行用戶驗證并跳轉至主界面,否則提示錯誤。
在訪問界面中,用戶需要輸入服務器的IP及端口號,而不是采用默認的套接字,這樣做是為以后可能連接至其他服務器而預留設置。訪問界面登錄成功的狀態如圖10所示。

圖10 登錄成功狀態(截圖)
3.4.2 用戶主界面設計
當用戶登錄成功后程序跳轉至用戶主界面,如圖11所示。主界面上方顯示“當前溫度”、“當前濕度”以及“溫度閥值”,其中“溫度閥值”可以根據需要手動設置,“當前溫度”和“當前濕度”則實時顯示當前的溫濕度信息。主界面下方為“歷史報警”、“監控記錄”、“溫度查詢”和“個人信息”4個按鈕,選擇后分別跳轉至相應功能頁面。

圖11 用戶主界面(截圖)
如果用戶需要實時溫度預警功能,只需要設置好溫度閾值,然后進入“歷史報警”頁面,客戶端就通過該溫度閾值向服務器發送請求,服務器將數據庫中保存的溫度進行判斷,當溫度超過該閾值時,服務器返回數據在手機客戶端顯示,并且手機客戶端通過震動作為警報提醒用戶。若數據均在閾值以下,則服務器返回控值,并在手機客戶端顯示“暫無數據”。
進入“監控記錄”界面可以顯示近期的溫濕度數據,并能夠手動刷新獲取最新采集的信息,如圖12所示。在“溫度查詢”界面可以通過輸入節點號、起始時間和終止時間來檢索需要的溫濕度信息。“個人信息”界面可供用戶查看注冊時的個人信息,但不能作任何的修改。

圖12 監控記錄界面(截圖)
為測試系統的數據傳輸能力以及穩定性,通過傳輸一個8字符長度的數據進行性能的檢測。由于系統中因特網的傳輸性能取決于運營商,因此測試主要以協調器與終端節點之間的傳輸條件為前提進行實驗。通過多次測試得出相關數據,如表1所示。
表1 測試結果

遮擋物厚度/cm傳輸距離D/m數據傳輸情況數據更新速度無D<12無字符缺失正常無12
通過一般室內環境進行測試,分析數據后可以發現,在近距離范圍內(12 m),數據沒有丟包,但是在20 m以上出現了較大的數據丟包情況;當存在門或墻等遮擋物時,在3 m范圍以內均可以正常通信。因此,在一般的家居環境下,將協調器放置于終端節點之間的適當位置,可以實現無線采集環境信息的功能,能夠滿足一般家居環境的監控需求,滿足工程設計要求,同時可以通過因特網將數據傳輸到遠程手機終端查看,實現了完整的智能遠程監控系統。
本文設計了基于ZigBee與因特網技術的智能遠程監控系統。該系統利用ZigBee的無線特性進行環境信息的采集,將數據通過傳輸至上位機進行顯示與存儲,并通過因特網將數據信息傳輸至安卓手機客戶端,實現數據的遠程監控,所設計的手機客戶端程序界面友好、功能完善。測試結果表明,該系統穩定可靠、成本低、能耗低、易于擴展性,可以廣泛應用于各類監控場景。
[1] 南忠良,孫國新.基于ZigBee技術的智能家居系統設計[J].電子設計工程,2010,18(7):117-119.
[2] 王志偉,錢承山,李俊,等.基于無線傳感網絡的智能移動監控系統設計[J].電子器件,2013,36(6):876-880.
[3] 張立立,徐勇,孫開宇.基于ZigBee技術的無線數據采集系統的研制[J].實驗技術與管理,2012,29(5):139-142.
[4] 鐘永鋒,劉永俊.ZigBee無線傳感器網絡[M].北京:北京郵電大學出版社,2011.
[5] 龔文超,吳猛猛,劉雙雙.基于CC2530的無線監控系統設計與實現[J].電子測量技術,2012,35(6):33-36.
[6] 紀志仁,馮陳偉,陳麗蓮.基于ZigBee的智能監控系統的設計[J].中國新通信,2013,15(14):70-71.
[7] 周建民,尹洪妍,徐冬冬.基于ZigBee技術的溫室環境監測系統[J].儀表技術與傳感器,2011(9):50-52.
[8] 童英華.基于Z-Stack的無線溫濕度采集系統[J].現代電子技術,2013,35(23):115-117.
Design of Intelligent Remote Monitoring System Based on ZigBee and Android
FENG Chenwei, ZHANG Lin,YUAN Jiangnan
(Department of Communication Engineering,School of Opto-electronic and Communication Engineering,Xiamen University of Technology,Fujian Xiamen 361024,China)
With the rapid development of China's economy and society,the environment monitoring is paid wide attention to the masses. To settle the current lack of monitoring system, a smart remote monitoring system based on ZigBee and Internet is designed. CC2530 chip produced by TI and corresponding sensors are used to build the ZigBee area network, then the data collected such as temperature, humidity is sent to PC, saved and handled, remotely through Internet network, monitored by Android phone finally. The current state of the environment can be viewed by PC and phone then be preserved; meanwhile automatic alarm also can be achieved. The principle of the system hardware and the implementation methods of the software are introduced,including the node designing,networking forming process, data transmission capabilities, PC software design, Android smart phone software design. The actual test results show that the system is reliable and easy to expand with friendly software interface.
ZigBee technology;Android;remote monitoring;CC2530 chip
福建省中青年教師教育科研項目A類(JA14233);國家自然科學基金項目(61202013);福建省自然科學基金項目(2015J01670)
TP391
A
10.16280/j.videoe.2015.20.010
馮陳偉(1981— ),博士生,講師,研究方向為無線傳感網絡技術;
2015-02-26
【本文獻信息】馮陳偉,張璘,袁江南.基于ZigBee與安卓的智能遠程監控系統的設計[J].電視技術,2015,39(20).
張 璘(1981— ),女,碩士,講師,研究方向為無線通信技術。
責任編輯:時 雯