丁莉,王中生
(1.西安醫(yī)學(xué)院 衛(wèi)生管理系,陜西 西安 710021;2.西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710021)
基于ZigBee的溫室監(jiān)測(cè)系統(tǒng)研究與實(shí)現(xiàn)
丁莉1,王中生2
(1.西安醫(yī)學(xué)院 衛(wèi)生管理系,陜西 西安 710021;2.西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710021)
基于實(shí)時(shí)監(jiān)測(cè)溫室環(huán)境情況的目的,通過(guò)傳感器采集溫室中的溫度和濕度,結(jié)合ZigBee技術(shù)與串口通信技術(shù)將所采集的信息傳輸?shù)奖O(jiān)測(cè)中心的計(jì)算機(jī),設(shè)計(jì)上位機(jī)監(jiān)測(cè)軟件,將數(shù)據(jù)以動(dòng)態(tài)曲線的形式直觀地顯示在屏幕上。本系統(tǒng)使用VS2008開(kāi)發(fā)監(jiān)測(cè)軟件系統(tǒng),通過(guò)ZigBee無(wú)線通信模塊組件網(wǎng)絡(luò)并將采集的信息傳輸給上位機(jī),上位機(jī)軟件系統(tǒng)對(duì)接收到的數(shù)據(jù)進(jìn)行分析、處理等操作,并將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)了環(huán)境信息的采集,完成了溫室環(huán)境的實(shí)時(shí)監(jiān)測(cè)。
ZigBee;傳感器;串口通信;實(shí)時(shí)顯示
當(dāng)代農(nóng)業(yè)智能化發(fā)展迅速,越來(lái)越多的種植者將先進(jìn)的工業(yè)技術(shù)運(yùn)用于植物種植當(dāng)中。ZigBee是一種短距離、低速率的無(wú)線數(shù)據(jù)傳輸技術(shù)[1]。具有自組織、低功耗、工作頻段靈活、網(wǎng)絡(luò)結(jié)構(gòu)靈活、對(duì)微控制單元要求較低、數(shù)據(jù)傳輸安全可靠等特點(diǎn),可支持大量節(jié)點(diǎn)加入等,適用于環(huán)境監(jiān)測(cè)、工業(yè)監(jiān)測(cè)、智能公交等多個(gè)領(lǐng)域。溫室環(huán)境的監(jiān)測(cè),有利于減少人員勞動(dòng)力,可以更加直觀及時(shí)地了解被檢測(cè)區(qū)域的環(huán)境信息,確保植物在合適的環(huán)境進(jìn)行生存,增加產(chǎn)量。傳統(tǒng)的信號(hào)傳播方式大多采用有限傳輸,但溫室環(huán)境溫度高、濕度大,對(duì)有線信號(hào)的影響較大;當(dāng)用戶想增加監(jiān)測(cè)點(diǎn)時(shí),需要對(duì)整個(gè)監(jiān)測(cè)系統(tǒng)的線路進(jìn)行改動(dòng),成本大、工序復(fù)雜。本系統(tǒng)采用無(wú)線傳輸方式,降低了環(huán)境對(duì)數(shù)據(jù)傳輸?shù)母蓴_,提高了系統(tǒng)的可靠性,增減監(jiān)測(cè)點(diǎn)也變得較為簡(jiǎn)單。
溫室環(huán)境監(jiān)測(cè)系統(tǒng)由上位機(jī)和下位機(jī)兩個(gè)部分組成,其系統(tǒng)結(jié)構(gòu)如圖1所示。下位機(jī)系統(tǒng)包括終端節(jié)點(diǎn)和協(xié)調(diào)器,該系統(tǒng)設(shè)計(jì)有3個(gè)終端節(jié)點(diǎn)和1個(gè)協(xié)調(diào)器節(jié)點(diǎn)。終端節(jié)點(diǎn)采集監(jiān)測(cè)區(qū)域的環(huán)境信息(溫度、濕度),通過(guò)ZigBee無(wú)線網(wǎng)絡(luò)傳輸給協(xié)調(diào)器節(jié)點(diǎn),使用串口通信技術(shù)將信息傳送到計(jì)算機(jī)中[2]。設(shè)計(jì)上位機(jī)軟件系統(tǒng)將接收到的數(shù)據(jù)進(jìn)行分析處理,將溫濕度信以曲線的形式進(jìn)行實(shí)時(shí)顯示,并對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),實(shí)現(xiàn)數(shù)據(jù)查詢、刪除等功能。當(dāng)溫室環(huán)境出現(xiàn)異常時(shí),系統(tǒng)則會(huì)發(fā)出報(bào)警提示,以提醒用戶盡快進(jìn)行調(diào)整,避免損失。

