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