李煥然
(黑龍江工商學(xué)院,黑龍江哈爾濱, 150025)
過去幾年,我國農(nóng)業(yè)智能灌溉技術(shù)得到了一定的發(fā)展,但由于市面的灌溉控制器使用不方便、功能較少等缺點普遍存在,需要人工手動操控,工作人員要頻繁的手動切換電動閥門在不同的灌區(qū)之間,高人工費用,無法解放勞動力,難以開展大規(guī)模的農(nóng)業(yè)管理活動。另外,傳統(tǒng)的灌溉機也有很多問題需要解決,比如不能對灌區(qū)目前的土壤水分進行實時監(jiān)測,單靠人工進行灌溉決策,土壤含水量不能保持在合適的水平,造成了大量的灌溉用水不能得到有效利用,導(dǎo)致過澇、土壤硬化,作物減產(chǎn)等問題。因此,針對智能灌溉進行系統(tǒng)化的研究具有重要的使用意義和開發(fā)價值。
本次基于STM32智能灌溉系統(tǒng)的設(shè)計,選用STM32F 103C8T6來作為灌溉控制器的MCU,由電源模塊、濕度傳感器模塊、OLED顯示模塊、蜂鳴器和水泵等部分組成,系統(tǒng)運行后土壤濕度傳感器檢測環(huán)境濕度,OLED顯示屏實時顯示當前土壤濕度、水泵澆水狀態(tài)、模式、土壤干燥閾值和過濕閾值,通過按鍵可以改變自動、手動和設(shè)置三種模式的轉(zhuǎn)換,自動模式下當土壤濕度小于干燥值時水泵自動澆水,當土壤濕度大于過濕閾值時聲光報警,手動模式通過按鍵控制水泵開關(guān),設(shè)置模式通過按鍵設(shè)置干燥閾值和過濕閾值以實現(xiàn)智能灌溉。圖1為基于STM32智能灌溉系統(tǒng)的整體框架。
圖1 系統(tǒng)整體框圖
STM32F103C8T6最小系統(tǒng)板由外部復(fù)位電路、外部時鐘電路以及MCU本體構(gòu)成??刂破髯鳛镸CU的主要控制核心,其作用是在系統(tǒng)運行期間,有效地識別出由MCU發(fā)出的指令,并根據(jù)指令控制系統(tǒng)的某些功能,從而確保MCU可以按照指令執(zhí)行所要求的工作。在整個微處理器工作系統(tǒng)中,通過控制器來完成各種指令的傳遞和處理。在實際運行時,控制器會把系統(tǒng)內(nèi)存中的指令發(fā)送到一個寄存器中,然后進行相應(yīng)的存儲。然后由指令譯碼器進行解譯,并將所得到的結(jié)果傳送到時序控制邏輯電路,再通過指令傳遞給其他器件,從而實現(xiàn)單片機的工作。STM32F103C8T6單片機的引腳圖如圖2所示。
圖2 STM32F103C8T6單片機的引腳圖
整個單片機一共引出44個引腳,該單片機GPIO口有很多種模式,其中最多使用到的模式有推挽輸出以及模擬輸入這兩種模式。其豐富的IO口模式使得在外接按鈕時可以不設(shè)計上下拉電阻,更方便設(shè)計與研究。
在本設(shè)備添加OLED顯示模塊展示當前環(huán)境參數(shù)信息,例如土壤濕度、水泵澆水狀態(tài)、模式、土壤干燥閾值和過濕閾值。方便查看實時環(huán)境參數(shù),提供具體數(shù)據(jù)供用戶參考。OLED顯示模塊選用0.96寸四針I(yè)2C(Inter-Integrated Circuit)接口的OLED顯示屏,顯示效果非常清楚,對比度高,無需電平轉(zhuǎn)換芯片,成本低且易開發(fā),OLED顯示模塊如圖3所示。
圖3 OLED顯示模塊
OLED顯示模塊只需要SCL和SDA兩條信號線即可與MCU進行通訊,SCL和SDA分別與GPIO端口PB8和PB7相連,通信通過模擬I2C的方式來實現(xiàn),OLED顯示模塊電路原理圖如圖4所示。
圖4 OLED顯示模塊電路原理圖
為了實現(xiàn)智能灌溉控制,有四個按鍵被加在本系統(tǒng)的電路中,四個按鍵依次接在MCU的PB12、PB13、PB14、PB15端口上,S1可以進行自動、手動和設(shè)置三種模式的轉(zhuǎn)換,手動模式下S2控制水泵的運行的狀態(tài),設(shè)置模式下S3和S4可以增加或減少干燥閾值和過濕閾值。這四個按鍵應(yīng)用的是上拉輸入方式,按鍵如果閉合,主控制器就會檢測到低電平,按鍵松開時則會檢測到高電平。按鍵電路設(shè)計如圖5所示。
圖5 按鍵電路設(shè)計
YL-69是本次設(shè)計所需的土壤濕度傳感器的最佳選擇,因為鎳被鍍在了它的探測器表面,既可以改善導(dǎo)體的導(dǎo)電性,又可以避免與土壤接觸后的腐蝕。圖6為其實物圖。
圖6 YL—69實物圖
在本次設(shè)計中,通過ADC采樣的方式對AO端口進行模擬量的采集,經(jīng)過模數(shù)轉(zhuǎn)換,能得到更準確的土壤含水量,如圖7所示,STM32單片機通過ADC1的PA0引腳對土壤濕度傳感器AO端口輸出的模擬電壓進行采集。
圖7 土壤濕度傳感器電路設(shè)計
此模塊主要由一個5V供電的水泵、S8050NPN型三極管、電容以及LED燈組成。其中電容C1并聯(lián)到水泵電樞兩端,可以起到濾波和抗干擾的作用,當MCU給引腳PC14高電平時,三極管導(dǎo)通,水泵開始運轉(zhuǎn),LED1指示燈亮起;當MCU給引腳PC14低電平時,三極管截止,水泵停止運轉(zhuǎn),LED1指示燈熄滅。灌溉模塊電路原理圖如圖8所示。
圖8 灌溉模塊電路原理圖
此模塊主要由一個S8050NPN型三極管、LED燈,以及有源蜂鳴器組成。R4為限流電阻,當MCU給引腳PC13高電平時,三極管導(dǎo)通,VCC便給蜂鳴器供電,LED2指示燈亮起;當MCU給引腳PC13低電平時,三極管截止,蜂鳴器不導(dǎo)通,LED2指示燈熄滅。蜂鳴器電路原理圖如圖9所示。
圖9 蜂鳴器電路原理圖
在系統(tǒng)的設(shè)計中,不僅要進行硬件設(shè)計,還要進行軟件編程。由于本設(shè)計中使用了以單片機為控制器,所以在軟件編程平臺的選取上也要相應(yīng)地考慮。一般情況下,針對單片機的軟件開發(fā)平臺有很多,比如Keil,IAR等。C語言易于移植、靈活,非常符合系統(tǒng)的設(shè)計要求,與匯編相比,C語言具有較高的可移植性。KeiluVision5是一個高效、易用的開發(fā)環(huán)境,它不但加快了我們的研究速度,也降低了我們的人力物力,并且滿足了我們的需求。所以,這個設(shè)計選用了KeiluVision5來進行程序調(diào)試。同時,該軟件還具有聯(lián)機調(diào)試的能力,利用專用的聯(lián)機調(diào)試工具,能夠?qū)崿F(xiàn)對單片機的運行狀態(tài)的實時監(jiān)測,并能夠設(shè)定斷點,實現(xiàn)單步運行,便于用戶進行程序的調(diào)試。
首先需要進行對單片機引腳初始化操作,土壤濕度傳感器將采集到的環(huán)境濕度上傳到MCU進行分析,若環(huán)境濕度小于干燥閾值則開啟水泵進行灌溉,然后和過濕閾值進行對比,若大于過濕閾值,則水泵關(guān)閉,蜂鳴器警報,反之進行循環(huán)系統(tǒng)的判斷,然后與OLED顯示模塊通過模擬I2C的方式進行通訊,并將當前環(huán)境數(shù)據(jù)和水泵運行狀態(tài)進行展示,最后MCU持續(xù)掃描按鍵對應(yīng)IO口的輸入狀態(tài),根據(jù)不同的按鍵,可以進行自動、手動和設(shè)置三種模式的轉(zhuǎn)換,控制水泵的運行的狀態(tài),增加或減少干燥閾值和過濕閾值。系統(tǒng)流程圖如圖10所示。
圖10 系統(tǒng)流程圖
用吸水的紙巾模擬不同的土壤環(huán)境進行測試,系統(tǒng)初始化完成之后,自動模式下,當紙巾濕度小于干燥閾值時,通過OLED顯示屏可以觀察到水泵已經(jīng)成功開啟進行灌溉,如圖11所示,OLED顯示屏中土壤濕度為2%,干燥閾值為48%,過濕閾值為80%,水泵:開啟。
圖11 OLED顯示
當紙巾濕度大于干燥閾值,小于過濕閾值時,通過OLED顯示屏可以觀察到水泵已經(jīng)關(guān)閉停止灌溉,如圖12所示,OLED顯示屏中土壤濕度為65%,干燥閾值為48%,過濕閾值為80%,水泵:關(guān)閉。
圖12 OLED顯示
當紙巾濕度大于過濕閾值時,通過OLED顯示屏可以觀察到水泵已經(jīng)關(guān)閉停止灌溉,蜂鳴器指示燈亮起并發(fā)出警報,如圖13所示,OLED顯示屏中土壤濕度為99%,干燥閾值為48%,過濕閾值為80%,水泵:關(guān)閉。
圖13 OLED顯示
當灌溉模塊啟動之后,水泵通水,指示燈亮起,進行灌溉,如圖14所示。
圖14 進行灌溉
以上測試數(shù)據(jù)整理如表1所示。
表1 不同環(huán)境下的測試數(shù)據(jù)
對系統(tǒng)按鍵模塊進行測試,按下按鍵S1,模式已經(jīng)切換為手動,如圖15所示。
圖15 按鍵控制
再次按下按鍵S1,模式已經(jīng)切換為設(shè)置,按下S3或S4即可改變干燥閾值和過濕閾值,如圖16所示。
圖16 按鍵控制
經(jīng)過多次實驗測試,系統(tǒng)顯示和控制效果均達到預(yù)期,能夠穩(wěn)定運行,基本符合設(shè)計要求。
水資源的不合理利用、灌溉不及時、高人工費用等是當前傳統(tǒng)農(nóng)業(yè)灌溉中普遍存在的問題,本文提出了一種基于STM32智能灌溉系統(tǒng)的設(shè)計,與傳統(tǒng)的灌溉方法比較,能夠自動進行控制灌溉和環(huán)境監(jiān)測,擁有更低的人工費用、數(shù)據(jù)真實、運行穩(wěn)定等優(yōu)勢,讓土壤含水量始終保持在合適的水平,克服了傳統(tǒng)灌溉方法不能對灌區(qū)目前的土壤水分進行實時監(jiān)測、單靠人工進行灌溉決策、人工費用高、灌溉用水不能得到有效利用等問題。本設(shè)計用STM32F103C8T6單片機結(jié)合YL-69濕度傳感器、OLED顯示模塊、灌溉模塊、按鍵模塊等來共同完成,實現(xiàn)了通過按鍵可以改變自動、手動和設(shè)置三種模式的轉(zhuǎn)換,OLED實時顯示當前土壤濕度、水泵澆水狀態(tài)、模式、土壤干燥閾值和過濕閾值,自動模式下當土壤濕度小于干燥值時水泵自動澆水,當土壤濕度大于過濕閾值時聲光報警,手動模式通過按鍵控制水泵開關(guān),設(shè)置模式通過按鍵設(shè)置干燥閾值和過濕閾值來進行智能灌溉。