圖1 溫室環(huán)境監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)圖
下位機(jī)終端節(jié)點(diǎn)為信息采集節(jié)點(diǎn),采用模塊化結(jié)構(gòu),包括溫度傳感器、濕度傳感器、51單片機(jī)和CC2530,如圖2所示。溫濕度傳感器將采集到的數(shù)據(jù)通過(guò)I2C總線傳輸給51單片機(jī),單片機(jī)對(duì)該數(shù)據(jù)進(jìn)行處理,隨后通過(guò)RS232總線傳輸給CC2530,經(jīng)過(guò)分析處理后通過(guò)無(wú)線網(wǎng)絡(luò)傳輸?shù)絽f(xié)調(diào)器節(jié)點(diǎn)。協(xié)調(diào)器采用CC2530無(wú)線微控制器組建ZigBee網(wǎng)絡(luò),ZigBee是一種自組織的無(wú)線網(wǎng)絡(luò),每個(gè)終端節(jié)點(diǎn)自動(dòng)的加入無(wú)線網(wǎng)絡(luò),進(jìn)行信息的傳輸[3]。網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都可以互相通信,所以如果某終端節(jié)點(diǎn)無(wú)法直接將數(shù)據(jù)傳輸?shù)絽f(xié)調(diào)器,也可以通過(guò)其他節(jié)點(diǎn)進(jìn)行數(shù)據(jù)中繼,進(jìn)而傳輸?shù)絽f(xié)調(diào)器中。

圖2 終端節(jié)點(diǎn)結(jié)構(gòu)圖
軟件采用VB.net語(yǔ)言編寫(xiě),在 Microsoft Visual Studio 2008開(kāi)發(fā)平臺(tái)進(jìn)行編譯和調(diào)試,使用Access數(shù)據(jù)庫(kù)管理接收到的數(shù)據(jù)。
3.1 串口通信
VS2008中微軟將串口操作封裝了到 System.IO.Ports.SerialPort里面,可以直接使用SerialPort控件實(shí)現(xiàn)串口通信[4]。首先添加串口通信控件,并為其設(shè)置相應(yīng)的控制變量,利用控件類(lèi)的方法對(duì)串口進(jìn)行端口號(hào),波特率等初始化操作,隨后打開(kāi)串口,當(dāng)串口有信號(hào)進(jìn)來(lái)的時(shí)候,觸發(fā)SerialPort.DataReceived事件,對(duì)串口傳輸上來(lái)的數(shù)據(jù)進(jìn)行接收。
3.2 數(shù)據(jù)處理
數(shù)據(jù)按照規(guī)定的幀格式從下位機(jī)傳輸?shù)缴衔粰C(jī),系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行分析和轉(zhuǎn)換等操作[5]。首先使用 SerialPort.BytesToRead()屬性獲取數(shù)據(jù)的字節(jié)數(shù),該系統(tǒng)中下位機(jī)設(shè)計(jì)有3個(gè)終端節(jié)點(diǎn),所以一組數(shù)據(jù)的字節(jié)數(shù)為21,數(shù)據(jù)格式如圖3所示。1個(gè)節(jié)點(diǎn)的數(shù)據(jù)包括字頭、溫度數(shù)據(jù)、濕度數(shù)據(jù)和節(jié)點(diǎn)號(hào),都是以16進(jìn)制的形式表示的。定義一個(gè)數(shù)組變量byteToRead接收串口傳輸?shù)臄?shù)據(jù),定義變量bytesRead(十六位有符號(hào)整數(shù)變量),用來(lái)存放接收到的數(shù)據(jù)。根據(jù)數(shù)據(jù)字頭判斷數(shù)據(jù)是否為有效數(shù)據(jù),有效則進(jìn)行數(shù)據(jù)接收,依次取出溫度數(shù)據(jù)。濕度數(shù)據(jù)和節(jié)點(diǎn)號(hào),再將16進(jìn)制數(shù)據(jù)轉(zhuǎn)換成10進(jìn)制數(shù)據(jù)后,賦值給相應(yīng)的的變量,保存到數(shù)據(jù)庫(kù)中。

