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