基于ZigBee網(wǎng)絡(luò)的Android平臺糧情移動監(jiān)測系統(tǒng)
掃描二維碼
隨時隨地手機看文章
引 言
糧食是人民群眾生活的基本物資,是國家應(yīng)對自然災(zāi)害、戰(zhàn)爭或突發(fā)性事件的重要戰(zhàn)略物資。作為人口大國,我國不可避免地需要面對糧食安全問題。糧食安全事關(guān)社會和諧,政治穩(wěn)定和經(jīng)濟可持續(xù)發(fā)展 [1],而科學(xué)儲糧是糧食安全的一個重要環(huán)節(jié),應(yīng)著力避免因糧食儲存不當(dāng)而導(dǎo)致的糧食生蟲、霉變和腐爛等問題 [2]。因此,糧情監(jiān)測顯得尤為重要?,F(xiàn)有的糧情監(jiān)測系統(tǒng)大都只采用PC 機系統(tǒng)來監(jiān)測糧倉內(nèi)的溫濕度信息, 終端比較單一且不具移動性。
隨著移動智能終端的普及,由于其特有的移動性和易于接入網(wǎng)絡(luò)的特性 [3],可以成為不受地理位置限制、實時動態(tài)監(jiān)測糧情的理想終端設(shè)備。本文結(jié)合目前Android 平臺快速發(fā)展的大趨勢和現(xiàn)有糧情監(jiān)測系統(tǒng)的不足,設(shè)計了基于ZigBee 網(wǎng)絡(luò)的Android 平臺糧情移動監(jiān)測系統(tǒng)。
1 系統(tǒng)結(jié)構(gòu)設(shè)計
糧情移動監(jiān)測系統(tǒng)用以實現(xiàn)對糧倉內(nèi)部溫度和濕度數(shù)據(jù)的遠(yuǎn)程獲取、傳輸、數(shù)據(jù)可視化顯示為目標(biāo),整個系統(tǒng)由ZigBee 無線傳感器網(wǎng)絡(luò)、PC上位機、Android 手機客戶端三部分組成,系統(tǒng)結(jié)構(gòu)如圖 1 所示。
ZigBee無線傳感器網(wǎng)絡(luò)由ZigBee傳感器終端節(jié)點和協(xié)調(diào)器節(jié)點組成,主要負(fù)責(zé)糧倉內(nèi)部溫濕度數(shù)據(jù)的采集。傳感器終端節(jié)點是整個糧倉環(huán)境監(jiān)測系統(tǒng)的核心部分,負(fù)責(zé)采集糧倉內(nèi)部溫度和濕度數(shù)據(jù),并將采集到的可靠環(huán)境數(shù)據(jù)以無線的方式傳輸?shù)絽f(xié)調(diào)器節(jié)點,再由協(xié)調(diào)器節(jié)點通過RS 232 串口傳輸給PC上位機。
PC上位機的監(jiān)控軟件主要實現(xiàn)對糧倉內(nèi)環(huán)境數(shù)據(jù)的實時監(jiān)控,將接收到的數(shù)據(jù)數(shù)字化和圖形化顯示,并以不同顏色的波形表示不同位置傳感器節(jié)點采集的環(huán)境數(shù)據(jù)。通過使用Socket 套接字使上位機軟件具有Socket 服務(wù)器功能,以此來監(jiān)聽手機客戶端的請求,并向手機客戶端發(fā)送糧情數(shù)據(jù)。
Android 手機客戶端通過WiFi 訪問上位機監(jiān)控軟件,采用TCP 通信協(xié)議和Socket 通信技術(shù)實現(xiàn)手機端向上位機發(fā)送請求以及將溫濕度數(shù)據(jù)從上位機傳輸?shù)娇蛻舳?。手機客戶端將返回的溫濕度數(shù)據(jù)可視化,從而實現(xiàn)管理員對糧情的遠(yuǎn)程、實時監(jiān)控。
2 系統(tǒng)軟件設(shè)計
2.1 糧倉ZigBee無線傳感器網(wǎng)絡(luò)軟件設(shè)計
ZigBee 無線傳感器網(wǎng)絡(luò)包括傳感器終端節(jié)點和傳感器協(xié)調(diào)節(jié)點。其中傳感器終端節(jié)點負(fù)責(zé)將傳感器采樣得到的模擬信號轉(zhuǎn)換成數(shù)字信號,并發(fā)送溫濕度數(shù)據(jù) ;傳感器協(xié)調(diào)節(jié)點實現(xiàn)溫濕度數(shù)據(jù)的雙向傳輸,還負(fù)責(zé)組建無線傳感器網(wǎng)絡(luò)、維護(hù)網(wǎng)絡(luò)和管理網(wǎng)絡(luò)[4]。在對糧倉溫濕度數(shù)據(jù)監(jiān)測的過程中,每層放置一個傳感器終端節(jié)點。傳感器終端節(jié)點上集成的溫濕度傳感器負(fù)責(zé)采集糧倉不同區(qū)域的溫濕度信息,而無線傳輸模塊將采集到的溫濕度信息以無線的方式發(fā)送到傳感器協(xié)調(diào)節(jié)點上。ZigBee 無線傳感器網(wǎng)絡(luò)終端節(jié)點和協(xié)調(diào)器節(jié)點的工作流程圖如圖 2、圖 3 所示。
2.2 PC上位機軟件設(shè)計
PC上位機在整個系統(tǒng)中起到數(shù)據(jù)中轉(zhuǎn)的作用,上位機通過RS 232 串行口完成與協(xié)調(diào)器節(jié)點的通信,從而接收傳感器終端節(jié)點采集到的糧倉溫濕度數(shù)據(jù),并通過 Socket 通信技術(shù)實現(xiàn)與手機客戶端之間的數(shù)據(jù)傳輸。PC上位機上的糧情監(jiān)測軟件在 VC6.0 開發(fā)環(huán)境下采用C++ 語言開發(fā)而成,在工程中通過添加MSComm 控件來實現(xiàn)數(shù)據(jù)傳輸功能。MSComm 控件能夠提供串行通信的所有功能,也可從串口讀數(shù)據(jù)和寫數(shù)據(jù)到串口上[5]。上位機軟件工作流程如圖 4 所示。
該上位機軟件還可實現(xiàn)對糧倉內(nèi)溫濕度數(shù)據(jù)的實時監(jiān)測, 將接收到的數(shù)據(jù)數(shù)字化和圖形化顯示。管理員可通過監(jiān)測界面實時掌握糧倉內(nèi)溫濕度變化,還可通過溫濕度數(shù)據(jù)波形的變化對未來一段時間內(nèi)糧倉環(huán)境的變化做出預(yù)測,提高糧倉管理的實時性和高效性。
2.3 Android移動客戶端軟件設(shè)計
本系統(tǒng)的移動客戶端應(yīng)用程序是在Windows 7 操作系統(tǒng)環(huán)境下進(jìn)行設(shè)計,采用 Android 系統(tǒng)平臺的終端設(shè)備搭載客戶端軟件。搭建客戶端軟件開發(fā)環(huán)境需要安裝和配置以下開發(fā)工具[6] :JDK、Java 基礎(chǔ)類庫 ;Eclipse、Java 語言開發(fā)環(huán)境; Android SDK、Android 專屬軟件開發(fā)工具包 ;ADT、Android 應(yīng)用程序插件。
手機客戶端通過無線WiFi 網(wǎng)絡(luò)實現(xiàn)與PC上位機之間的通信,采用TCP/IP 通信協(xié)議和Socket 通信技術(shù)向上位機發(fā)送請求,等待上位機的響應(yīng)并將接收到的數(shù)據(jù)可視化顯示。系統(tǒng)采用Socket 通信來實現(xiàn)客戶端與上位機之間的數(shù)據(jù)傳輸; Socket 在計算機網(wǎng)絡(luò)中通常被稱為“套接字”,用于描述 IP 地址和端口號[7],是一個通信鏈的句柄。
手機客戶端與上位機之間采用Socket 通信技術(shù)來實現(xiàn)數(shù)據(jù)傳輸?shù)氖纠缦拢?
一旦IP 地址和端口號都與上位機端匹配,客戶端發(fā)送的請求就會被上位機端接收,這時就實現(xiàn)了客戶端與上位機端的通信。然后, 在客戶端創(chuàng)建 InputStream(輸入流)和OutputStream(輸出流)的對象實例,便可調(diào)用 write 方法和read 方法實現(xiàn)對糧倉溫濕度數(shù)據(jù)的接收。
3 系統(tǒng)測試
系統(tǒng)在糧食儲備庫平房倉模型中進(jìn)行測試。將糧倉模型分成上、中、下三層,在每層放置一個傳感器終端節(jié)點,在Android客戶端界面上采用終端 1、終端 2和終端 3來表示。其中傳感器終端節(jié)點采用DHT11溫濕度傳感器來采集溫濕度數(shù)據(jù)。經(jīng)調(diào)試,系統(tǒng)在上位機軟件中通過定時器設(shè)置為每隔 1s刷新一次數(shù)據(jù)。經(jīng)測試,該系統(tǒng)能夠長時間穩(wěn)定運行,實現(xiàn)了糧倉溫濕度采集、傳輸和遠(yuǎn)程顯示等功能。PC上位機軟件和Android客戶端最終的顯示界面如圖 5、圖 6所示。
結(jié) 語
本文設(shè)計實現(xiàn)了糧情信息的遠(yuǎn)程獲取和移動性監(jiān)測。系統(tǒng)采用ZigBee 網(wǎng)絡(luò)進(jìn)行糧倉溫濕度信息的采集,而移動終端客戶端的開發(fā)打破了地域限制,且移動性好,實現(xiàn)了隨時隨地掌握糧情信息的功能。