周興達,韋焱文,劉潔,楊文武,姜鑫蕾
(東北石油大學,黑龍江大慶 163318)
隨著高新技術(shù)的興起,農(nóng)業(yè)生產(chǎn)方式已經(jīng)逐漸改變。農(nóng)業(yè)生產(chǎn)基地使用嵌入式微控制器、傳感器結(jié)合單片機技術(shù)實現(xiàn)了對農(nóng)業(yè)生產(chǎn)中的作物生長環(huán)境進行實時監(jiān)測和控制,不僅節(jié)約人力又實現(xiàn)了對植物生長環(huán)境的實時檢測和精確控制[1]。目前我國將這類技術(shù)逐步投入到智能家居的使用中,像智能花盆等,但類似的設計功能單一,僅能檢測卻無法進行自動控制。該系統(tǒng)將種植者的電腦作為檢測終端,在控制端對植物的生長環(huán)境進行檢測并自動調(diào)節(jié)溫度、濕度和光照強度,通過無線模塊傳輸數(shù)據(jù)到終端進行存儲和后期維護。實現(xiàn)了人與植物間的交互,自動調(diào)節(jié)生長的環(huán)境,能提升植物的生命周期和品質(zhì),使植物種植變得更加智能化。
該設計主要有兩種功能,分別是實時檢測功能和自動調(diào)節(jié)功能。主要電路模塊有單片機最小系統(tǒng)、液晶驅(qū)動電路、溫濕度傳感器、光照強度傳感器、繼電器驅(qū)動電路、外部光源電路和排氣扇電路等,采用相關(guān)程序?qū)υO計的硬件進行編寫和調(diào)試。硬件系統(tǒng)邏輯圖如圖1 所示。
圖1 硬件系統(tǒng)邏輯圖
該設計主要有實時檢測和自動調(diào)節(jié)兩種功能。實時檢測功能就是能夠在液晶屏上實時顯示溫度、濕度和光照強度的參數(shù)[2]。并且通過無線模塊能夠在PC 端上實時檢測到當前參數(shù)的數(shù)據(jù)。自動調(diào)節(jié)功能就是以植物最適當?shù)纳L環(huán)境為中心,通過按鍵設定好適宜的溫度、濕度和光照強度。當環(huán)境的溫度和濕度小于或者等于設定的初始值時,風機不工作;當溫度和濕度只要有一方大于設定的初始值時,風機就會開始運行。當光照強度低于所需的光照強度時,輔光就會自動打開;當光照強度高于所需強度時,輔光不工作。其次,在液晶顯示屏上應顯示當前植物生長環(huán)境的實時數(shù)據(jù),通過無線串口模塊也能在電腦上實時顯示和保存這些數(shù)據(jù)。
選用STC89C52RC單片機作為核心[3],最小系統(tǒng)主要包括電源電路、復位電路和晶體振蕩電路,這是單片機工作的最基本的電路。最小系統(tǒng)的設計會直接關(guān)系和影響到單片機工作的運行狀態(tài)以及穩(wěn)定性,進而影響整個系統(tǒng)的工作情況[4],最小系統(tǒng)原理如圖2所示。
圖2 最小系統(tǒng)原理圖
采用LCD1602 液晶顯示模塊[5]。為了方便編程,將八位數(shù)據(jù)線與單片機的一個完整的端口八位輸出相連,該功能設計選擇的是P0 口。由于其他控制線均使用位控制,所以為了布線方便,在數(shù)據(jù)位確定后與其他控制引腳就近連接,液晶驅(qū)動原理圖如圖3所示。
圖3 液晶驅(qū)動原理圖
選用的DHT11 溫濕度傳感器具有4 個引腳[6],一個數(shù)據(jù)引腳和兩個供電引腳,另外有一個引腳置為空。在使用的模塊中廠家只對3 個有用的引腳進行了引出,讓數(shù)據(jù)腳與單片機的P10 口進行連接[7],電路設計如圖4 所示。
圖4 溫濕度傳感器電路原理圖
設計所使用的BH1750 光照強度傳感器有5 個引腳[8],分別為兩個供電引腳、兩個IIC 通信引腳和一個模擬量輸出引腳。由于在設計中并沒有用到模擬量的讀取,所以模擬輸出引腳置為空,單片機的P11和P12 引腳與IIC 通信的兩個引腳相連,電路設計如圖5 所示。
圖5 光照強度傳感器電路原理圖
采用S8550 三極管來驅(qū)動繼電器[9]。繼電器的一條控制線連電源正極,另一引腳連在集電極,三極管的發(fā)射極接地,在它的基極串聯(lián)電阻后與單片機的P13引腳和P14 引腳相連接。系統(tǒng)開始工作后,繼電器的工作狀態(tài)和單片機輸出的電平以及三極管的工作區(qū)有關(guān),工作狀態(tài)如表1所示,電路設計如圖6所示。
表1 繼電器工作狀態(tài)表
圖6 繼電器驅(qū)動電路原理圖
軟件部分利用C 語言,采用Keil 軟件來進行編寫[10]。系統(tǒng)軟件部分設計主要包括串口通信程序、液晶驅(qū)動程序、溫濕度數(shù)據(jù)讀取與校驗程序、光照強度獲取程序以及按鍵程序等。
通過串口將數(shù)據(jù)發(fā)送給無線通信模塊,由無線通信模塊將串口發(fā)送的數(shù)據(jù)發(fā)送給另一塊無線通信模塊再轉(zhuǎn)發(fā)給電腦。因沒有用到從上位機接收數(shù)據(jù)的功能,所以串口通信程序設計部分只包括串口初始化[11]以及串口發(fā)送[12]兩部分,串口通信程序流程圖如圖7 和圖8 所示。
圖7 串口初始化流程圖
圖8 發(fā)送數(shù)據(jù)流程圖
液晶驅(qū)動程序包括初始化和控制兩部分,液晶驅(qū)動程序的初始化是對液晶工作模式的設置,控制部分是對液晶顯示內(nèi)容的設置。液晶初始化首先需要發(fā)送打開顯示命令,再設置隱藏光標和顯示指針,在顯示完成所有字節(jié)后會自動加一,這有利于簡化程序提高程序的運行效率,最后執(zhí)行清屏操作[13]。
該部分是讀取溫度和濕度的程序并且校驗。將DHT11 模塊的數(shù)據(jù)引腳電平拉低18 ms 再拉高40 μs(大于20 μs),此時DHT11 模塊響應,則會將電平拉低。如果電平?jīng)]有被拉低則結(jié)束;如果電平被拉低,就會開始讀取數(shù)據(jù),共讀取40 位數(shù)據(jù)。若與校驗位相同則通過,就把測得的臨時數(shù)據(jù)復制到指定變量中;如果沒有通過,則校驗結(jié)束[14]。
在通信協(xié)議方面,GY-30 模塊使用BH1750 光照度采集芯片,該芯片與控制器之間為IIC 協(xié)議。由于單片機內(nèi)沒有集成的硬件IIC 控制器,要用單片機的普通I/O 口進行模擬操作[15]。在通信內(nèi)容上,BH1750的默認地址為0x46,先向總線發(fā)送BH1750 的地址并等待其響應,再發(fā)送初始化和轉(zhuǎn)換命令,最后根據(jù)數(shù)據(jù)格式依次讀出傳感器檢測到的信息,由于每次只能傳輸8 bit 的信息,而芯片內(nèi)的AD 采樣為16 bit,則在讀取完成后對讀取到的數(shù)據(jù)進行拼接[16]。
設計的按鍵部分采用6 個獨立的按鍵。按下按鍵后,相應引腳電平被拉低,程序讀取到對應端口的數(shù)據(jù)位是邏輯“0”,即代表按鍵被按下。當發(fā)現(xiàn)按鍵被按下時,首先會進行10 ms 的防抖延時,若檢測到的確是被按下,則會執(zhí)行相應的程序;若檢測到未按下,將不執(zhí)行任何操作,然后繼續(xù)執(zhí)行后續(xù)程序。
圖9 通過按鍵設置初始值,設置溫度上限為25 ℃,濕度上限為55%,光照下限為300 lux,系統(tǒng)檢測到當前環(huán)境中的溫度為15 ℃、濕度為49%,低于設定的初始值時,風機不工作;且此時檢測到的光照強度為487 lux 高于設定的光照強度,輔光也不工作。圖10 為PC 端上顯示的數(shù)據(jù),可以看到和液晶顯示屏上數(shù)據(jù)一致。
圖9 風機和補光不工作時
圖10 PC端上對應圖9的實時顯示
圖11仍設置溫度上限為25 ℃,濕度上限為55%,光照下限為300 lux,系統(tǒng)只要檢測到溫度和濕度有一方高于設定的初值時,風機就會開始運行進行排氣和降溫,此時檢測到溫濕度均高于初值,風機工作。且此時檢測到當光照強度為212 lux,低于所需的光照強度時,輔光自動打開。在圖12 PC 端上看到數(shù)據(jù)自動調(diào)節(jié)的整個過程的參數(shù)和顯示屏上一致。
圖11 風機和補光工作時
圖12 PC端上對應圖11的實時顯示
該設計基于單片機技術(shù),模擬對植物生長環(huán)境進行檢測與自動調(diào)節(jié),其主芯片為STC89C52RC 單片機,采用C 語言設計的環(huán)境檢測與調(diào)節(jié)系統(tǒng)。結(jié)合了單片機及各種傳感器以及補光燈、排氣扇等執(zhí)行機構(gòu),實現(xiàn)了對植物生長環(huán)境中的光照強度、溫度和濕度等要素的實時監(jiān)測和控制。在未來智慧農(nóng)業(yè)的發(fā)展中,以及在面向家庭的植物種植體系中,能夠更加智能化,可以解放大量的勞動力并提升植物的品質(zhì)和生命周期,相關(guān)設計的廣泛應用定能最大限度地方便農(nóng)業(yè)生產(chǎn),提高農(nóng)產(chǎn)品的產(chǎn)量和質(zhì)量,具有較高的使用價值。