Situatie
Acest sistem previne risipa de apă și supra-irigarea. Releul care controlează electrovalva de apă va porni doar dacă umiditatea solului este scăzută și dacă prognoza meteo online anunță șanse mici de ploaie în următoarele ore.
Solutie
Componente Hardware:
- Placă de dezvoltare: ESP32 cu Wi-Fi integrat.
- Actuator: Modul Releu de 5V (pentru a comuta alimentarea valvei).
- Hardware irigație: Electrovalvă de apă (de obicei 24V AC sau 12V DC) + adaptorul de alimentare corespunzător.
- Senzor: Senzor de umiditate a solului capacitiv (evită coroziunea).
Pasul 1: Conexiunile Hardware
- Senzorul de umiditate: Conectează pinii
VCCla 3.3V pe ESP32,GNDla GND, iar pinul de semnal analogic (AOUT) la pinulGPIO 34al ESP32. - Modulul Releu: Conectează
VCCla 5V (sau Vin),GNDla GND, iar pinul de control (IN) la pinulGPIO 26. - Electrovalva: Întrerupe firul de fază/pozitiv al alimentării electrovalvei și trece-l prin contactele
COM(Common) șiNO(Normally Open) ale releului.
Pasul 2: Obținerea Cheii API
Pentru a nu depinde de senzori externi de ploaie care se pot înfunda, folosim serviciul gratuit OpenWeatherMap.
- Intră pe site-ul OpenWeatherMap și creează un cont gratuit.
- Mergi la secțiunea API Keys și generează o cheie unică (un șir lung de litere și cifre).
- Notează-ți coordonatele geografice exacte ale grădinii tale (Latitudine și Longitudine) din Google Maps.
Pasul 3: Logica Scriptului
Folosind Arduino IDE (cu librăriile
WiFi.h, HTTPClient.h și ArduinoJson.h), codul va rula următoarea logică la intervale stabilite (ex. în fiecare dimineață la ora 06:00):- Conectare Wi-Fi: Placa se conectează la routerul casei.
- Citire Senzor: Verifică umiditatea actuală a solului. Dacă pământul este deja ud, sistemul se oprește aici (Somație: Nu e nevoie de apă).
- Interogare API: Dacă solul e uscat, ESP32 trimite o cerere HTTP către OpenWeatherMap:
http://openweathermap.org[LAT]&lon=[LON]&appid=[CHEIE_API]&cnt=4(verifică următoarele 12 ore). - Filtrare Date: Scriptul Parsează răspunsul JSON și caută parametrul
pop(Probability of Precipitation – Probabilitatea de precipitații) sau codurile de vreme (ploaie/furtună).
Pasul 4: Luarea deciziei și execuția
În codul încărcat pe placă, stabilim pragurile de decizie (if/else):
cpp
// Pseudocod aplicat în loop-ul principal
int umiditateSol = analogRead(34);
float sansaPloaie = extrageSansaPloaieDinJSON(); // Valoare între 0 și 1
if (umiditateSol < PRAG_USCAT && sansaPloaie < 0.50) {
// Dacă solul e uscat și șansa de ploaie e sub 50%
digitalWrite(26, HIGH); // Pornește releul (deschide apa)
delay(1800000); // Irigă timp de 30 de minute (1,8 milisecunde)
digitalWrite(26, LOW); // Oprește apa
} else {
digitalWrite(26, LOW); // Menține apa oprită (fie e ud, fie va ploua)
}
Pasul 5: Calibrarea și punerea în producție
- Calibrarea senzorului: Pune senzorul în pământ complet uscat și notează valoarea analogică citită în Serial Monitor. Repetă procesul în pământ proaspăt udat. Acestea vor fi limitele tale pentru
PRAG_USCAT. - Carcasa: Protejează electronica (ESP32 și releul) într-o doză de derivație cu protecție IP66 împotriva umezelii și stropilor de apă.
Leave A Comment?