基于ZigBee的大棚環(huán)境監(jiān)測系統(tǒng)設計
引言
大棚環(huán)境監(jiān)測系統(tǒng)實時地對大棚的溫度、濕度等環(huán)境因素進行檢測,減少了種植人員的工作量;及時地對不利環(huán)境進行報警,減少了因為人工疏忽而造成的農作物減產的情況;記錄大棚各個時段的環(huán)境數(shù)據(jù),方便農民對農作物的生長情況作出更全面的了解,方便農民控制大棚環(huán)境,使之利于農作物的生長。對大棚溫室的控制與管理是農業(yè)自動化生產的重要領域。目前,絕大多數(shù)的溫室控制系統(tǒng)的信號傳播方式都是有線傳輸,大量的布線不可避免。有線傳輸布線復雜,布線成本高,大棚內的環(huán)境溫濕度都比較高,使得系統(tǒng)的抗干擾性和可靠性降低,后期的維護難度比較大。而采用無線傳輸方式可以有效地解決以上問題。
本文設計的大棚環(huán)境監(jiān)測系統(tǒng),使用單片機和溫濕度傳感器組成數(shù)據(jù)采集節(jié)點,采用無線射頻CC2530(ZigBee)技術進行數(shù)據(jù)傳輸,上位機開發(fā)則采用VisualBasic.NET和Access數(shù)據(jù)庫系統(tǒng),將無線節(jié)點所采集到的溫濕度信息實時地顯示到系統(tǒng)界面,從而達到對溫度監(jiān)測的目的。
1ZigBee技術簡介
ZigBee是一種便宜的、低功耗的近距離無線組網(wǎng)通信技術,它有可能運用于幾乎所有行業(yè)的低速率、短距離的無線通信,近些年多應用于智能家居、工業(yè)應用、智能交通、智能建筑和醫(yī)院應用等。ZigBee的顯著特點就是低速率、低功耗、低成本、自配置和靈活的網(wǎng)絡拓撲結構。由于ZigBee技術的傳輸速率低,傳輸數(shù)據(jù)量很小,因此信號的收發(fā)時間短;而在非工作模式中,ZigBee節(jié)點又處于休眠狀態(tài),所以ZigBee節(jié)點非常省電。由于ZigBee協(xié)議棧相對于其他無線傳輸技術要簡單得多,降低了對控制器的要求,因此可以采用8位單片機和規(guī)模很小的存儲器,很大程度上減小了系統(tǒng)開發(fā)的成本。在可通信的距離內,ZigBee通過網(wǎng)絡協(xié)調器自動建立網(wǎng)絡,采用CSMA-CA方式進行信道接入;節(jié)點設備可以隨意地加入和退出,是一種自組織、自配置的組網(wǎng)方式。ZigBee有多重網(wǎng)絡拓撲結構,可以根據(jù)不同的需求使用相應的拓撲結構,具有較強的靈活性。
2系統(tǒng)結構設計
本系統(tǒng)由終端節(jié)點、協(xié)調器(也稱為ZigBee網(wǎng)關)和數(shù)據(jù)庫管理系統(tǒng)組成。終端節(jié)點對溫濕度實時采集,經(jīng)過C51單片機處理后上傳到ZigBee無線網(wǎng)絡。其中,每個ZigBee模塊還具有中繼功能,以免因距離過遠無法傳輸。數(shù)據(jù)庫管理系統(tǒng)采用VB.NET開發(fā)人機界面。如圖1所示,ZigBee模塊負責收集大棚溫度數(shù)據(jù)、濕度數(shù)據(jù)并進行無線發(fā)送,避免了布線的麻煩,與其配套的上位機軟件是一個擁有良好界面的數(shù)據(jù)監(jiān)控和存儲中心。下位機主要完成數(shù)據(jù)的采集與發(fā)送,上位機完成數(shù)據(jù)的分析和存儲。本系統(tǒng)中ZigBee終端節(jié)點上裝有溫濕度傳感器,負責采集大棚溫濕度數(shù)據(jù),而ZigBee模塊負責通過無線網(wǎng)絡傳輸數(shù)據(jù)信息,ZigBee網(wǎng)關節(jié)點負責收集終端節(jié)點的信息并通過RS232傳輸給上位機,上位機系統(tǒng)需要實現(xiàn)溫濕度數(shù)據(jù)的實時顯示以及數(shù)據(jù)的存儲、查詢、刪除等功能。
3 系統(tǒng)硬件結構組成
環(huán)境監(jiān)測系統(tǒng)硬件裝置由終端節(jié)點和協(xié)調器兩大部分組成,系統(tǒng)結構圖如圖2所示。通常一套裝置只有一個協(xié)調器,其主要包括微控制器、射頻收發(fā)單元、無線節(jié)點和電源模塊以及接口單元。在系統(tǒng)的硬件選擇上,主要從溫濕度的精確度、檢測范圍和經(jīng)濟適用度方面進行考慮。筆者主要采用集成的溫濕度傳感器以及CC2530作為ZigBee模塊。
本系統(tǒng)下位機終端節(jié)點包括溫濕度傳感器、單片機和ZigBee模塊。將終端節(jié)點按用戶要求放置到大棚中,溫濕度傳感器將大棚環(huán)境信息收集上來,通過IIC總線將數(shù)據(jù)傳輸?shù)絊TC12LE5204AD單片機進行數(shù)據(jù)處理。因為STC12LE5204AD沒有IIC接口,所以本系統(tǒng)采用IO接口進行模擬叫單片機將處理過的數(shù)據(jù)信息傳輸給ZigBee模塊,該模塊將數(shù)據(jù)在無線網(wǎng)絡中按照ZigBee網(wǎng)絡協(xié)議傳輸?shù)阶鳛閆igBee網(wǎng)關的協(xié)調器,再通過RS232串口傳輸?shù)缴衔粰C,進行數(shù)據(jù)處理等操作。當終端節(jié)點距離協(xié)調器過遠,無法將信息直接傳送到協(xié)調器時,可以自主地轉送到其他終端節(jié)點進行數(shù)據(jù)中繼,進而傳輸?shù)絽f(xié)調器中。
4系統(tǒng)軟件設計
計算機上位機監(jiān)測軟件在MicrosoftVisualStudio2008環(huán)境下開發(fā),系統(tǒng)將下位機收集到的溫濕度信息交給Access數(shù)據(jù)庫進行標準化管理。種植者可以通過計算機監(jiān)測軟件查詢大棚環(huán)境歷史信息,通過監(jiān)測界面監(jiān)測到大棚溫濕度的實時變化,能夠設置大棚環(huán)境的報警閾值和下位機匹配的硬件參數(shù)等。
4.1數(shù)據(jù)接收模塊
為了使下位機采集到的數(shù)據(jù)可以傳輸?shù)缴衔粰C,需要編寫串口通信程序進行串口通信。在MicrosoftVisualStudio2008中編寫串口通信程序,一般都使用MicrosoftCommunicationControK簡稱MSComm)的通信控件,只要通過對此控件的屬性和事件進行相應編程操作,就可以輕松地實現(xiàn)串口通信。但是,VisualStudio.Net沒有將此控件加入控件庫,所以人們采用了其他方法在VisualStudio.Net來編寫串口通信程序,本系統(tǒng)利用SerialPort類進行串口編程。本系統(tǒng)需要實現(xiàn)下位機參數(shù)可以靈活匹配的功能,可以通過編寫相應程序得以實現(xiàn)。
設計時,應首先打開串口連接;判斷下位機參數(shù)是否已正確選擇,下位機參數(shù)有五個,都需要進行判斷;之后便可與下位機參數(shù)進行匹配,設置串口參數(shù);再建立串口通信事件;最后接收數(shù)據(jù)信息。下面是其部分代碼:
PrivateSubSerialPort1_DataReceived(ByValsenderAsSystem.Object,ByValeAsSystem.IO.Ports.SerialDataReceivedEventArgs)HandlesSerialPort1.DataReceived
'引入SerialPort類,接收數(shù)據(jù)HOneData(第一個節(jié)點的濕度)等三組六個數(shù)據(jù)
DimbyteToReadAsInt16=SerialPort1.BytesToRead()
IfbyteToRead=21Then
Dimch(byteToRead)AsByte
DimbytesReadAsInt16=0
bytesRead=SerialPort1.Read(ch,0,byteToRead)'用來存放接收到的數(shù)據(jù)
Ifch(0)=170Andch(1)=85Then'判斷讀取下位機數(shù)據(jù)的長度是否為有效的
HOneData=CLng("&H"&Hex(ch(2)&ch(3)))/10'十六進制轉成十進制(前面的),并且小數(shù)點向左進一位(除以10)
圖3所示是其數(shù)據(jù)接收模塊流程圖。
4.2數(shù)據(jù)處理模塊
環(huán)境數(shù)據(jù)信息從下位機通過RS232串口傳輸?shù)缴衔粰C系統(tǒng),需要進行分析、轉換等操作。數(shù)據(jù)按照規(guī)定的幀格式傳輸,每幀包含3個數(shù)據(jù),分別為節(jié)點編號、溫度數(shù)據(jù)、濕度數(shù)據(jù),均以十六進制形式表示。上位機接收到數(shù)據(jù)后,分離其中的數(shù)據(jù)位,依次取出節(jié)點編號、溫度數(shù)據(jù)、濕度數(shù)據(jù)中的值,進行十六進制數(shù)據(jù)轉換成十進制數(shù)據(jù)的操作后,保存到數(shù)據(jù)庫中。數(shù)據(jù)處理模塊的流程圖如圖4所示。下面是其部分代碼:
ImportsSystem.Data.OleDb'弓|用access控件
PublicLHGconnAsNewOleDb.OleDbConnection(
"provider=microsoft.jet.oledb.4.0;"&"datasource="&
My.Application.Info.DirectoryPath&"\NewData.mdb;")'打
開數(shù)據(jù)庫,路徑為相對路徑
Try
IfLHGconn.State<>ConnectionState.ClosedThenLHGconn.Close()
LHGconn.Open()
CallRAlarm()'數(shù)據(jù)庫連接,錯誤則報警
4.3數(shù)據(jù)顯示模塊
數(shù)據(jù)顯示模塊是整個監(jiān)測系統(tǒng)中最重要的模塊,需要將接收到的下位機數(shù)據(jù)以實時波動曲線的形式展示給種植者,該模塊使用.NETFramweork構架中提供的GDI+類庫進行繪圖。系統(tǒng)界面中設計兩個坐標軸,分別用來顯示溫度數(shù)據(jù)和濕度數(shù)據(jù)。系統(tǒng)獲取從下位機接收到的數(shù)據(jù)在坐標軸中進行繪圖,獲取到的十六進制數(shù)據(jù)信息通過分析處理轉化為十進制數(shù)據(jù),再通過數(shù)學計算,確定該數(shù)據(jù)信息在坐標軸上的坐標值。將相鄰兩個坐標點用畫線的方法連接起來,則形成了實時顯示的曲線。使用Bitmap類,用來封裝GDI+位圖,此位圖由圖形圖像及其屬性的像素數(shù)據(jù)組成。Bitmap是用于處理由像素數(shù)據(jù)定義的圖像的對象,相當于定義畫布。使用Graphics對象所提供的Graphics.FromImage方法從指定的Image創(chuàng)建新的Graphics,相當于定義了一個畫筆,使用picturebox控件來顯示所繪制的圖形和圖像。
5結語
基于ZigBee的大棚環(huán)境監(jiān)測系統(tǒng)實現(xiàn)的是溫度和濕度數(shù)據(jù)的無線檢測,具有數(shù)據(jù)傳輸可靠、組網(wǎng)簡單靈活、設備成本低等特點。本系統(tǒng)能夠實時采集環(huán)境數(shù)據(jù),將大棚環(huán)境信息及時地傳遞給用戶,用戶可以及時地掌握大棚環(huán)境,從而對環(huán)境進行調節(jié)與控制,避免因為人為疏忽造成的農作物減產等不良影響,符合農業(yè)現(xiàn)代化發(fā)展的需求,具有一定的應用價值。
20211106_61863d78565e1__基于ZigBee的大棚環(huán)境監(jiān)測系統(tǒng)設計