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.
- VCC senzorja povežemo na 3.3V napajanje ESP32 plošče.
- GND senzorja povežemo na skupno maso (GND).
- AOUT (analogni izhod) senzorja povežemo na GPIO pin (npr. GPIO 34).
- 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.