W przeciętnym domowym ogrodzie zraszacz uruchamiany ręcznie zużywa 40-60% więcej wody niż system reagujący na wilgotność gleby. Komercyjne sterowniki nawadniania zaczynają się od 800 zł, a wersja z czujnikiem wilgotności i WiFi to wydatek 1 500-2 500 zł. Ten sam efekt osiągniesz, budując własny kontroler na Arduino lub ESP32 za 150-180 zł - z opcją rozbudowy o sterowanie ze smartfona za kolejne 30-40 zł.
Poniżej znajdziesz kompletny tutorial krok po kroku: pełną listę zakupów (BOM), schemat elektroniczny, kalibrację czujnika kapacytancyjnego, gotowy szkielet kodu z hysterezą oraz wskazówki dotyczące zasilania i obudowy zewnętrznej IP54.
1. Co potrzebujesz? Pełna lista zakupów (BOM)
Komplet komponentów dla wersji jednostrefowej. Wszystkie elementy znajdziesz w naszych kategoriach - linki przy każdej pozycji.
|
Komponent |
Specyfikacja |
Cena (PLN) |
Kategoria |
|
Arduino Nano lub ESP32-WROOM-32 |
mikrokontroler, USB-C / micro-USB |
25-40 |
|
|
Czujnik wilgotności gleby |
kapacytancyjny v2.0, wyjście analogowe (0-3 V) |
8-15 |
|
|
Moduł przekaźnika 1-kanałowy |
5 V z optoizolacją, styki 250 VAC / 10 A |
6-10 |
|
|
Elektrozawór 12 V DC |
przyłącze 1/2" lub 3/4", typ NC |
35-55 |
|
|
Zasilacz 12 V DC |
1-2 A, wtyk DC 5,5 / 2,1 mm |
18-30 |
|
|
Przetwornica step-down LM2596 |
12 V → 5 V, prąd do 2 A |
5-8 |
|
|
Przewody jumper i kabel |
jumper M-F / M-M; YDY 2 × 1,5 mm² |
10-20 |
|
|
Obudowa hermetyczna IP54 |
100 × 68 × 50 mm, 2 dławiki PG7 |
15-25 |
|
|
Złączki WAGO 222 |
3-pin, do połączenia obwodu 12 V |
6-10 |
Suma minimalna: 128 zł • Suma realistyczna: 180 zł.
Dla systemu 4-strefowego dolicz: 3 dodatkowe elektrozawory × 35-55 zł oraz wymianę modułu 1-kanałowego na moduł przekaźnika 4-kanałowy (15-18 zł zamiast 6-10 zł). Całkowity koszt instalacji 4-strefowej: 350-450 zł - ok. 20% ceny komercyjnego odpowiednika.
2. Schemat elektroniczny - jak to wszystko połączyć?
Logika obwodu jest prosta: Arduino mierzy napięcie z czujnika wilgotności, porównuje z progiem i steruje stanem przekaźnika, który podaje 12 V na cewkę elektrozaworu.
Tabela podłączeń (Arduino Nano)
|
Element |
Pin Arduino |
Opis |
|
Czujnik wilgotności - VCC |
3,3 V |
zasilanie elektroniki czujnika |
|
Czujnik wilgotności - GND |
GND |
masa wspólna |
|
Czujnik wilgotności - AOUT |
A0 |
wyjście analogowe (0-1023 ADC) |
|
Moduł przekaźnika - VCC |
5 V |
zasilanie cewki przekaźnika |
|
Moduł przekaźnika - GND |
GND |
masa wspólna |
|
Moduł przekaźnika - IN |
D7 |
sterowanie (active-LOW) |
|
Elektrozawór - plus 12 V |
przekaźnik COM |
wejście styków mocy |
|
Elektrozawór - minus |
przekaźnik NO |
normalnie otwarte (zamyka się przy załączeniu) |
Trzy krytyczne zasady montażu
-
Wspólna masa (GND) Arduino, modułu przekaźnika i zasilacza 12 V musi być fizycznie połączona. Brak wspólnej masy = przypadkowe załączanie zaworu i niestabilne odczyty czujnika.
-
Optoizolacja w module przekaźnika oddziela elektrycznie obwód cewki od logiki Arduino. Zabezpiecza mikrokontroler przed impulsem indukcyjnym z elektrozaworu (do 70 V w momencie wyłączania cewki).
-
Dioda zwrotna (1N4007 lub szybka 1N4148) równolegle do cewki elektrozaworu eliminuje impulsy odwrotne. W większości elektrozaworów 12 V dioda jest już wbudowana - sprawdź w karcie katalogowej. Dla 24 V AC dioda nie zadziała - używasz wtedy warystora MOV 39 V.
Szczegółowy dobór modułu przekaźnikowego (5 V vs 3,3 V dla ESP32, izolacja, dobór do prądu cewki) opisaliśmy w artykule Przekaźniki - jak dobrać (cz. 12).
3. Dobór czujnika wilgotności gleby - kapacytancyjny vs rezystancyjny
Na rynku dostępne są dwa typy czujników wilgotności: rezystancyjne (z dwoma metalowymi widełkami) i kapacytancyjne (z płaską płytką PCB pokrytą lakierem). Różnica w trwałości i dokładności jest dramatyczna.
|
Cecha |
Rezystancyjny (HL-69) |
Kapacytancyjny v2.0 |
|
Cena |
3-6 zł |
8-15 zł |
|
Korozja elektrod |
TAK - żywotność 2-6 mies. |
NIE - elektrody w lakierze |
|
Wpływ zasolenia gleby |
Wysoki (zafałszowanie pomiaru o 15-30%) |
Pomijalny |
|
Stabilność długoterminowa |
Niska - widoczny dryft po 60 dniach |
Wysoka - stabilność > 24 mies. |
|
Pobór prądu |
35 mA |
5 mA |
|
Napięcie pracy |
3,3 - 5 V |
3,3 - 5 V |
|
Zalecenie do ogrodu |
NIE |
TAK |
Werdykt: kup kapacytancyjny v2.0 (Soil Moisture Sensor v2.0). Różnica 5-9 zł zwraca się po 3 miesiącach - nie będziesz wymieniać czujnika co sezon.
Kalibracja czujnika kapacytancyjnego (5 minut)
Wartości ADC z czujnika kapacytancyjnego są odwrócone w stosunku do intuicji - im więcej wody, tym niższe napięcie i niższa wartość ADC.
-
Powietrze (0% wilgotności) - włóż czujnik do suchego powietrza, odczytaj ADC. Typowo: 520-620.
-
Woda (100% wilgotności) - zanurz czujnik w szklance wody do linii oznaczonej na PCB. Typowo: 240-300.
-
Zapisz dwie wartości jako stałe AIR_VALUE i WATER_VALUE w kodzie.
-
Mapuj na procenty funkcją map(adc, AIR_VALUE, WATER_VALUE, 0, 100).
Każdy egzemplarz ma minimalnie inne wartości graniczne - kalibracja jest obowiązkowa. Powtarzaj ją co 6 miesięcy - starzenie lakieru ochronnego przesuwa próg o 20-40 punktów ADC w górę.
Pełną ofertę czujników wilgotności (kapacytancyjnych, rezystancyjnych, profesjonalnych z wyjściem 4-20 mA) znajdziesz w naszej kategorii /czujniki.
4. Sterowanie elektrozaworem przez przekaźnik
Elektrozawory ogrodowe pracują przy 12 V DC (tani DIY) lub 24 V AC (profesjonalne, np. Hunter, Rain Bird). Pin Arduino dostarczy maksymalnie 40 mA przy 5 V - elektrozawór wymaga 300-500 mA przy 12 V. Bezpośrednie podłączenie spali mikrokontroler.
Dlaczego przekaźnik, a nie tranzystor MOSFET?
-
Przekaźnik z optoizolacją galwanicznie odcina obwód mocy od logiki - w razie zwarcia w elektrozaworze nie uszkodzi Arduino.
-
Tranzystor MOSFET wymaga starannego doboru bramki (logic-level, np. IRLZ44N), rezystora pull-down 10 kΩ i diody zwrotnej. Dla początkującego: moduł przekaźnikowy gotowy do podłączenia w 30 sekund.
-
Przekaźnik radzi sobie z elektrozaworami AC i DC (ważne, jeśli kiedyś podłączysz starszą instalację 24 V AC).
Parametry typowego modułu przekaźnikowego 1-kanałowego z optoizolacją
|
Parametr |
Wartość |
|
Napięcie sterowania |
5 V (lub 3,3 V dla ESP32) |
|
Prąd cewki |
ok. 70 mA |
|
Maks. obciążenie styków |
250 VAC / 10 A • 30 VDC / 10 A |
|
Logika sterowania |
active-LOW (LOW = załączone) |
|
Czas przełączania |
5-10 ms |
|
Trwałość mechaniczna |
100 000 cykli |
|
Trwałość elektryczna |
10 000 cykli przy obciążeniu znamionowym |
Kalkulacja żywotności: przy 4 podlewaniach dziennie i sezonie 6 miesięcy/rok = 720 cykli rocznie. Trwałość mechaniczna 100 000 cykli oznacza 138 lat teoretycznej pracy. W praktyce żywotność ogranicza wilgoć w obudowie - dlatego warto wybrać IP54+.
Pełen przewodnik po doborze przekaźników (kanałowość, izolacja, dobór do prądu cewki) znajdziesz w naszej kategorii /przekazniki oraz w artykule Przekaźniki - jak dobrać (cz. 12).
5. Kod Arduino (szkielet)
Poniżej kompletny szkielet z hysterezą (zapobiega przełączaniu zaworu w kółko, gdy wilgotność oscyluje wokół progu) i timerem na millis() zamiast delay() - Arduino nie blokuje się podczas podlewania i może równolegle obsługiwać kolejne strefy lub komunikację UART.
// Inteligentne nawadnianie ogrodu - szkielet
// Wersja: 1.0 (Arduino Nano / Uno)
const int PIN_SOIL = A0; // czujnik wilgotnosci
const int PIN_RELAY = 7; // sterowanie przekaznikiem (active-LOW)
// Wartosci po kalibracji (zob. sekcja 3)
const int AIR_VALUE = 580; // sucho (0%)
const int WATER_VALUE = 270; // mokro (100%)
// Progi - hysteresa
const int HYST_LOW = 30; // ponizej 30% - WLACZ
const int HYST_HIGH = 50; // powyzej 50% - WYLACZ
// Czasy
const unsigned long IRRIGATION_MS = 60000UL; // 60 s podlewania
const unsigned long CHECK_INTERVAL = 600000UL; // pomiar co 10 min
unsigned long lastCheck = 0;
unsigned long irrigationStart = 0;
bool isIrrigating = false;
void setup() {
Serial.begin(9600);
pinMode(PIN_RELAY, OUTPUT);
digitalWrite(PIN_RELAY, HIGH); // active-LOW: HIGH = OFF
}
void loop() {
unsigned long now = millis();
// 1. Wylaczenie po uplywie czasu podlewania
if (isIrrigating && (now - irrigationStart >= IRRIGATION_MS)) {
digitalWrite(PIN_RELAY, HIGH); // OFF
isIrrigating = false;
Serial.println("Stop podlewania (timer)");
}
// 2. Pomiar wilgotnosci co CHECK_INTERVAL
if (now - lastCheck >= CHECK_INTERVAL) {
lastCheck = now;
int adc = analogRead(PIN_SOIL);
int humidity = map(adc, AIR_VALUE, WATER_VALUE, 0, 100);
humidity = constrain(humidity, 0, 100);
Serial.print("Wilgotnosc: ");
Serial.print(humidity);
Serial.println("%");
// 3. Hysteresa
if (!isIrrigating && humidity < HYST_LOW) {
digitalWrite(PIN_RELAY, LOW); // ON
isIrrigating = true;
irrigationStart = now;
Serial.println("START podlewania");
} else if (isIrrigating && humidity > HYST_HIGH) {
digitalWrite(PIN_RELAY, HIGH); // OFF
isIrrigating = false;
Serial.println("Stop podlewania (wystarczy)");
}
}
}
Co warto dostosować?
-
IRRIGATION_MS - długość pojedynczej tury podlewania. Zacznij od 30-60 s, monitoruj wilgotność po 1 godz. i koryguj. Zależy od ciśnienia w sieci wodociągowej i powierzchni grządki.
-
CHECK_INTERVAL - odstęp między pomiarami. Dla pracy bateryjnej z ESP32 wydłuż do 30 min + deep sleep.
-
HYST_LOW / HYST_HIGH - progi per gatunek roślin: pomidory 25/45%, sałata 35/55%, lawenda 15/35%, kaktusy 8/20%.
Kod kompiluje się w Arduino IDE i zajmuje 2,8 kB flash z 32 kB Nano. Wersja obsługująca 4 niezależne strefy z osobnymi progami zajmuje ok. 6 kB - zmieści się nawet w ATtiny85.
6. Zasilanie i obudowa
Najczęstszą przyczyną awarii zewnętrznego sterownika jest woda w obudowie, a nie błąd w kodzie. Zaplanuj zasilanie i hermetyzację z wyprzedzeniem.
Schemat zasilania
[Zasilacz 12 V / 1 A]
|
+---> [Elektrozawor 12 V] (przez przekaznik)
|
+---> [LM2596 step-down] -> 5 V -> [Arduino VIN]
-> 5 V -> [Modul przekaznika VCC]
Kluczowe parametry
|
Element |
Specyfikacja |
Komentarz |
|
Zasilacz 12 V |
1 A dla 1 zaworu, 2 A dla 4 zaworów |
model impulsowy z /zasilacze, klasa min. IP44 |
|
LM2596 |
wyjście kalibrowane na 5,0-5,2 V |
nie 4,8 V - Arduino resetuje się przy załączeniu przekaźnika |
|
Bezpiecznik |
1,5 A na linii 12 V |
termiczny lub topikowy w obudowie |
|
Filtr (opcj.) |
kondensator 470 µF / 25 V na linii 12 V |
tłumi spadek napięcia przy załączeniu cewki |
Obudowa zewnętrzna - lista kontrolna
Wymagana klasa szczelności: IP54 minimum, IP65 zalecane.
IP54 = ochrona przed bryzgami, IP65 = ochrona przed strugami wody pod ciśnieniem (deszcz nawalny, mycie ogrodu wężem).
-
Materiał: ABS lub poliwęglan (PC) - odporność UV, brak kruchości w mrozie.
-
Dławiki: min. 2 dławiki PG7 / PG9 (kabel zasilający + kabel czujnika). Każdy dodatkowy kabel = dodatkowy dławik, nigdy wspólny otwór z silikonem.
-
Pochłaniacz wilgoci: silica gel 5-10 g w środku obudowy, wymiana co 12 mies. (lub gdy granulki zmienią kolor z niebieskiego na różowy).
-
Antena WiFi: jeśli używasz ESP32, nie zamykaj anteny w metalowej puszce. Plastikowa obudowa albo wyprowadzona antena zewnętrzna SMA.
-
Montaż: stelaż ze pochyleniem 5° w dół, by woda spływała na zewnątrz, a nie do dławików.
Czego unikać:
-
Tanich obudów IP44 z marketu - nie wytrzymują polskiej zimy z deszczem zamarzającym.
-
Zamykania zasilacza 230 V w jednej obudowie z Arduino - używaj zewnętrznego zasilacza wtyczkowego z wodoodporną wtyczką ogrodową.
-
Łączenia przewodów skrętką ręczną - tylko WAGO 222, listwy zaciskowe lub lutowanie + koszulka termokurczliwa.
7. Rozbudowa o ESP32 + WiFi
Arduino Nano działa świetnie jako autonomiczny sterownik, ale nie da Ci historii podlewania, alarmów na telefon ani integracji z prognozą pogody. Wystarczy zamienić mikrokontroler na ESP32-WROOM-32 (różnica w cenie: 15-20 zł) i kod nadal działa po drobnych korektach (mapowanie pinów + ADC 12-bit zamiast 10-bit).
Co zyskujesz po przejściu na ESP32
|
Funkcja |
Arduino Nano |
ESP32 |
|
WiFi 2,4 GHz |
- |
+ |
|
Bluetooth 4.2 + BLE |
- |
+ |
|
Wbudowany RTC |
- |
+ |
|
Pamięć Flash |
32 kB |
4 MB |
|
RAM |
2 kB |
520 kB |
|
Procesor |
16 MHz, 1 rdzeń |
240 MHz, 2 rdzenie |
|
Kanały ADC |
8 (10-bit, 0-1023) |
18 (12-bit, 0-4095) |
|
Cena |
25 zł |
35-45 zł |
|
Pobór w deep sleep |
19 mA |
10 µA |
5 pomysłów na rozbudowę
-
Lokalny web server na ESP32 - wpisujesz IP urządzenia w przeglądarce telefonu, masz dashboard z wilgotnością, harmonogramem i przyciskiem „podlej teraz”. Biblioteka WebServer.h, kod ok. 150 linii.
-
MQTT do Home Assistant - ESP32 publikuje wilgotność na temacie garden/soil/humidity co 5 min. W HA tworzysz automatyzację: jeśli prognoza deszczu na 24 h > 5 mm, pomiń podlewanie.
-
Pobieranie pogody z OpenWeather API - ESP32 sprawdza prognozę raz dziennie. API darmowe do 1 000 zapytań / dobę (ok. 41 zapytań / godz. - z dużym zapasem).
-
Powiadomienia push przez Telegram - integracja z Telegram Bot API (darmowa). Wiadomość typu „Strefa 3: 2 godz. bez przepływu wody, sprawdź zawór”.
-
Synchronizacja czasu (NTP) - ESP32 łączy się z pl.pool.ntp.org i wie, kiedy jest świt / zmrok. Podlewanie tylko między 5:00 a 7:00 (parowanie minimalne).
Jeśli chcesz pójść dalej i zbudować własną stację pogodową na ESP32 (BME280 dla temperatury i ciśnienia, BH1750 dla nasłonecznienia, anemometr SE0170), zajrzyj do tutoriala Stacja pogodowa ESP32 (cz. 4) - sterownik nawadniania może czytać dane z tej samej stacji przez MQTT i podlewać tylko wtedy, gdy temperatura jest między 8 a 28 °C.
Fragment kodu ESP32 - łączność WiFi i MQTT
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "TwojaSiec";
const char* password = "TwojeHaslo";
const char* mqtt_server = "192.168.1.50"; // adres Home Assistant
WiFiClient espClient;
PubSubClient client(espClient);
void setupWiFi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.println(WiFi.localIP());
client.setServer(mqtt_server, 1883);
}
void publishHumidity(int humidity) {
char buf[8];
itoa(humidity, buf, 10);
client.publish("garden/soil/humidity", buf);
}
ESP32 obsłuży dodatkowo 8 stref równolegle bez spadku wydajności - moduł przekaźnikowy 8-kanałowy + 8 elektrozaworów to system godny komercyjnych instalacji za 4 000 zł.
8. FAQ
Czy system działa zimą?
Nie. Woda zamarzająca w elektrozaworze i wężach uszkadza membranę gumową. Wyłącz instalację jesienią (październik / listopad), spuść wodę z węży, odłącz zasilacz. Restart wiosną po pierwszych nocach bez przymrozków (zwykle koniec kwietnia w Polsce).
Ile dokładnie kosztuje cały zestaw?
-
Wersja 1-strefowa Arduino: 150-180 zł.
-
Wersja 4-strefowa Arduino: 350-450 zł.
-
Wersja 4-strefowa ESP32 + WiFi + Home Assistant: 400-500 zł.
-
Komercyjny odpowiednik 4-strefowy z WiFi: 2 000-3 500 zł.
Czy potrzebuję umiejętności lutowania?
Nie, jeśli używasz modułu czujnika i modułu przekaźnika gotowych do podłączenia. Wszystko spinasz przewodami jumper na płytce stykowej. Lutowanie potrzebne dopiero przy wersji wbudowanej w obudowę zewnętrzną - złącza śrubowe lub WAGO 222 też wystarczą.
Ile stref podlewania mogę obsłużyć?
-
Arduino Nano: do 8 stref (limit pinów cyfrowych).
-
ESP32: do 16 stref natywnie, więcej z ekspanderem I2C MCP23017 (32 GPIO za 6 zł).
-
Praktyka domowa: 3-6 stref to standard (warzywa, kwiaty, trawnik, krzewy ozdobne osobno).
Czy mogę podlewać każdą strefę inaczej?
Tak. W kodzie definiujesz osobne progi HYST_LOW i HYST_HIGH per strefa oraz osobny czas IRRIGATION_MS. Pomidory potrzebują 25/45%, sałata 35/55%, lawenda 15/35%.
Co, jeśli wodociąg odetnie wodę?
Dodaj czujnik przepływu Hall Effect (np. YF-S201) na wejściu wody. Jeżeli przekaźnik załączony, a przepływu brak przez 10 s - kod wysyła alarm i blokuje system na 1 godz. Czujnik przepływu kosztuje 12-18 zł.
Czy potrzebuję pozwolenia lub odbioru elektrycznego?
Nie. Cała instalacja po stronie ogrodowej pracuje przy bezpiecznym napięciu 12 V DC. Zasilacz 230 V jest gotowym, certyfikowanym urządzeniem (CE), pracuje pod kontrolą bezpiecznika domowego rozdzielnicy.
Mogę zostawić system bez nadzoru na 2 tygodnie wakacji?
Tak, pod trzema warunkami:
- ESP32 z WiFi i powiadomieniami push (Telegram lub HA).
- Akumulator buforowy 7 Ah / 12 V z przełączaniem na zaniki prądu.
- Mechaniczny zawór odcinający wodę po stronie domu jako drugi poziom zabezpieczenia (na wypadek pęknięcia węża).
Co dalej?
Zacznij od kompletu w wersji 1-strefowej (BOM z sekcji 1) i zmontuj na płytce stykowej w domu. Po przetestowaniu kodu i kalibracji czujnika przejdź na ESP32 z WiFi i przenieś elektronikę do hermetycznej obudowy IP54. W ciągu jednego weekendu masz działający system, który zaoszczędzi 30-50% wody przez cały sezon i zwróci się w pełni już w drugim roku użytkowania.