Jak zautomatyzować podlewanie roślin balkonowych z użyciem najtańszych płytek Arduino
Doniczka stojąca na południowym balkonie potrafi wyschnąć w jeden upalny dzień. Jednocześnie podlewanie według sztywnego harmonogramu nie rozwiązuje problemu: po deszczu system nadal podaje wodę, a podczas fali upałów uruchamia się za rzadko. Sensowniejszy układ mierzy wilgotność podłoża i włącza pompę dopiero po przekroczeniu ustalonego progu.
Do zbudowania takiego sterownika nie jest potrzebne oryginalne Arduino za ponad 100 zł. Wystarczy klon Arduino Nano z układem ATmega328P, pojemnościowy czujnik wilgotności, mała pompka, tranzystor MOSFET i kilka elementów zabezpieczających. Realny koszt układu dla jednej skrzynki lub dużej donicy wynosi około 55–95 zł, bez zbiornika na wodę i ładowarki USB. Najdroższym błędem nie jest jednak wybór niewłaściwej płytki. Jest nim podłączenie pompy bezpośrednio do wyjścia Arduino albo pozostawienie systemu bez limitu czasu podlewania.
Jak dobrać płytkę, czujnik i pompę, żeby nie przepłacić
Najrozsądniejszą bazą taniego sterownika jest Arduino Nano V3.0 z ATmega328P i konwerterem CH340. Płytka pracuje z napięciem 5 V, ma osiem wejść analogowych i wystarczająco dużo pamięci oraz wyprowadzeń do obsługi kilku czujników, pomp, diod sygnalizacyjnych czy przycisku ręcznego podlewania. Klasyczne Nano wykorzystuje mikrokontroler ATmega328P, pracuje z częstotliwością 16 MHz i oferuje 32 KB pamięci Flash oraz 2 KB SRAM.
Klon Nano kosztuje w polskich sklepach i na platformach sprzedażowych zwykle 12–30 zł. Najtańsze wersje za około 12–20 zł często mają niewlutowane listwy pinowe, układ USB CH340 i złącze Mini-USB albo USB-C. Przykładowe oferty z lipca 2026 roku wynoszą około 11,89 zł, 19,99 zł i 20,80 zł, choć lepiej porównywać cenę razem z dostawą.
Tańsze mikrokontrolery, takie jak Digispark ATtiny85, również mogą sterować jedną pompą, ale oszczędność kilku złotych szybko traci sens. ATtiny85 ma mniej pinów, mniej pamięci i bardziej kłopotliwe programowanie. Do pierwszego systemu nawadniania wybrałbym Nano. Pozostawia zapas na drugi czujnik, sygnalizację braku wody lub późniejszą rozbudowę.
Lista części dla jednej sekcji podlewania
- Arduino Nano V3.0, ATmega328P, CH340: około 12–30 zł,
- pojemnościowy czujnik wilgotności gleby V1.2: około 6–16 zł,
- miniaturowa pompka 5 V lub 6–12 V: około 15–30 zł,
- tranzystor logic-level MOSFET, np. IRLZ44N: około 3–6 zł,
- dioda zabezpieczająca 1N5819 albo 1N4007: około 0,15–1 zł,
- rezystor 220 Ω do bramki MOSFET-u i 10 kΩ między bramką a masą: poniżej 1 zł,
- wężyk silikonowy dopasowany do króćca pompy: około 5–12 zł za metr,
- przewody, płytka prototypowa lub uniwersalna: około 5–15 zł,
- szczelna puszka instalacyjna: około 8–20 zł,
- zasilacz USB 5 V/2 A albo odpowiedni zasilacz 12 V: około 15–30 zł, jeżeli nie ma go już w domu.
Pojemnościowy czujnik jest lepszym wyborem niż najtańsza sonda rezystancyjna z dwiema odsłoniętymi elektrodami. W sondzie rezystancyjnej prąd przepływa przez wilgotne podłoże, co przyspiesza elektrolizę i korozję. Czujnik pojemnościowy nie ma odsłoniętych metalowych widełek i zwykle wytrzymuje znacznie dłużej. Nadal nie jest niezniszczalny: w tanich modułach elektronika znajdująca się nad częścią pomiarową często nie jest zabezpieczona przed wodą. Płytkę trzeba osłonić lakierem ochronnym, żywicą lub koszulką termokurczliwą, pozostawiając nieosłoniętą część wsuwaną w podłoże. Konstrukcje pojemnościowe zostały opracowane właśnie jako odporniejsza na korozję alternatywa dla czujników rezystancyjnych.
Tani czujnik V1.2 kosztuje około 6,49 zł, ale bywa okresowo niedostępny. Markowe wersje DFRobot lub Grove kosztują więcej, zwykle 25–70 zł. Przy jednej skrzynce balkonowej tani moduł ma sens, pod warunkiem że zostanie skalibrowany już w docelowym podłożu.
Pompę dobiera się nie tylko według deklarowanej wydajności. Najważniejsza jest wysokość podnoszenia, czyli różnica poziomów między lustrem wody w zbiorniku a końcem przewodu. Mała pompa reklamowana jako 120 l/h może mieć maksymalną wysokość podnoszenia zaledwie 0,5 m. Przy zbiorniku stojącym na podłodze i doniczce zawieszonej na balustradzie strumień będzie słaby albo zaniknie całkowicie. Przykładowa pompa 6–12 V o wydajności 120 l/h pobiera około 0,3 A i ma maksymalną wysokość podnoszenia 0,5 m.
Dla skrzynki ustawionej obok zbiornika wystarczy tania pompka zanurzeniowa. Gdy woda musi zostać podniesiona o ponad 60–80 cm, lepiej kupić model o deklarowanej wysokości podnoszenia minimum 1,5 m albo pompę perystaltyczną. Pompa perystaltyczna jest droższa i głośniejsza, ale precyzyjniej dawkuje wodę, może pracować powyżej zbiornika i ogranicza samoczynne przepływanie po wyłączeniu.
Montaż układu: zasilanie, przewody i zabezpieczenie pompy
Pompy nie wolno podłączać bezpośrednio do pinu Arduino. Wyjście mikrokontrolera służy do podawania sygnału sterującego, a nie do zasilania silnika. Nawet mała pompka pobiera podczas rozruchu wielokrotnie więcej prądu niż czujnik. Skutkiem bezpośredniego połączenia może być resetowanie płytki, zawieszanie programu albo trwałe uszkodzenie wyjścia.
Do sterowania należy zastosować tranzystor MOSFET typu N przystosowany do sterowania poziomem logicznym, np. IRLZ44N. Ten model ma maksymalne napięcie dren–źródło 55 V i jest dostępny pojedynczo za około 3,60–4 zł lub w wielopakach.
Podłączenie czujnika
Pojemnościowy czujnik V1.2 ma najczęściej trzy przewody:
- VCC do pinu 5V Arduino,
- GND do GND Arduino,
- AOUT do wejścia analogowego A0.
Przed podłączeniem trzeba sprawdzić oznaczenia nadrukowane na konkretnym module. W tanich seriach kolejność pinów potrafi się różnić. Pomylenie VCC i GND często kończy się natychmiastowym uszkodzeniem sensora.
Podłączenie pompy przez MOSFET
Układ wykonuje się następująco:
- plus zasilania pompy łączy się z dodatnim przewodem zasilacza,
- minus pompy łączy się z drenem MOSFET-u,
- źródło MOSFET-u łączy się z masą,
- bramkę MOSFET-u łączy się przez rezystor 220 Ω z pinem D5 Arduino,
- między bramką a masą umieszcza się rezystor 10 kΩ,
- masę zasilacza pompy łączy się z masą Arduino.
Ostatni punkt jest obowiązkowy. Bez wspólnej masy napięcie sterujące bramką nie ma prawidłowego punktu odniesienia i pompa może nie startować albo działać przypadkowo.
Równolegle do pompy należy podłączyć diodę zabezpieczającą, nazywaną diodą flyback:
- katoda, czyli strona oznaczona paskiem, trafia do plusa pompy,
- anoda trafia do minusa pompy i drenu MOSFET-u.
Silnik pompy jest obciążeniem indukcyjnym. Po jego wyłączeniu powstaje impuls napięcia, który bez diody trafia w tranzystor i elektronikę sterującą. Układ potrafi działać bez zabezpieczenia przez kilka dni, a potem zacząć resetować Nano lub uszkodzić MOSFET. To pozorna oszczędność kilkudziesięciu groszy.
Jedno czy dwa źródła zasilania
Dla pompki 5 V można użyć jednego zasilacza USB 5 V/2 A, ale zasilanie trzeba rozdzielić:
- jedna gałąź zasila Nano przez pin 5V,
- druga zasila pompę przez MOSFET,
- obie gałęzie mają wspólną masę.
Nie należy prowadzić całego prądu pompy przez płytkę Arduino ani zasilać silnika z pinu 5V Nano. Pompa podczas rozruchu powoduje chwilowy spadek napięcia. Jeżeli przewody są cienkie, a zasilacz słaby, mikrokontroler zresetuje się dokładnie w chwili uruchomienia podlewania.
Przy pompie 12 V potrzebne są dwa napięcia albo przetwornica obniżająca napięcie:
- 12 V bezpośrednio do pompy,
- 12 V do przetwornicy step-down ustawionej na stabilne 5 V,
- 5 V z przetwornicy do Arduino.
Nano można wprawdzie zasilać wyższym napięciem przez VIN, lecz przy pracy w szczelnej puszce liniowy stabilizator może się niepotrzebnie nagrzewać. Mała przetwornica typu LM2596 kosztuje około 5–10 zł i jest pewniejszym rozwiązaniem.
Na wejściu zasilania pompy dobrze działa kondensator elektrolityczny 470–1000 µF oraz ceramiczny 100 nF. Nie naprawią zbyt słabego zasilacza, ale ograniczą krótkie spadki i zakłócenia generowane przez szczotkowy silnik.
Rozprowadzenie wody
Przy jednej donicy końcówkę wężyka można zamocować 3–5 cm od łodygi, ale nie bezpośrednio przy niej. W dużej skrzynce jeden punkt podlewania jest niewystarczający. Podłoże zostanie zalane przy wylocie, podczas gdy przeciwległy koniec pozostanie suchy.
Dla skrzynki długości 60–80 cm stosuję:
- główny przewód 6–8 mm,
- dwa lub trzy odgałęzienia,
- emitery kroplujące albo końcówki o podobnym oporze przepływu,
- czujnik umieszczony mniej więcej między punktami podlewania.
Najprostsze trójniki bez kroplowników rzadko rozdzielają wodę równo. Najbliższy wylot podaje jej najwięcej. Problem można ograniczyć identyczną długością cienkich przewodów, ale przy kilku donicach lepiej zastosować osobne pompki albo regulowane emitery.
Zbiornik powinien stać poniżej poziomu końcówek węży, zwłaszcza gdy nie zastosowano zaworu zwrotnego. Jeżeli zbiornik znajduje się wyżej, po wyłączeniu pompy może powstać syfon i woda będzie płynęła dalej bez udziału Arduino. Program tego nie zatrzyma.
Elektronika na balkonie wymaga szczelnej obudowy. Puszka instalacyjna powinna mieć co najmniej klasę IP54, a przy miejscu narażonym na deszcz lepiej wybrać IP65. Otwory na przewody należy skierować w dół i zabezpieczyć dławikami. Samej puszki nie należy zostawiać na pełnym słońcu. W zamkniętej, ciemnej obudowie temperatura może wyraźnie przekroczyć temperaturę otoczenia.
Kalibracja oraz program, który nie zaleje balkonu
Czujnik wilgotności nie podaje uniwersalnej wartości procentowej. Wynik zależy od składu podłoża, zasolenia, temperatury, głębokości montażu i egzemplarza sensora. Wartość 600 może oznaczać suche podłoże w jednej donicy i wilgotne w innej. Dlatego kopiowanie progu znalezionego w przypadkowym projekcie jest błędem.
Kalibrację trzeba wykonać w donicy, w której system będzie pracował.
Kalibracja krok po kroku
- Umieść czujnik w docelowym podłożu na stałej głębokości, zwykle 6–10 cm.
- Pozostaw ziemię do wyschnięcia do poziomu, przy którym normalnie rozpoczęłoby się podlewanie.
- Odczytaj 20–30 pomiarów i zapisz średnią jako wartość suchą.
- Podlej roślinę ręcznie do momentu pojawienia się pierwszej wody w podstawce.
- Odczekaj 20–40 minut, aż wilgoć rozłoży się w bryle korzeniowej.
- Ponownie odczytaj serię pomiarów i zapisz średnią jako wartość mokrą.
- Ustaw próg uruchomienia pompy w okolicy 35–45% zakresu między odczytem mokrym a suchym.
Dokumentacja DFRobot również zaleca kalibrację przez porównanie wartości odczytywanych w warunkach suchych i mokrych zamiast używania jednego fabrycznego progu.
Przykład:
- wilgotne podłoże: odczyt 410,
- podłoże wymagające podlania: odczyt 690,
- próg uruchomienia: około 620,
- próg ponownego uzbrojenia systemu: około 560.
W wielu czujnikach pojemnościowych wyższa wartość oznacza bardziej suche podłoże, ale nie należy przyjmować tego bez testu. Niektóre wersje modułów mają odwróconą charakterystykę.
Dwa różne progi tworzą histerezę. Bez niej pompa może szybko włączać się i wyłączać, gdy wynik oscyluje wokół jednej granicy. Układ powinien rozpocząć podlewanie przy wartości 620, ale wrócić do normalnego czuwania dopiero wtedy, gdy odczyt spadnie poniżej 560.
Ile wody podawać w jednym cyklu
Pompy nie powinno się uruchamiać do chwili, gdy czujnik pokaże mokrą ziemię. Woda potrzebuje czasu, żeby dotrzeć z powierzchni do sondy. Przy ciągłym pompowaniu sterownik poda za dużą dawkę, zanim odczyt zacznie reagować.
Lepszy algorytm działa porcjami:
- pompa pracuje przez 3–8 sekund,
- system czeka 30–90 sekund,
- wykonuje kolejny pomiar,
- w razie potrzeby podaje następną porcję,
- kończy po osiągnięciu limitu liczby porcji.
Czas pracy trzeba dobrać przez pomiar wydajności. Włóż końcówkę wężyka do naczynia z podziałką, uruchom pompę na dokładnie 10 sekund i zmierz ilość wody.
Jeżeli pompa podała 120 ml w 10 sekund, jej rzeczywista wydajność w danej instalacji wynosi:
120 ml ÷ 10 s = 12 ml/s
Dawka pięciosekundowa to około 60 ml. Dla skrzynki balkonowej lepiej podać cztery porcje po 60 ml z przerwami niż jednorazowo 240 ml.
Deklaracja 120 l/h oznacza teoretycznie 33 ml/s, ale jest mierzona w korzystnych warunkach, zwykle bez długiego przewodu i dużej różnicy wysokości. W gotowej instalacji rzeczywisty przepływ potrafi być o połowę niższy. Liczy się pomiar wykonany z docelowym wężykiem i ustawieniem zbiornika.
Przykładowy program
Poniższy kod:
- uśrednia pomiary czujnika,
- sprawdza wilgotność co 10 minut,
- uruchamia pompę porcjami po 5 sekund,
- odczekuje 45 sekund na rozprowadzenie wody,
- ogranicza jeden cykl do czterech porcji,
- blokuje kolejne podlewanie na sześć godzin,
- wyłącza pompę natychmiast po uruchomieniu Arduino.
const byte SENSOR_PIN = A0;
const byte PUMP_PIN = 5;
// Wartości należy ustalić podczas kalibracji.
const int DRY_THRESHOLD = 620;
const int WET_THRESHOLD = 560;
const unsigned long CHECK_INTERVAL = 10UL * 60UL * 1000UL;
const unsigned long MIN_WATERING_INTERVAL = 6UL * 60UL * 60UL * 1000UL;
const unsigned long PUMP_TIME = 5000UL;
const unsigned long SOAK_TIME = 45000UL;
const byte MAX_PORTIONS = 4;
const byte SAMPLE_COUNT = 15;
unsigned long lastCheck = 0;
unsigned long lastWatering = 0;
bool wateringArmed = true;
int readMoisture() {
long sum = 0;
for (byte i = 0; i < SAMPLE_COUNT; i++) {
sum += analogRead(SENSOR_PIN);
delay(40);
}
return sum / SAMPLE_COUNT;
}
void runPump(unsigned long durationMs) {
digitalWrite(PUMP_PIN, HIGH);
delay(durationMs);
digitalWrite(PUMP_PIN, LOW);
}
void setup() {
pinMode(PUMP_PIN, OUTPUT);
// Najpierw wymuszamy stan wyłączony.
digitalWrite(PUMP_PIN, LOW);
Serial.begin(9600);
delay(1000);
}
void loop() {
unsigned long now = millis();
if (now - lastCheck < CHECK_INTERVAL) {
return;
}
lastCheck = now;
int moisture = readMoisture();
Serial.print("Odczyt wilgotnosci: ");
Serial.println(moisture);
if (moisture <= WET_THRESHOLD) {
wateringArmed = true;
}
bool intervalPassed =
lastWatering == 0 ||
now - lastWatering >= MIN_WATERING_INTERVAL;
if (moisture >= DRY_THRESHOLD &&
wateringArmed &&
intervalPassed) {
for (byte portion = 0; portion < MAX_PORTIONS; portion++) {
runPump(PUMP_TIME);
delay(SOAK_TIME);
moisture = readMoisture();
Serial.print("Odczyt po porcji: ");
Serial.println(moisture);
if (moisture <= WET_THRESHOLD) {
break;
}
}
lastWatering = millis();
wateringArmed = false;
}
}
Po wgraniu programu system powinien przez kilka dni pracować pod nadzorem. Najpierw należy pozostawić końcówkę węża w pustym naczyniu i obserwować, kiedy Arduino uruchamia pompę. Dopiero po potwierdzeniu działania można skierować wodę do donicy.
Pierwszy test bez nadzoru nie powinien przypadać na weekendowy wyjazd. Tanie czujniki czasem zmieniają wskazania po kilku dniach, a miękki wężyk potrafi zsunąć się z króćca pompy. Opaska zaciskowa albo krótki fragment termokurczu kosztuje grosze i usuwa jedną z najczęstszych przyczyn zalania.
Najważniejszym dodatkowym zabezpieczeniem jest czujnik poziomu wody w zbiorniku. Prosty pływak kosztuje około 8–15 zł. Bez niego pompka może pracować na sucho, kiedy zabraknie wody. Małe pompy zanurzeniowe są chłodzone przepływającą cieczą i dłuższa praca bez wody szybko je zużywa.
Przy balkonie obsadzonym kilkoma gatunkami nie należy sterować wszystkimi donicami z jednego czujnika. Pelargonia, mięta i lawenda mają inne zapotrzebowanie na wodę. Jedna sonda może obsługiwać skrzynki o podobnej pojemności, nasłonecznieniu i rodzaju podłoża. W pozostałych przypadkach potrzebne są osobne sekcje albo przynajmniej oddzielne zawory.
FAQ: najczęstsze pytania o podlewanie z Arduino
Czy Arduino Nano może bezpośrednio zasilać małą pompkę 5 V?
Nie. Pompa powinna mieć osobną linię zasilania i być sterowana przez MOSFET. Masę zasilacza pompy trzeba połączyć z masą Arduino.
Ile kosztuje kompletny system dla jednej skrzynki?
Podstawowa wersja kosztuje około 55–95 zł, jeżeli trzeba kupić płytkę, czujnik, pompę, MOSFET, przewody, wężyk i puszkę. Zasilacz oraz czujnik poziomu wody zwiększają koszt o około 20–40 zł.
Czy najtańszy czujnik rezystancyjny za 5–7 zł wystarczy?
Do krótkiego eksperymentu tak. Do stałej pracy nie. Odsłonięte elektrody korodują, a wskazania szybko zaczynają się zmieniać. Lepiej od razu kupić czujnik pojemnościowy.
Gdzie umieścić czujnik wilgotności?
W strefie korzeniowej, zwykle 6–10 cm pod powierzchnią, ale nie bezpośrednio przy wylocie wody. Sonda umieszczona przy kroplowniku zakończy podlewanie, zanim wilgoć dotrze do reszty donicy.
Jak często Arduino powinno sprawdzać wilgotność?
Na balkonie wystarczy pomiar co 5–15 minut. Odczyty co sekundę niczego nie poprawiają, ponieważ wilgotność podłoża zmienia się powoli.
Czy można podlewać według procentów wyświetlanych przez czujnik?
Tylko po kalibracji. Tani czujnik nie mierzy laboratoryjnej wilgotności objętościowej. Pokazuje wartość analogową zależną od podłoża i konkretnego egzemplarza sondy.
Co się stanie po zaniku prądu?
Arduino uruchomi program od początku. Pompa musi być domyślnie wyłączona sprzętowo rezystorem 10 kΩ na bramce MOSFET-u oraz programowo w funkcji setup(). Przed dłuższym wyjazdem trzeba sprawdzić zachowanie układu przez kilkukrotne odłączenie i ponowne podłączenie zasilania.
Czy jeden czujnik może sterować podlewaniem kilku donic?
Tylko wtedy, gdy donice mają podobną wielkość, rośliny, podłoże i nasłonecznienie. W przeciwnym razie jedna roślina będzie przesuszana, a druga przelewana.
Jak zapobiec opróżnieniu całego zbiornika po awarii?
Trzeba ograniczyć w programie maksymalny czas pracy pompy, zastosować podlewanie porcjami i ustawić zbiornik poniżej końcówek węży. Dodatkową ochronę daje czujnik poziomu wody oraz zbiornik o pojemności dobranej tak, aby jednorazowy wyciek nie zalał balkonu.
Od czego zacząć budowę?
Najpierw należy zmierzyć różnicę wysokości między zbiornikiem a donicą i dobrać pompę. Następnie trzeba wykonać pomiar jej rzeczywistej wydajności z docelowym wężykiem. Dopiero później ustala się czas porcji i kalibruje czujnik. Kupowanie elementów przed sprawdzeniem wymaganej wysokości podnoszenia to błąd, który najczęściej kończy się wymianą pompy.
