雷文禮,張 鑫,任新成,曹新亮,魏建朝
(1.延安大學陜西省能源大數據智能處理省市共建重點實驗室,陜西延安 716000;2.延安大學附屬醫院,陜西 延安 716000)
傳統農業通過人工感知和經驗對大棚環境進行管理往往不能及時調整大棚的環境,從而影響了農作物的快速生長[1-4]。隨著科學技術的飛速發展,我國農業發展相較傳統的農業模式也已經發生了天翻地覆的變化,正在逐步被智能化、自動化的農業模式所取代。溫室大棚已經成為種植蔬菜水果的主要方式,但是與其他國家相比,智能化水平仍然相對較低。
針對溫室大棚內各種環境參數監測不方便,不準確的問題,該文設計了以ZigBee為核心的大棚環境監測系統[5-8]。系統通過初始程序設置了大棚內環境參數的閾值,當大棚內環境參數超過閾值,利用蜂鳴器報警提醒管理者及時調整,從而盡可能地減少損失[9]。
該設計以STC89C52 單片機為核心控制器,匹配ZigBee 模塊、輸入部分和輸出部分等組成大棚環境監測的整個系統。作為中控部分的STC89C52單片機的主要作用是獲取輸入部分數據,經過內部處理,控制輸出部分。大棚環境監測系統框圖如圖1 所示。

圖1 大棚環境監測系統框圖
1)STC89C52 單片機電路設計模塊:它是一款高速、低功耗、超強抗干擾、價格低廉的單片機[10-11],電路原理圖如圖2 所示。

圖2 單片機原理圖
2)按鍵復位電路設計模塊:該模塊可以使系統進行初始化,其中RES 是復位引腳,在通電以后電路給電容充電,此時RES處于高電平并且形成了一個回路,10 kΩ的電阻開始消耗電量;當按鍵S1 按下時,RES直接連接到VCC上,電容開始放電并且會放完所有電,當按鍵松開時會出現兩邊都是斷路的情況,RES此時處于低電平開始復位,當VCC 給電容充滿電重新連通之后,復位完成[12-13]。按鍵復位電路原理圖如圖3所示。

圖3 按鍵復位電路原理圖
3)晶振電路設計模塊:晶振電路是單片機系統必須要用到的,因為單片機的運行必須依靠穩定的時鐘脈沖信號。晶振電路中連接諧振電容,其作用是使晶振兩端的等效電容等于或接近負載電容,以便晶振電路可以正常工作。
ZigBee 模塊的作用是確保主機和從機之間相互通信,其中ANT 是天線部分,P1.2 引腳的功能是用來指示模塊是否連接網絡,連接網絡時是低電平,未連接網絡時為高電平;P1.3 引腳是模塊正常運行指示燈引腳,正常運行時是低電平,未正常運行時是高電平。該模塊采用了3.3 V 電源供電。ZigBee 模塊電路如圖4 所示。

圖4 ZigBee模塊電路
顯示模塊采用LCD1062 顯示屏,它是字符型顯示屏,只能顯示數字、字母和符號。
蜂鳴器電路中采用三極管作為鳴響控制器。三極管相當于一個開關,當基極的高電平使三極管導通時,就會發出聲音。當基極的低電平使三極管截止時,蜂鳴器停止鳴響。
CO2監測電路采用SGP30 模塊實現,此模塊用于室內空氣監測,它是將多個傳感元件集成在一個芯片上的金屬氧化物氣態感應器,能提供空氣質量的詳細信息,包括CO2和揮發性有機化合物VOC 的含量。
溫濕度監測電路采用DHT11 數字型溫濕度傳感器采集大棚溫濕度信息,其采用特殊的數字模塊采集技術和濕度傳感技術,是一個溫度和濕度復合感應數字信號輸出模塊。
系統采用光敏電阻和土壤濕度傳感器采集土壤濕度和光照強度,并通過ADC0832 數模轉換芯片將數據送單片機處理。ADC0832 是一個八位分辨率的A/D 轉芯片。其高分辨率可達256級,能滿足模擬量轉化的一般要求。當ADC0832 不工作時,它的CS 輸入端為高電平,此時芯片被禁用;進行A/D 轉化時,CS 使能終端必須設置在低電平,直到轉換完成。
光敏電阻器是一種利用半導體光電導效應制成的電阻,其電阻值隨入射光強度的改變而改變,又稱光電導探測器。當入射光強時,電阻減少,而當入射光弱時,電阻增大。土壤濕度傳感器又被稱為土壤水分傳感器,不銹鋼探針和防水探頭構成了土壤水分傳感器,適用于長時間埋在土壤里,可用于深層土壤水分的定點監測和在線測量。與數據采集器相結合,可作為定點監測或移動測量工具,測量土壤體積含水量。土壤濕度和光照強度監測電路如圖5所示。

