蔡程飛 張彬 黃興平 帥小應 宋欣璐



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