圖3 一組數(shù)據(jù)格式
數(shù)據(jù)接收轉(zhuǎn)換的實(shí)現(xiàn)代碼如下:

3.3 數(shù)據(jù)顯示模塊
數(shù)據(jù)顯示模塊是整個(gè)監(jiān)測(cè)系統(tǒng)中最重要的模塊,需要將接收到的下位機(jī)數(shù)據(jù)以波動(dòng)的曲線形式展示給用戶。該系統(tǒng)由下位機(jī)接收到溫度數(shù)據(jù)和濕度數(shù)據(jù),所以需要設(shè)計(jì)兩個(gè)坐標(biāo)軸分別表示溫度和濕度,坐標(biāo)軸縱坐標(biāo)表示溫濕度數(shù)值,橫坐標(biāo)表示時(shí)間,數(shù)據(jù)顯現(xiàn)界面如圖4所示。

圖4 數(shù)據(jù)顯示界面
曲線采用畫(huà)圖的方法進(jìn)行繪制,根據(jù)縱坐標(biāo)數(shù)據(jù)值和橫坐標(biāo)接收時(shí)間確定該點(diǎn)在坐標(biāo)軸中的位置,采用兩點(diǎn)確定一條直線的方法,將連續(xù)兩個(gè)坐標(biāo)點(diǎn)相連,依次類(lèi)推,則可以得出連續(xù)的曲線。采用Graphics.FromImage方法在Bitmap類(lèi)封裝 的GDI+位圖中進(jìn)行繪畫(huà),使用PictureBox控件來(lái)顯示所繪制的直線[6]。系統(tǒng)的監(jiān)測(cè)界面需要實(shí)時(shí)顯示數(shù)據(jù),所以曲線需要不停的動(dòng)態(tài)波動(dòng)。當(dāng)坐標(biāo)軸被畫(huà)滿時(shí),接收新數(shù)據(jù)時(shí)需要舍棄第1個(gè)數(shù)據(jù),將第2至新數(shù)據(jù)重新畫(huà)在坐標(biāo)軸中,如此類(lèi)推,每接收一個(gè)數(shù)據(jù),淘汰最前端的數(shù)據(jù),再進(jìn)行重新畫(huà)圖,刷新,即可形成動(dòng)態(tài)波動(dòng)的曲線,實(shí)現(xiàn)了環(huán)境信息的動(dòng)態(tài)顯示。刷新坐標(biāo)軸會(huì)出現(xiàn)閃爍現(xiàn)象,為了避免類(lèi)似情況的發(fā)生,曲線的顯示控件由兩個(gè)大小相等的PictureBox重合而成,畫(huà)曲線時(shí)將一個(gè)畫(huà)出的曲線圖復(fù)制到另一個(gè)控件上去,解決了顯示區(qū)域的閃爍問(wèn)題。
3.4 報(bào)警提示
報(bào)警提示分為兩部分,第一是聲音提示,即有異常數(shù)據(jù)出現(xiàn)時(shí),系統(tǒng)發(fā)出警示音;第二是監(jiān)測(cè)界面鈴鐺閃動(dòng)提示,出現(xiàn)異常信息的信息曲線所對(duì)應(yīng)的鈴鐺開(kāi)始閃動(dòng),提示用戶發(fā)生報(bào)警的是某區(qū)域的某環(huán)境信息出現(xiàn)了異常,使用戶可以準(zhǔn)確的判斷進(jìn)行及時(shí)的調(diào)整。
聲音報(bào)警調(diào)用系統(tǒng)內(nèi)部的提示音,當(dāng)判斷出數(shù)據(jù)需要報(bào)警時(shí),則運(yùn)行該線程,系統(tǒng)會(huì)發(fā)出持續(xù)的報(bào)警聲音。鈴鐺提示使用ImageList控件預(yù)載入兩個(gè)不同顏色的鈴鐺圖像,添加PictureBox控件加入鈴鐺圖像,建立線程,需要報(bào)警時(shí)則調(diào)用線程,進(jìn)行兩個(gè)圖片的交替出現(xiàn),實(shí)現(xiàn)了鈴鐺的閃動(dòng)。
本文采用ZigBee無(wú)線傳感器網(wǎng)絡(luò)構(gòu)建了一套環(huán)境監(jiān)測(cè)系統(tǒng),通過(guò)ZigBee網(wǎng)絡(luò)的自組織特性組建了下位機(jī)網(wǎng)絡(luò)系統(tǒng),采用VB.Net語(yǔ)言在VS2008平臺(tái)上設(shè)計(jì)實(shí)現(xiàn)了上位機(jī)軟件系統(tǒng)。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,系統(tǒng)可以較好地完成信息的采集、傳輸和顯示。溫室環(huán)境的監(jiān)測(cè)有助于我國(guó)農(nóng)業(yè)的發(fā)展,具有很高的應(yīng)用價(jià)值。
[1]瞿雷,胡咸斌.ZigBee技術(shù)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2007.
[2]呂治安.ZigBee網(wǎng)絡(luò)原理與應(yīng)用開(kāi)發(fā)[M].北京:北京航天航空大學(xué)出版社,2008.
[3]徐世武,王平,黃晞,等.基于ZigBee節(jié)點(diǎn)的自組織網(wǎng)絡(luò)設(shè)計(jì)[J].電子測(cè)量技術(shù),2010(10):111-114.
[4]王文全.基于SerialPort的串口通信系統(tǒng)實(shí)現(xiàn)[J].科技廣場(chǎng),2011(5):21-23.
[5]王中生,曹梅.基于ZigBee的串口監(jiān)控軟件設(shè)計(jì)與實(shí)現(xiàn)[J]電子設(shè)計(jì)工程,2011(14):13-16.
[6]陳蘇.利用GDI+技術(shù)在 VB.NET中實(shí)現(xiàn)快速繪圖 [J].科技信息,2008(16):197-198.
The research and implementation of greenhouse monitoring system based on ZigBee
DING Li1,WANG Zhong-sheng2
(1.Health Services Administration,Xi’an Medical University,Xi’an 710021,China;2.School of Computer Science and Engineering,Xi’an Technology University,Xi’an 710021,China)
Based on the purpose of real-time monitoring of the greenhouse environment situation,using sensors to collect temperature and humidity of greenhouse,Through the ZigBee and serial communication technology to transmit data to monitoring center computer,designing PC monitoring software,the date can intuitively display in Dynamic curve form on the screen.This system use VS2008 monitoring software system development,through the ZigBee wireless communication module to set up networks and transmit information to PC,the PC software system can perform operations of analyzing and processing to the received data,and it will be stored in a database.The system realized the collection of environmental information,and completed the real-time monitoring of greenhouse environment.
ZigBee;sensor;serial communication;real time display
TN925
A
1674-6236(2016)15-0071-02
2015-09-17 稿件編號(hào):201509123
丁莉(1987—),女,山西運(yùn)城人,碩士研究生,助教。研究方向:物聯(lián)網(wǎng)技術(shù),傳感器網(wǎng)絡(luò),系統(tǒng)分析。