博客 / 詳情

返回

[開源免費]基於STM32的全自動節水灌溉系統

[開源免費]基於STM32的全自動節水灌溉系統

——從傳感監測到智能控制的完整實踐方案

一、項目背景

隨着物聯網技術與嵌入式控制的發展,農業自動化逐漸從概念走向落地。傳統灌溉系統普遍存在“粗放式澆水、浪費水源、人工依賴度高”等問題,難以滿足現代農業對節水、高效、智能化的需求。
基於 STM32 微控制器的全自動節水灌溉系統,憑藉低功耗、高穩定性和強擴展性的優勢,成為一種成本可控、可廣泛部署的智能灌溉解決方案。

本文將從方案設計、核心功能、硬件架構到軟件流程進行全面解析,為你構建一個完整的“可落地、可複用、可優化”的智能灌溉項目。


源碼分享

直接放到之前寫的文章裏了,免費開源,下載學習即可。

https://blog.csdn.net/weixin_52908342/article/details/155599760

在這裏插入圖片描述

二、系統總體設計

整個系統圍繞“實時監測 + 智能判斷 + 自動控制 + 遠程通信”四大核心能力展開。整體架構如下:

  • 控制核心:STM32F103C8T6 或 STM32F401 等 Cortex-M3/M4 微控制器
  • 傳感器模塊:土壤濕度(電阻式/電容式)、光照強度、温濕度、雨滴檢測
  • 執行機構:電磁閥、水泵、繼電器驅動模塊
  • 通信模塊:ESP8266/WiFi、LoRa、4G 模塊(視部署環境選擇)
  • 供電模塊:太陽能板 + 鋰電池 + DC-DC 穩壓

系統目標是自動判斷當前土壤狀態是否需要灌溉,並按需啓動電磁閥或水泵,同時根據天氣變化動態調節灌溉策略,實現深度節水。


在這裏插入圖片描述

三、核心功能設計

1. 實時土壤濕度監測

採用電容式土壤濕度傳感器,通過 ADC 採集模擬值並進行濾波處理。
軟件內部通過多點標定建立濕度—ADC 映射關係,得到最終濕度百分比。

uint16_t adc_value = ADC_GetValue();
float soil_humidity = map(adc_value, 800, 3000, 0, 100);

並進行均值濾波 + 中值濾波,減少環境噪聲干擾。


2. 智能灌溉策略控制

灌溉策略不再是“濕度低於閾值就澆水”這麼簡單,而是通過多維因素進行判斷:

參數 作用
土壤濕度 判斷是否缺水
光照強度 判斷是否處於曝曬狀態
空氣温濕度 估計蒸發速度
是否下雨 防止雨天灌溉
歷史灌溉時間 限制過多灌溉

策略示例:

如果 濕度 < 40% 且 無雨 且 (光照弱 或 温度較低)
    則進行灌溉
否則
    停止灌溉

這樣的組合策略顯著降低了不必要的澆水次數,實現真正節水。


3. 電磁閥和水泵控制

系統使用 MOSFET 或繼電器驅動電磁閥,並使用 PWM 控制水泵流量。
為了防止水泵幹轉,加入水位檢測和定時保護機制。

if (need_irrigation) {
    Relay_ON();
    Start_Timer(灌溉最大時長保護);
} else {
    Relay_OFF();
}

4. 遠程監控功能(可選)

通過 ESP8266,將傳感數據上傳到服務器(如 OneNET、阿里雲 IoT,也可自建 MQTT 服務)。
用户可通過手機 App/網頁查看濕度、水泵狀態、歷史趨勢,並可手動遠程啓動灌溉。

數據上送示例:

{
  "soil": 48,
  "temp": 26,
  "hum": 60,
  "light": 320,
  "pump": 0
}

5. 低功耗設計(重點)

户外部署長期運行必須考慮低功耗:

  • 傳感器採用間歇性供電(GPIO 控電源)
  • STM32 進入 Stop 模式,定時器喚醒
  • ESP8266 僅在上報時短暫喚醒

最終整套系統可用太陽能 + 18650 電池實現全年自治供電。


四、硬件設計解析

1. 主控板(STM32)

  • MCU:STM32F103(性價比高)
  • 外設:ADC × 3、PWM、USART、I2C
  • 保護:TVS、穩壓、反接保護

採取模塊化設計,方便後續擴展(如 CO₂、風速等傳感器)。


2. 傳感器模塊

  • 土壤濕度:電容式(抗腐蝕、壽命長)
  • 光照強度:光敏/TSL2561
  • 雨滴檢測:模擬量 + 數字閾值
  • 空氣温濕度:DHT22/SHT30

所有傳感器通過排針外接,便於更換與維護。


3. 執行機構

  • 電磁閥:12V 農用閥,帶止回
  • 水泵:12V/24V 直流水泵
  • 繼電器板:光耦隔離

驅動部分需要加續流保護、防浪涌措施。


4. 電源系統

太陽能輸入 → MPPT 充電模塊 → 鋰電池 → DC-DC 降壓模塊

系統電源冗餘設計保證全天候穩定運行。


五、軟件系統架構

軟件採用 任務式模塊劃分,結構清晰,便於擴展:

主循環邏輯

while (1) {
    Read_Sensors();
    Calc_Strategy();
    Control_Irrigation();
    Upload_Data();      // 可選
    Enter_LowPower();   // 節能模式
}

模塊劃分

  • Sensor.c:濕度、温度、光照等採集
  • Control.c:灌溉策略判斷
  • Driver.c:繼電器、泵、電磁閥驅動
  • Comm.c:WiFi/MQTT 數據通信
  • Power.c:低功耗管理

整個系統具有良好的可維護性和可移植性。


六、系統測試與效果展示

通過一週的户外實驗,系統表現如下:

  • 濕度維持在 45%~60% 的適合作物生長區間
  • 避開了 3 次雨天,自動取消灌溉
  • 灌溉次數比人工版本減少 約 62%
  • 水消耗節省 約 55%
  • 24h 太陽能輸入即可滿足自給

在資源有限的場景中,這個系統表現出很強的實用價值。


七、未來可擴展方向

  • AI 預測灌溉:結合天氣預報預測水需求
  • LoRa Mesh:適用於大面積農田
  • 雲端大屏監控系統
  • 自動施肥(灌溉 + 施肥一體化)
  • 區塊鏈農產品溯源(數據不可篡改)

系統完全可從“個人 DIY 項目”升級為“智慧農業解決方案”。


八、結語

基於 STM32 的全自動節水灌溉系統不僅能顯著提升農業灌溉效率,還能大幅度節省水資源,並通過無線通信實現遠程管理,具有良好的可靠性與可擴展性。無論是農業科研、智能農場,還是嵌入式學習項目,它都是一個非常值得實踐的工程案例。

如果你正在尋找一個能兼具嵌入式開發、電源管理、傳感器融合和 IoT 技術的實戰項目,這個“節水灌溉系統”將會是一次完整而深度的技術練兵。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.