圖5 土壤濕度和光照強度監測電路
該設計所用到的編程軟件為Keil5,它比其他軟件編程環境更輕、更快、更易于操作[14-15]。Keil5 支持各種芯片,包括51 單片機、STM32、HC32、NXP等,可生成通過刻錄器直接燒錄到單片機的HEX 文件。此外,Keil5 編譯有三種方式,分別是Translate、Build和Rebuild,為開發人員提供更多的選擇,編譯結果顯示在界面的底部,方便開發人員查找錯誤[16]。
在主程序中首先對各個模塊進行初始化,隨后進入while 主循環,在主循環中,首先進入第一個按鍵函數,該函數主要分為兩部分,第一部分為調用按鍵掃描函數獲取按鍵鍵值,第二部分通過鍵值進行相應的處理操作,比如切換界面,調整溫度、濕度、土壤濕度、光照、二氧化碳閾值等;接著進入第二個監測函數,該函數主要通過溫濕度監測模塊、土壤濕度監測模塊、光照監測模塊、二氧化碳監測模塊監測當前的溫度、濕度、土壤濕度、光照和二氧化碳值;最后進入第三個顯示函數,該函數通過不同的顯示標志位顯示不同的界面,包括主界面顯示當前的溫度、濕度、光照、土壤濕度、二氧化碳值,其他界面顯示溫度閾值、濕度閾值、土壤濕度閾值、光照閾值、二氧化碳閾值等,系統的主流程圖如圖6 所示。

圖6 系統主流程圖
按鍵設置函數首先通過按鍵掃描函數,獲取按鍵按下的鍵值,通過不同的鍵值,進行相應變量的改變。如果獲取的鍵值為1,則進行界面切換。如果獲取的鍵值為2,在界面1且溫度閾值小于40 ℃時,溫度閾值+1;在界面2且濕度閾值小于閾值最大值99%時,濕度閾值+1;在界面3 且光照閾值小于閾值最大值99%時,光照閾值+1;在界面4且土壤濕度閾值小于閾值最大值99%時,土壤濕度閾值+1;在界面5且二氧化碳閾值小于閾值最大值500時,二氧化碳閾值+1。如果獲取的鍵值為3,在界面1且溫度閾值小于40 ℃時,溫度閾值-1;在界面2 且濕度閾值小于閾值最大值99%時,濕度閾值-1;在界面3且光照閾值小于閾值最大值99%時,光照閾值-1;在界面4且土壤濕度閾值小于閾值最大值99%時,土壤濕度閾值-1;在界面5且二氧化碳閾值小于閾值最大值500時,二氧化碳閾值-1。
顯示模塊流程如圖7 所示,系統通過不同的顯示標志位顯示不同的界面。當界面為0時,顯示當前環境內的溫度、濕度、光照值、土壤濕度和二氧化碳值;當界面為1時,顯示之前設置好的溫度閾值;當界面為2時,顯示之前設置好的濕度閾值;當界面為3時,顯示之前設置好的光照閾值;當界面為4時,顯示之前設置好的土壤濕度閾值;當界面為5時,顯示之前設置好的二氧化碳閾值。

圖7 顯示模塊流程圖
在進行硬件測試時,首先檢查電路是否連通,經檢測電路正常運行,電源正常供電。然后測試網絡是否可以連接,首先給從機供電,然后按下從機復位鍵S1 讓系統初始化,當從機D1 和D2 兩個指示燈變亮,說明從機已經產生網絡;接著給主機供電,當主機D1 和D2 兩個指示燈變亮,說明主機與從機之間運行正常已經連上網絡了。
系統正常運行后,LCD1602 顯示屏分兩行顯示內容,第一行從左到右分別是溫度、濕度和光照強度,第二行從左到右分別是土壤濕度、二氧化碳濃度。當系統供電正常運行后,由于光照強度一般情況下會比設置的閾值高,蜂鳴器會進行報警處理,測試時擋住光照傳感器,蜂鳴器就會停止報警并且可以觀察到LCD1602 顯示屏上光照強度的參數明顯降低;土壤濕度傳感器和溫濕度傳感器隨環境變化采集到的數據會發生變化并顯示在顯示屏上。
該文使用Keil5 來編譯和調試代碼,測試代碼能否正常運行,有沒有指令使用錯誤以及語法錯誤等。經過測試可以看到程序錯誤為零,警告為零。
系統用Proteus 7 Professional 軟件進行仿真測試,觀察系統能否實現設計的功能。經過測試,仿真軟件中系統可以實現所設計的功能,且通過仿真按鍵進行控制,各項參數都發生變化。
所設計的系統可實現從環境中采集實時的溫濕度、光照強度、二氧化碳濃度、土壤濕度數值,并通過ZigBee 自組網絡傳輸,在顯示屏上顯示出來,還可以通過按鍵進行閾值設置實現報警功能。實驗表明,基于ZigBee 的大棚環境監測系統確保了農作物的生長環境,有效地調節了溫室大棚環境參數,避免了災害損失,同時為溫室大棚環境的自動化監測提供了參考。