蔡程飛 張彬 黃興平 帥小應(yīng) 宋欣璐
摘要:文章設(shè)計(jì)了一種全天候自動監(jiān)測和自動控制澆水的智能灌溉系統(tǒng)。本系統(tǒng)可以有效減輕小型農(nóng)田農(nóng)民在農(nóng)作物生長期間進(jìn)行人工巡檢和繁重澆水工作的勞動強(qiáng)度。通過使用STM32單片機(jī),采用液位傳感器、土壤濕度傳感器等設(shè)備來收集環(huán)境參數(shù),如環(huán)境濕度、環(huán)境溫度和土壤濕度等數(shù)據(jù)。通過對這些數(shù)據(jù)進(jìn)行分析處理來控制澆水設(shè)備的啟停,以達(dá)到最佳澆水效果。如果農(nóng)作物需要澆水,本系統(tǒng)將自動啟動灌溉設(shè)備并澆灌適量的水,然后對各個(gè)傳感器進(jìn)行數(shù)據(jù)采集,并通過Wi-Fi傳輸更新用戶平臺的數(shù)據(jù)。灌溉過程中,當(dāng)農(nóng)作物生長環(huán)境處于理想狀態(tài)時(shí),系統(tǒng)會停止自動澆水,從而節(jié)省了農(nóng)作的時(shí)間和農(nóng)民的體力消耗。另外,基于小型農(nóng)田的土地分散、土地使用權(quán)轉(zhuǎn)讓頻繁的現(xiàn)實(shí)情況,本系統(tǒng)使用的設(shè)備具有可移動性較強(qiáng)、投資成本低、負(fù)擔(dān)小、后期維護(hù)費(fèi)用較少等特點(diǎn),具有廣泛的應(yīng)用推廣價(jià)值。
關(guān)鍵詞:STM32;傳感器;灌溉器;Wi-Fi通信
中圖分類號:TP301.6 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2024)10-0001-04
0 引言
傳統(tǒng)的灌溉系統(tǒng)[1-2]通常存在水量過度使用、低效率等問題。這不僅浪費(fèi)水資源,還可能降低農(nóng)作物產(chǎn)量和品質(zhì)。土壤濕度過高會直接或間接影響農(nóng)作物的生長,例如導(dǎo)致土壤中的鹽分積累,進(jìn)而影響農(nóng)作物的生長和發(fā)育。在嚴(yán)重情況下,這可能導(dǎo)致土地鹽堿化,完全無法種植。因此,發(fā)展智能灌溉系統(tǒng),通過運(yùn)用傳感器、控制器、數(shù)據(jù)分析等技術(shù)手段,實(shí)現(xiàn)精準(zhǔn)水分配和定向灌溉,可以最大限度地節(jié)約水資源,并提高農(nóng)業(yè)生產(chǎn)效率和經(jīng)濟(jì)效益,緩解水資源短缺等問題。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)采用STM32芯片作為主控單元,結(jié)合環(huán)境溫濕度傳感器模塊,能夠?qū)崿F(xiàn)一個(gè)適合農(nóng)田的監(jiān)測控制灌溉系統(tǒng)。系統(tǒng)可在液晶顯示屏上顯示傳感器實(shí)時(shí)數(shù)據(jù),并通過Wi-Fi模塊上傳至云端,具備實(shí)時(shí)監(jiān)控的功能,方便用戶實(shí)時(shí)查看數(shù)據(jù)。系統(tǒng)的硬件組成框圖如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
該系統(tǒng)由多個(gè)模塊構(gòu)成,包括主控模塊、濕度傳感器模塊、溫度傳感器模塊、繼電器模塊、液晶顯示屏模塊、Wi-Fi模塊和供電模塊等。其中,主控模塊采用STM32單片機(jī),用于控制整個(gè)系統(tǒng)的運(yùn)行。土壤濕度傳感器模塊YL-69 和環(huán)境溫濕度傳感器模塊DHT11分別用于檢測土壤和環(huán)境的濕度、溫度。繼電器模塊srd-05vdc-sl-c可控制灌溉模塊的工作狀態(tài)。液晶顯示屏模塊可以顯示環(huán)境濕度和溫度信息以及灌溉狀態(tài)等信息。Wi-Fi模塊可實(shí)現(xiàn)無線通信,連接手機(jī)終端可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控或控制。供電模塊則為整個(gè)系統(tǒng)提供電源支持。
2.1 主控制器模塊設(shè)計(jì)
主控制器模塊采用STM32F1系列芯片,芯片的內(nèi)部采用ARM公司設(shè)計(jì)的32位Cortex-M3處理器,該處理器基本結(jié)構(gòu)如圖2所示。
2.2 環(huán)境溫濕度檢測模塊設(shè)計(jì)
DHT11傳感器為數(shù)字型傳感器,無須進(jìn)行A/D轉(zhuǎn)換,DHT11 傳感器的信號引腳可直接與單片機(jī)的GPIO相連,數(shù)據(jù)信號用STM32 芯片的PB3 采集。由于DHT11傳感器輸出的數(shù)字信號非常微弱,需要采用一個(gè)上拉電阻連接到3.3 V 電源提高信號強(qiáng)度,將DHT11信號引腳通過一個(gè)約為4.7 KΩ的上拉電阻連接到3.3 V電源引腳上,再連接到STM32芯片PB3引腳上,實(shí)現(xiàn)DHT11傳感器采集電路的硬件連接。
2.3 土壤濕度傳感器模塊設(shè)計(jì)
土壤濕度傳感器模塊YL-69采用三線制接法,其中DO引腳為數(shù)字量輸出接口,AO引腳為模擬量輸出接口,電源VCC支持3.3~5 V電壓供電,GND引腳接地。模塊的DO引腳連接到STM32芯片的GPIO引腳,通過主控制模塊檢測DO引腳上的高低電平,來測算土壤濕度。硬件連接為:1)4腳為VCC,外接3.3 V電源;2)3 腳為GND,外接GND;3)2 腳為DO,外接STM32芯片的PB5引腳,采集傳感器的數(shù)字量(0或1),當(dāng)土壤濕度低于設(shè)定閾值時(shí),該接口會輸出高電平1,而當(dāng)土壤濕度高于設(shè)定閾值時(shí)則輸出低電平0。
2.4 Wi-Fi 模塊設(shè)計(jì)
Wi-Fi模塊與STM32芯片通過UART串口進(jìn)行通信。UART串口的通信原理為:Wi-Fi模塊的TX引腳連接到STM32芯片的RX引腳,而Wi-Fi模塊的RX引腳連接到STM32芯片的TX引腳,實(shí)現(xiàn)雙向通信。在軟件層面上,STM32芯片需要配置UART串口的波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)位等參數(shù),以便與Wi-Fi模塊進(jìn)行通信。
3 終端應(yīng)用設(shè)計(jì)
3.1 主流程設(shè)計(jì)
基于STM32設(shè)計(jì)的智能灌溉系統(tǒng)在運(yùn)行時(shí)先進(jìn)行各個(gè)模塊的初始化操作[3]。系統(tǒng)通過傳感器來收集環(huán)境濕度、溫度、土壤濕度等數(shù)據(jù),并對收集的數(shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算分析。根據(jù)計(jì)算處理結(jié)果來控制灌溉設(shè)備的啟停,以達(dá)到最佳的澆水效果。如果植物需要澆水,系統(tǒng)將自動啟動灌溉設(shè)備,澆灌適量的水,同時(shí)對各個(gè)傳感器進(jìn)行數(shù)據(jù)采集,并將收集到的數(shù)據(jù)進(jìn)行監(jiān)測,通過互聯(lián)網(wǎng)更新用戶平臺數(shù)據(jù)。具體流程如圖3所示。
3.2 環(huán)境溫濕度采集流程
智能灌溉系統(tǒng)的溫濕度采集模塊的運(yùn)行流程包括初始化傳感器、讀取傳感器數(shù)據(jù)、處理數(shù)據(jù)、根據(jù)數(shù)據(jù)判斷、控制執(zhí)行和程序循環(huán)等步驟。通過這些步驟,系統(tǒng)可以實(shí)現(xiàn)對環(huán)境溫濕度的精確監(jiān)測。在程序運(yùn)行前需要初始化傳感器。在傳感器采集數(shù)據(jù)后,讀取傳感器數(shù)據(jù)并進(jìn)行數(shù)值轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)值發(fā)送到顯示屏,同時(shí)對數(shù)值進(jìn)行判斷。超出預(yù)設(shè)值則需要進(jìn)行信號燈的提醒控制,在溫度下降后關(guān)閉信號燈,并且再次循環(huán)上述流程。環(huán)境溫濕度采集流程如圖4所示。
3.3 灌溉模塊流程
灌溉前,需要通過傳感器等設(shè)備獲取環(huán)境參數(shù),包括環(huán)境溫度、環(huán)境濕度、土壤濕度等。這些參數(shù)可以作為參考標(biāo)準(zhǔn),幫助系統(tǒng)判斷是否需要進(jìn)行灌溉,以及灌溉量的大小。根據(jù)環(huán)境參數(shù)和預(yù)設(shè)的灌溉模式,系統(tǒng)會通過一定的算法判斷是否需要進(jìn)行灌溉。如果環(huán)境參數(shù)超出預(yù)設(shè)的范圍,或土壤濕度低于設(shè)定的水分閾值,就會觸發(fā)灌溉程序。如果系統(tǒng)判斷需要進(jìn)行灌溉,控制器就會向繼電器發(fā)送控制信號,將水源中的水抽入灌溉系統(tǒng)中。當(dāng)水泵啟動后,水會通過管道輸送到不同的噴頭或滴灌帶上進(jìn)行灌溉。在灌溉過程中,系統(tǒng)會根據(jù)設(shè)定的灌溉模式、灌溉時(shí)間、水量等參數(shù),進(jìn)行智能控制,確保灌溉的效率和水量的合理分配。在灌溉過程中,系統(tǒng)會實(shí)時(shí)監(jiān)控灌溉的情況,包括土壤濕度、水位、灌溉時(shí)間等。一旦發(fā)現(xiàn)異常,系統(tǒng)會自動停止灌溉,并發(fā)出警報(bào)。當(dāng)灌溉時(shí)間到達(dá)預(yù)設(shè)的時(shí)間或水量達(dá)到設(shè)定的標(biāo)準(zhǔn)后,系統(tǒng)會自動關(guān)閉水泵,結(jié)束灌溉。同時(shí),灌溉模塊會將灌溉過程中的信息和數(shù)據(jù)記錄下來,以便后續(xù)的數(shù)據(jù)分析和優(yōu)化。灌溉模塊運(yùn)行流程如圖5所示。
3.4 Wi-Fi 模塊流程
在程序開始運(yùn)行時(shí),需要對ESP8266 進(jìn)行初始化[4]。通過AT指令或者編程的方式連接Wi-Fi網(wǎng)絡(luò),需要設(shè)置Wi-Fi名稱和密碼。連接成功后可以獲取IP 地址,設(shè)置串口波特率、連接Wi-Fi 網(wǎng)絡(luò)、設(shè)置IP 地址等。指定服務(wù)器的IP地址和端口號,使用TCP 或者UDP協(xié)議連接到服務(wù)器。獲取發(fā)送給服務(wù)器的傳感器數(shù)據(jù)或者控制指令,以及服務(wù)器接收數(shù)據(jù),包括灌溉時(shí)間、傳感器數(shù)據(jù)等,將獲取的數(shù)據(jù)進(jìn)行處理發(fā)送。
4 系統(tǒng)功能測試
4.1 程序運(yùn)行
程序使用hal庫以簡化搭建嵌入式系統(tǒng)的開發(fā)工作。使用hal庫可以輕松地訪問設(shè)備的底層硬件接口,同時(shí)兼容各個(gè)操作系統(tǒng)和編譯器。這種模塊化設(shè)計(jì)提高了系統(tǒng)的可移植性。從上到下依次是按鍵、LED燈、顯示屏、延時(shí)函數(shù)、溫濕度傳感器的配置代碼。通過在主函數(shù)初始化完成后,循環(huán)調(diào)用按鍵、LED燈、顯示屏、延時(shí)函數(shù)、溫濕度傳感器,土壤濕度傳感器的配置代碼實(shí)現(xiàn)系統(tǒng)多任務(wù)處理。在STM32 芯片的代碼中使用GPIO控制傳感器。對用于連接傳感器的GPIO口進(jìn)行配置,設(shè)置為輸入模式,并使能其上拉電阻。然后,通過對傳感器的信號引腳上下拉鉗位,發(fā)送給傳感器啟動信號,之后讀取傳感器的響應(yīng)信號,并讀取傳感器數(shù)值。
首先,根據(jù)土壤濕度傳感器電位器設(shè)置的閾值,讀取PB15引腳的電平,判斷是否開啟灌溉,低電平時(shí)設(shè)置繼電器控制引腳為高電平,驅(qū)動繼電器吸合打開,反之設(shè)置繼電器關(guān)閉。在結(jié)構(gòu)體Water_GPIO_Init()中初始化土壤濕度傳感器連接的PB5引腳。其次,初始化傳感器。使用DHT庫的read()函數(shù)讀取傳感器數(shù)據(jù)。該函數(shù)返回一個(gè)狀態(tài)值,表示讀取是否成功。如果讀取成功,使用DHT庫的humidity和temperature 函數(shù)獲取濕度和溫度數(shù)據(jù)。獲取濕度和溫度數(shù)據(jù)后,可以對其進(jìn)行處理。將數(shù)據(jù)輸出到串口,或者將其存儲到變量中,用于后續(xù)的判斷和控制。根據(jù)讀取到的數(shù)據(jù),執(zhí)行相應(yīng)的控制操作。在程序的最后,需要進(jìn)行循環(huán),不斷讀取傳感器數(shù)據(jù),并根據(jù)數(shù)據(jù)進(jìn)行實(shí)時(shí)判斷和控制。
4.2 配置入網(wǎng)
支持兩種模式配置入網(wǎng):SoftAp和AirLink[5]。使用gizwitsSetMode()接口可以設(shè)置入網(wǎng)方式,而當(dāng)前系統(tǒng)采用的是AirLink模式。在這種模式下,設(shè)備會持續(xù)接收特定編碼的Wi-Fi廣播包。當(dāng)用戶連接可用的Wi-Fi網(wǎng)絡(luò)后,使用機(jī)智云App發(fā)送編碼后的Wi-Fi網(wǎng)絡(luò)SSID和密碼信息。
4.3 運(yùn)行測試
土壤濕度傳感器測試:PWR_LED檢測已插好電源,DO_LED亮起表示濕度達(dá)到或大于閾值,如圖6 (a) 所示。反之則熄滅,如圖6(b)所示,調(diào)整電位器,可調(diào)整濕度預(yù)設(shè)值。
液位傳感器測試:浮球下降,如圖7(a)所示,水泵接收信號后自動關(guān)閉,如圖7(b)所示,達(dá)到保護(hù)設(shè)備的作用。
4.4 整體測試
系統(tǒng)整體測試需要滿足以下幾個(gè)結(jié)果,如表1 所示。
4.5 設(shè)備運(yùn)行記錄
通信日志記錄設(shè)備主動上報(bào)的數(shù)據(jù),每隔一段時(shí)間,設(shè)備會自動向服務(wù)器發(fā)送采集到的數(shù)據(jù),比如環(huán)境溫濕度、指示燈與水泵的開關(guān)狀態(tài)。監(jiān)測設(shè)備[6]的正常運(yùn)行,以便及時(shí)發(fā)現(xiàn)異常情況并采取措施。通信日志如圖8所示。
5 結(jié)束語
系統(tǒng)經(jīng)過集成測試,智慧灌溉系統(tǒng)的硬件連接正確,各個(gè)模塊可以正常工作。程序在軟件開發(fā)環(huán)境下仿真正確,程序燒錄后各傳感器,環(huán)境溫濕度傳感器、土壤濕度傳感器、液位傳感器可以正常采集環(huán)境參數(shù)并上傳,手機(jī)端可以正確連接網(wǎng)絡(luò)且可以使用,PC端可以查看運(yùn)行日志,繼電器、水泵等元器件也可以及時(shí)響應(yīng)。本系統(tǒng)需要實(shí)現(xiàn)的功能經(jīng)過測試均能正常工作。本系統(tǒng)依據(jù)小型農(nóng)田現(xiàn)狀,設(shè)計(jì)了利用現(xiàn)代技術(shù)、傳感器和控制技術(shù)實(shí)現(xiàn)的自動化水域澆灌管理系統(tǒng)。其主要目的是實(shí)現(xiàn)自動智能化的水域澆灌,避免人工操作過程中出現(xiàn)的疏漏和浪費(fèi),提高農(nóng)作物的成活率、增加產(chǎn)量、節(jié)約水源的用量以及降低軟硬件和人工的管理成本、提高效率。
參考文獻(xiàn):
[1] 孫鳳霞.淺談節(jié)水灌溉農(nóng)業(yè)中計(jì)算機(jī)的應(yīng)用[J].消費(fèi)導(dǎo)刊,2008(4):188.
[2] 李洪濤,王曉晶.基層節(jié)水灌溉技術(shù)推廣中存在的問題以及改善措施[J].科技傳播,2013,5(21):135,102.
[3] 張守艷,宗峰.基于物聯(lián)網(wǎng)技術(shù)的水肥一體化智能灌溉系統(tǒng)設(shè)計(jì)[J]. 電子測試,2022(19):30-32,11.
[4] 管嘉誠,李曉烽,黃志芳,等.基于ESP8266與機(jī)智云的物聯(lián)網(wǎng)智能家居[J].物聯(lián)網(wǎng)技術(shù),2023,13(3):140-142.
[5] 程章翔,辛元芳,姚勇,等.基于NB-IoT的智能灌溉系統(tǒng)設(shè)計(jì)[J].集成電路應(yīng)用,2021,38(6):32-44.
[6] 曲頌,劉玉敏,宋博,等.自動灌溉控制器設(shè)計(jì)與實(shí)現(xiàn)[J].黑龍江大學(xué)工程學(xué)報(bào),2021,12(4):72-77.
【通聯(lián)編輯:梁書】