Blog o spletnem programiranju in elektroniki
💬 👤
back Nazaj na blog
Arduino & Elektronika

Kako narediti pametno zalivanje vrta z ESP32 in WiFi

Avtomatsko zalivanje vrta ali sobnih rastlin je eden najbolj priljubljenih in praktičnih projektov z mikrokrmilnikom ESP32. Z uporabo senzorja vlage v zemlji in krmiljenjem vodne črpalke preko releja lahko rastlinam zagotovimo natančno količino vode takrat, ko jo res potrebujejo. V tem članku si bomo ogledali osnovni koncept delovanja, potrebno opremo in preprosto povezavo komponent.

Potrebne komponente za osnovni projekt

Za izdelavo delujočega prototipa avtomatskega zalivalnega sistema potrebujemo nekaj osnovnih elektronskih gradnikov.

Komponenta Uporaba Opomba
ESP32 Razvojna plošča Glavni mikrokrmilnik z WiFi povezavo Omogoča spremljanje stanja in nadzor preko omrežja
Kapacitativni senzor vlage Merjenje vlažnosti prsti Veliko boljša izbira kot uporovni senzorji (ne korodira)
Relejni modul (5V ali 3.3V) Vklop in izklop vodne črpalke Galvanska ločitev krmilnega dela od močnostnega
Vodna potopna črpalka Črpanje vode iz zbiralnika Običajno 5V ali 12V DC izvedba za male sisteme

Osnovna logika delovanja in povezava

Senzor vlažnosti v zemlji deluje tako, da na analognem izhodu spreminja napetost glede na vsebnost vode v prsti. ESP32 to napetost odčita preko ADC (Analog-to-Digital Converter) vhoda ter vrednost pretvori v digitalno število med 0 in 4095.

  1. VCC senzorja povežemo na 3.3V napajanje ESP32 plošče.
  2. GND senzorja povežemo na skupno maso (GND).
  3. AOUT (analogni izhod) senzorja povežemo na GPIO pin (npr. GPIO 34).
  4. Krmilni pin (IN) releja povežemo na izbrani digitalni izhod (npr. GPIO 26).

Primer kode za testiranje delovanja

Spodnja koda prikazuje preprost primer odčitavanja analogne vrednosti ter vklop releja za nekaj sekund, ko vlažnost pade pod nastavljeno mejo.

const int sensorPin = 34; // Analogni pin za senzor vlage
const int relayPin = 26; // Digitalni pin za upravljanje releja

// Nastavljena meja za suho zemljo (odvisno od kalibracije senzorja)
int thresholdValue = 2800; 

void setup() {
  Serial.begin(115200);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // Relej izklopljen ob zagonu (active LOW)
}

void loop() {
  int sensorValue = analogRead(sensorPin);
  Serial.print("Vrednost vlage v zemlji: ");
  Serial.println(sensorValue);

  if (sensorValue > thresholdValue) {
    // Zemlja je suha - vklopi črpalko za 5 sekund
    Serial.println("Zemlja je suha! Vklapljam zalivanje...");
    digitalWrite(relayPin, LOW); 
    delay(5000);
    digitalWrite(relayPin, HIGH);
  }

  delay(10000); // Preverjanje stanja vsakih 10 sekund
}

Razlika med prototipom in končnim izdelkom

Čeprav je ta preprost prototip odličen za učenje in razumevanje osnov elektronike, zahteva dolgotrajno delovanje na vrtu veliko več. Za zanesljiv sistem v praksi potrebujemo zaščito črpalke pred delovanjem na suho, napredno kalibracijo glede na tip prsti, vodoodporno ohišje, stabilno napajanje ter povezavo s spletnim vmesnikom za nastavljanje urnikov.

back Nazaj na blog