• 方案介紹
  • 附件下載
  • 相關推薦
申請入駐 產業(yè)圖譜

基于ESP32的灌溉系統

2024/10/21
4514
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

聯系方式.txt

共1個文件

精準灌溉優(yōu)化與高效水資源利用:基于IoT的農業(yè)解決方案

引言

傳統農業(yè)實踐缺乏實時監(jiān)控和高效操作,導致效率低下和產量不高。本項目旨在利用物聯網(IoT)技術和低成本通信協議,設計一個解決方案來解決這一問題。提出的解決方案將集成實時監(jiān)測農業(yè)田地數據和天氣條件,通過Wi-Fi、蜂窩接入和長距離通信協議進行數據傳輸。目標是通過灌溉實踐、自動化病蟲害管理、牲畜監(jiān)測、車輛跟蹤、田地、動物和鳥類軌跡以及庫存監(jiān)測等各種任務,提高操作效率和產量水平。

在這里插入圖片描述

在這里插入圖片描述

解決方案概述

本解決方案基于IoT技術,允許通過蜂窩通信協議遠程執(zhí)行所有這些必要任務。此外,將結合機器學習(ML)技術和圖像處理技術,以維持田間三種植物養(yǎng)分的比例:氮(N)、磷(P)和鉀(K)。目標是設計一個可持續(xù)的IoT解決方案,使傳統農業(yè)實踐更加便捷和高效。

硬件和軟件需求

硬件需求:

  1. ESP32微控制器(WROOM)x 2
  2. SX1278 LoRa模塊(Ra-02 433 MHz)x 2
  3. DHT-11溫度傳感器 x 1
  4. 土壤濕度傳感器 x 1
  5. 繼電器模塊(5V)x 1
  6. 12V直流水泵 x 1
  7. LED(演示用途,代替水泵)x 1
  8. 面包板 x 1
  9. 跳線 x 15

軟件需求:

  1. Arduino IDE(ESP32編程)
  2. Fritzing(電路設計
  3. HTML
  4. CSS
  5. Javascript
  6. Bootstrap
  7. Flask

系統架構

在這里插入圖片描述

系統架構主要分為兩個部分:

  1. 農場現場部署
  2. 農民家庭設置

農場現場:

在這里插入圖片描述

  • 農場由一系列傳感器組成,用于監(jiān)測與土壤濕度和溫度相關的參數。
  • 傳感器連接到農場現場的微控制器ESP32。所有由傳感器收集和感知的數據首先在該ESP32上觀察。
  • ESP32然后將數據發(fā)送到LoRa發(fā)送器模塊(RA-02),使用SPI通信協議。
  • LoRa然后以相同的頻率(433 MHz)傳輸這些數據到接收器模塊,準備接收數據。
  • ESP32還連接到田間的噴灌機制,以便根據接收到的數據進行分析來調節(jié)和控制電機泵。

農民家庭:

在這里插入圖片描述

  • 從農場現場傳輸的數據由農民家中的LoRa接收器接收,距離約15公里,數據損失不大。
  • 接收器LoRa模塊然后將這些數據傳輸到農民家中連接到互聯網的ESP32。
  • 家用ESP32充當Web服務器,收集并推送傳入數據到本地托管的Flask網站,并使用AJAX進行實時數據上傳和實時數據顯示。
  • 它還幫助存儲和監(jiān)測數據。

電子設置

在這里插入圖片描述

本節(jié)展示了使項目運行所需的整體電子設置。左側系統由農場現場的組件組成,LoRa模塊建立了低成本和長距離通信,通信頻率為433 MHz。右側系統部署在農民家中,負責接收數據并將其推送到本地托管的ESP32 Web服務器,并在網站上實時顯示數據。

編程實現

編程部分分為四個主要方面:

  1. 發(fā)送器
  2. 接收器
  3. 實時網站顯示
  4. 用于水泵執(zhí)行的基于ML的模型

發(fā)送器代碼:

在這里插入圖片描述

該代碼旨在讀取DHT11溫度和濕度傳感器以及土壤濕度傳感器的數據,然后使用LoRa收發(fā)器無線傳輸讀數。代碼包括必要的庫,定義引腳,設置函數和循環(huán)函數,用于初始化串行監(jiān)視器,DHT11傳感器和LoRa收發(fā)器模塊,并在433 MHz頻率下開始LoRa通信。

ESP32 --------------------------- Lo-Ra

GND ------------------------- GND

3.3V -------------------------- VCC

GPIO5 -------------------------- NSS

GPIO23 -------------------------- MOSI

GPIO19 -------------------------- MISO

GPIO18 -------------------------- SCK

GPIO14 -------------------------- RST

GPIO2 -------------------------- DIO0

接收器代碼:

在這里插入圖片描述

該代碼旨在接收LoRa發(fā)射器的傳感器數據,根據水泵狀態(tài)控制LED,并提供Web界面以顯示傳感器數據和水泵狀態(tài)。代碼包括必要的庫,定義引腳和變量,設置函數和循環(huán)函數,用于處理Web服務器的傳入客戶端請求,控制LED以及解析傳入的LoRa數據包。

ESP32 --------------------------- Lo-Ra

GND ------------------------- GND

3.3V -------------------------- VCC

GPIO5 -------------------------- NSS

GPIO23 -------------------------- MOSI

GPIO19 -------------------------- MISO

GPIO18 -------------------------- SCK

GPIO14 -------------------------- RST

GPIO2 -------------------------- DIO0

ML管道預測:

在這里插入圖片描述

在這里插入圖片描述

主要目標是使用基于ML的方法根據從農場現場接收到的實時傳感器數據打開和關閉水泵。它為我們提供了一個ML模型,該模型可以轉換為ONNX格式,并用于執(zhí)行必要的執(zhí)行。

實時網站數據顯示:

在這里插入圖片描述

在這里插入圖片描述

Python代碼使用Flask創(chuàng)建Web應用程序,根據傳感器數據預測水泵狀態(tài)和土壤濕度,使用ONNX模型進行推理。

運行項目

在這里插入圖片描述

項目設置現已準備就緒,包括電子和編碼方面。現在可以一次性運行整個項目。按照以下順序運行項目:

  1. 首先打開Arduino IDE,然后運行第一個代碼文件LoRa_Sender.ino。
  2. 一旦服務器運行,就在另一個ESP32上運行LoRa_Receiver.ino代碼。
  3. 完成數據傳輸和接收后,記下您的ESP32服務器ID。
  4. 將此ID輸入app.py文件,最后運行Flask應用程序以在網站上查看和顯示數據。

希望這篇博文能幫助你了解如何使用IoT技術優(yōu)化精準灌溉和高效水資源利用。如果你有任何問題或想要分享你的項目,請在評論區(qū)留言。讓我們在農業(yè)科技的世界里一起探索和創(chuàng)新吧!

希望你喜歡這個項目,并在構建過程中找到樂趣!如果你有任何問題或需要幫助,歡迎在評論區(qū)交流。

作者:Svan.


注意:本博文為不得在未經本人同意進行轉載或者二次創(chuàng)作,違者必究!??!

博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關資料實物的友友請關注、點贊,私信吧!

  • 聯系方式.txt
    下載

相關推薦