新聞中心

        EEPW首頁 > 設計應用 > 基于ZigBee網絡的蔬菜工廠監控系統

        基于ZigBee網絡的蔬菜工廠監控系統

        作者: 時間:2016-10-10 來源:網絡 收藏

        隨著農業規模的不斷擴大、自動化程度的不斷提高,國內外興起了對農作物生長過程實施遠程監控的研究,其中無線通信技術的快速發展為實現實時監控農作物生長提供了可能。ZigBee技術具有高可靠性、低成本、低功耗、高安全性、低數據速率等特點,廣泛應用于工業控制、智能家居、商業樓宇以及農業自動化等領域。本文基于ZigBee無線傳感技術,實現了一套基于

        本文引用地址:http://www.104case.com/article/201610/306197.htm

        1 ZigBee無線傳感技術

        ZigBee是一種標準,該標準定義了短距離、低數據傳輸速率無線通信所需要的一系列通信協議。ZigBee協議標準采用分層結構,每一層為上層提供一系列特殊的服務:數據實體提供數據傳輸服務;管理實體提供所有其他的服務,所有的服務實體都通過服務接入點為上層提供接口,每個服務接入點都支持一定數量的服務原語來實現所需的功能。Zig Bee協議分為兩個部分,IEEE802.15.4定義了物理層和媒體訪問控制層,ZigBee聯盟在此基礎上定義了網絡層和應用層架構,在應用層內提供了應用支持子層和ZigBee設備對象。ZigBee協議棧將各個層定義的協議都集合在一起,以函數的形式實現,并給用戶提供一些應用層API,供用戶調用。

        2 整體控制框架

        整體控制框架如圖1所示,由主控機、房間節點監控單元、培菜架節點監控單元3部分組成。在蔬菜工廠里有多個房間,每個房間里配置了一個房間節點監控單元,每個房間里有多個培菜架,每個培菜架上配置了一個培菜架節點監控單元,每個培菜架分為4層。

        基于ZigBee網絡的蔬菜工廠監控系統

        主控機的功能:1)作為服務器,接收各房間節點和培菜架節點的數據并存儲,通過網絡瀏覽器實現蔬菜工廠的整體監控;2)在獲得相應權限后,給相關的房間節點和培菜架節點發送控制命令或數據采集命令。

        房間節點監控單元(包括整體監控單元)的功能:1)房間節點監控單元負責每個房間的空調控制、二氧化碳濃度采集和電源管理;2)整體監控單元負責中央空調控制、二氧化碳發生器控制以及整個蔬菜工廠的電源管理。

        培菜架節點監控單元的功能:1)接收到主控機的數據采集命令后,采集本培萊架的溫度、濕度和圖像數據,并將數據發送給主控機;2)接收到主控機的控制命令后,控制本培菜架的LED燈的亮暗、營養液循環泵和電磁閥的開關等。

        基于ZigBee網絡的蔬菜工廠監控系統

        蔬菜工廠監控系統采用如圖2所示的人機交互界面,該交互界面采用網頁瀏覽器實現,用戶可以登錄該瀏覽器來實現對蔬菜的生長環境及生長狀況的實時監控。

        3 無線傳輸網絡模塊

        蔬菜工廠監控系統的無線傳輸網絡模塊如圖3所示,在無線網絡中,配置了一個協調器,一個路由器和多個終端節點。協調器通過RS232連接上位機,與其進行通信,路由器用于無線網絡數據的路由轉發,終端節點用于各房間和培菜架的數據和命令的收發。

        基于ZigBee網絡的蔬菜工廠監控系統

        3.1 單片機

        單片機是一款完全兼容8051內核,同時支持IEEE 802.15.4協議的無線射頻單片機,我們采用單片機來搭建無線傳感器網絡。

        3.2 中的設備

        中的設備分為3種:1)協調器,主要負責無線網絡的建立與維護;2)路由器,主要負責無線網絡數據的路由轉發;3)終端節點,主要負責無線網絡數據的采集。

        ZigBee無線傳感器網絡中的三種設備類型是由ZigBee協議棧不同的編譯選項來選擇的,它們的硬件部分其實都是一樣的,就是協調器多了一個串口,用于和上位機之間的通信。

        3.2.1 協調器

        協調器流程圖如圖4所示,協調器上電后,會按照編譯時給定的參數,選擇合適的信道、合適的網絡號,建立ZigBee無線網絡。然后,等待路由節點和終端節點加入網絡后,上位機通過串口給協調器發送命令,協調器將接收到的命令發送給路由節點和終端節點后,等待和接收返回的數據,判斷返回數據的類型并執行相應的操作,如果返回的是地址回復幀,則更新地址列表,如果返回的是確認幀或采集到的數據,則將其通過串口發送給上位機。

        基于ZigBee網絡的蔬菜工廠監控系統

        3.2.2 路由器

        在ZigBee無線網絡中,路由器是非常重要的節點設備,它不僅完成路由的功能,更重要的是,它在數據的的傳輸過程中起了“接力棒”的作用,大大地拓展了數據傳輸的距離。路由節點上電后,先進行硬件電路的初始化,然后搜索是否有ZigBee無線網絡,如果有則自動加入,然后等待接收數據,接收到數據后對其進行轉發。路由對于應用層來說是完全透明的。Z—Stack提供了比較完善的路由算法,應用程序只需將數據下發到協議棧中,協議棧會自己負責尋找路徑,通過多跳的方式將數據傳送到目的地址。

        3.2.3 終端節點

        終端節點流程圖如圖4所示。終端節點上電后,先進行硬件電路的初始化,然后搜索是否有ZigBee無線網絡,如果有則自動加入,然后等待接收無線數據,解析接收到的無線數據后,向通過485總線連接的單片機發送相應的命令,等待接收單片機采集的數據,接收到數據后將其發送給其父節點。另外,在蔬菜工廠監控系統中,利用每個培菜架節點的串口1連接的串口攝像頭來采集圖像數據,利用房間節點的串口1連接的二氧化碳傳感器來采集二氧化碳濃度,采集到的數據經協調器發送到上位機。

        3.2.4 節點之間的數據發送與接收

        在發送數據前需要按照通信協議中定義的數據幀格式來構建數據幀,數據幀包括起始字節、幀控制、序列號、目的地址、數據長度、數據載荷以及校驗和等信息。數據幀采用如下的結構體來定義:

        基于ZigBee網絡的蔬菜工廠監控系統
        基于ZigBee網絡的蔬菜工廠監控系統

        對于數據幀DataFrame,起始字節start定義為0x55,保留字節reserred暫定義為0x00,為以后擴展所用,幀控制域frameControl用于表示數據包類型、幀類型以及幀屬性,序列號serialNumber從0x0001開始,每發送一個數據包,序列號加1,目的地址dstSddr表示發送數據包的目的地址,數據長度dataLen表示整個數據包的長度,包括數據域和其他域,數據域data[500]用于存放有效載荷數據,校驗和checkSum是將數據包除了checkSum外所有字節的數據相加,然后對256x256取余,校驗和用于遠距離通信中保證數據的準確性與完整性。

        當需要進行節點之間的數據發送時,可以定義一個事件,在事件處理函數里實現數據的發送。

        定義一個事件的方法如下:

        #define SEND_DATA_EVENT 0x01;

        然后在任務事件處理函數中對該事件作出響應,可以使用如下代碼實現:

        if(eventsSEND_DATA_EVENT)

        {

        //在此添加相應的數據發送工作即可

        returm(events'SEND_DATA_EVENT);

        }

        數據發送時,只需調用數據發送函數AF_DataRequest()即可,該函數會調用協議棧里與硬件相關的函數最終將數據通過天線發送出去,這里面涉及對射頻模塊的操作,比如打開發射機、調整發射機的發送功率等,這些協議棧已經實現了,不需要自己去寫代碼實現,只需知道AF_DataRequest()函數的使用方法即可,發送數據可以使用如下的代碼實現(下面例子是以向協調器發送單播數據為例):

        基于ZigBee網絡的蔬菜工廠監控系統

        當接收到數據后,操作系統會將該數據封裝成一個消息,然后放入消息隊列中,每個消息都有自己的消息ID,標識接收到新數據的消息的ID是AF_INCOMING_MSG_CMD,在Zig Bee協議棧中AF_INCOMING_MSG_CMD宏的定義如下:

        基于ZigBee網絡的蔬菜工廠監控系統

        當路由器接收到協調器或終端節點發送來的數據后,首先使用osal_msg_receive函數從消息隊列中接收一個消息,然后使用switch-case語句對消息類型進行判斷(判斷消息ID),如果消息ID是AF_INCOMING_MSG_CMD,調用處理函數GenericApp_MessageMSGCB(),在該函數中,對接收到的數據進行處理。

        4 單片機控制和數據采集模塊

        在蔬菜工廠監控系統中,采用單片機作為控制和數據采集模塊。單片機控制和數據采集模塊為一485主從機模型,主機為培菜架上的ZigBee無線網絡的終端節點,從機為STC12LE5204AD單片機,主機會依次給STC12LE5204AD單片機發送控制命令或數據采集命令,STC12LE5204AD單片機接收到命令后執行相應操作并返回數據給主機。在培菜架的每層配置一個STC12LE5204AD單片機,負責該層的數據采集和執行控制命令。

        4.1 STC12LE5204AD單片機

        STC12LE5204AD單片機采用增強型8051CPU,片上集成4K字節用戶應用程序空間和256字節RAM、15個通用I/O口、4個16位定時器、2路PWM、高速A/D轉換、通用全雙工異步串行口等。

        4.2 STC12LE5204AD單片機模塊

        在蔬菜工廠監控系統中,利用STC12LE5204AD單片機的P3_5和P3_7兩路8位PWM來控制培菜架LED燈板的白燈和紅燈的亮暗程度。通過P1_3口控制營養液循環泵的開關,來控制營養液循環系統。通過P1_2口控制電磁閥的開關,來控制排水系統。通過P1_6口連接的溫濕度傳感器來采集溫濕度。

        5 實驗結果

        將協調器、路由器、終端節點和培菜架依次上電,上位機通過串口調試軟件向協調器發送控制LED燈命令,可以觀察到培菜架上燈板的紅燈和白燈的亮度發生變化,并且上位機收到一個確認幀“55 00 09 00 01 00 01 04 0C 00 70 00”。上位機通過串口調試軟件向協調器發送采集溫濕度命令,會收到采集到的溫濕度數據“55 00 05 80 01 00 01 04 18 00 01 15 24 02 13 25 03 13 2E 04 12 2F F5 01”,“01 04”表示04號房間的培菜架1,“01 15 24”表示培菜架第一層的溫濕度,“02 13 25表示培菜架第二層的溫濕度。通過串口調試軟件定時每500ms發送一次采集溫濕度命令,可以觀察到數據傳輸過程中沒有出現丟包現象,而且采集到的數據值準確。此外上位機還能發送相應命令來采集二氧化碳濃度、圖片數據和控制二氧化碳發生器、營養液循環泵和電磁閥的開關。

        6 結束語

        蔬菜工廠監控系統基于ZigBee無線傳感器網絡,以CC2530單片機和STC12LE5204AD單片機為硬件平臺,基于ZigBee 2007協議棧,在IAR開發環境下進行軟件開發。實驗結果表明該系統具有良好的可靠性和穩定性,能夠實現對蔬菜生長環境的實時監控,達到了預期的設計要求。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 哈尔滨市| 衡东县| 永吉县| 逊克县| 漳浦县| 冕宁县| 阳信县| 兴和县| 镇雄县| 偏关县| 长寿区| 安新县| 涿州市| 鄂伦春自治旗| 新邵县| 布尔津县| 靖江市| 威信县| 甘谷县| 安西县| 湾仔区| 墨竹工卡县| 邵阳市| 建德市| 北宁市| 汽车| 拉孜县| 弋阳县| 元朗区| 利川市| 忻州市| 子洲县| 白山市| 泸州市| 枝江市| 林芝县| 仙居县| 上林县| 明光市| 北碚区| 富平县|