Zpět na články

ESP32 + relé + vodní pumpa – automatické zavlažování v Arduino IDE

Jak připojit relé k ESP32, zapojit vodní pumpu a ovládat ji automaticky.

ESP32 + relé + vodní pumpa – automatické zavlažování v Arduino IDE

Co je relé?

Relé je elektromechanický spínač, který umožňuje ESP32 (logika 3,3V) ovládat obvody s vyšším napětím – například vodní pumpu napájenou z 5V nebo 12V zdroje. ESP32 samo o sobě nedokáže pumpu napájet přímo z GPIO pinu – relé funguje jako prostředník.

Princip je jednoduchý: ESP32 pošle signál na řídicí pin relé, uvnitř relé se aktivuje elektromagnet, který mechanicky sepne nebo rozepne silový obvod pumpy.

Typy relé modulů

Relé moduly pro ESP32 se prodávají ve dvou provedeních podle logiky spínání:

Active LOW – relé se aktivuje při LOW signálu z ESP32 (nejčastější typ, modrá DPS)

Active HIGH – relé se aktivuje při HIGH signálu z ESP32

Na modulu bývá označení IN, VCC a GND. Silový obvod má tři svorky: COM (common), NO (normally open – rozepnuto v klidu) a NC (normally closed – sepnuto v klidu).

Potřebné komponenty

  • ESP32
  • Relé modul 5V (jednokanalový nebo vícekanálový)
  • Vodní pumpa 3–12V DC
  • Napájecí zdroj pro pumpu (odpovídající napětí pumpy)
  • Propojovací vodiče
  • Volitelně: hadička a nádoba s vodou
⚠️ Nikdy nepřipojujte vodní pumpu přímo na GPIO pin ESP32. GPIO pin zvládne maximálně 40 mA – pumpa potřebuje řádově stokrát více.

Zapojení

ESP32 → Relé modul

Pin IN na relé připojte na GPIO 26 ESP32. Pin VCC na relé připojte na 5V (VIN pin ESP32 při napájení přes USB). Pin GND relé propojte s GND ESP32.

⚠️ GND ESP32 a GND externího napájecího zdroje pumpy musí být propojeny – bez společné země obvod nefunguje.

Relé → Vodní pumpa

Silový obvod relé má tři svorky. Pro spínání pumpy použijte COM a NO:

COM (společný vodič) připojte na kladný pól (+) napájecího zdroje pumpy.

NO (normally open) připojte na kladný pól (+) vodní pumpy.

Záporný pól (−) pumpy připojte přímo na záporný pól (−) napájecího zdroje.

Schéma silového obvodu:

Zdroj + → COM (relé)
↓ (při sepnutí)
NO (relé) → Pumpa (+)
Pumpa (−) → Zdroj −

Při aktivaci relé se spojí COM a NO – proud proteče zdrojem přes pumpu zpět do zdroje a pumpa se roztočí. Při deaktivaci relé se obvod rozepne a pumpa se zastaví.

Kód 1 – jednoduché spínání pumpy

water_pump.ino
1#define RELE_PIN 26 2 3// Active LOW relé: LOW = zapnuto, HIGH = vypnuto 4// Pokud máte Active HIGH relé, obraťte logiku 5 6void setup() { 7 Serial.begin(115200); 8 pinMode(RELE_PIN, OUTPUT); 9 10 // ujistíme se že pumpa je na začátku vypnutá 11 digitalWrite(RELE_PIN, HIGH); 12 13 Serial.println("Systém připraven."); 14} 15 16void loop() { 17 Serial.println("Pumpa zapnuta – zaléváme..."); 18 digitalWrite(RELE_PIN, LOW); // zapni pumpu 19 delay(5000); // zaléváme 5 sekund 20 21 Serial.println("Pumpa vypnuta – čekáme..."); 22 digitalWrite(RELE_PIN, HIGH); // vypni pumpu 23 delay(30000); // pauza 30 sekund 24}


Kód 2 – automatické zavlažování s časovačem

Reálnější scénář – pumpa se spustí jednou za hodinu na 10 sekund. Používáme millis() místo delay() aby ESP32 nezablokovalo celou smyčku:

water_pump.ino
1#define RELE_PIN 26 2 3const unsigned long INTERVAL_MS = 60UL * 60UL * 1000UL; // 1 hodina 4const unsigned long ZALEVANI_MS = 10000; // 10 sekund 5 6unsigned long posledniZalevani = 0; 7 8void zapniPumpu() { 9 Serial.println("▶ Pumpa zapnuta – zaléváme..."); 10 digitalWrite(RELE_PIN, LOW); 11} 12 13void vypniPumpu() { 14 Serial.println("■ Pumpa vypnuta."); 15 digitalWrite(RELE_PIN, HIGH); 16} 17 18void setup() { 19 Serial.begin(115200); 20 pinMode(RELE_PIN, OUTPUT); 21 digitalWrite(RELE_PIN, HIGH); // pumpa vypnutá při startu 22 23 Serial.println("Automatické zavlažování spuštěno."); 24 Serial.println("První zalití za 1 hodinu."); 25} 26 27void loop() { 28 unsigned long ted = millis(); 29 30 if (ted - posledniZalevani >= INTERVAL_MS) { 31 posledniZalevani = ted; 32 33 zapniPumpu(); 34 delay(ZALEVANI_MS); 35 vypniPumpu(); 36 37 Serial.println("Příští zalití za 1 hodinu."); 38 } 39}


Jak to funguje

GPIO pin ESP32 ovládá cívku uvnitř relé. Při aktivaci cívky se vytvoří magnetické pole, které mechanicky přepne kontakty a spojí COM s NO. Tím se uzavře silový obvod pumpy a voda začne téct.

millis() vrací počet milisekund od spuštění ESP32. Porovnáváme aktuální čas s časem posledního zalití – jakmile rozdíl překročí nastavený interval, spustíme pumpu. ESP32 mezitím může dělat cokoliv jiného – číst senzory, komunikovat přes WiFi atd.

Active LOW vs Active HIGH

Pokud pumpa běží stále a po příkazu LOW se vypne, máte Active LOW relé – to je správně, logika v kódu odpovídá.

Pokud pumpa nereaguje nebo spíná obráceně, vyměňte LOW a HIGH v celém kódu – máte Active HIGH relé.

Časté problémy

Pumpa se neroztočí → Zkontrolujte napětí napájecího zdroje – odpovídá specifikaci pumpy? → Ověřte propojení GND ESP32 a GND zdroje pumpy → Přesvědčte se, že zapojujete COM a NO (ne COM a NC)

ESP32 se resetuje při spuštění pumpy → Pumpa při startu odebírá špičkový proud – napájejte ESP32 a pumpu ze samostatných zdrojů

Pumpa teče stále bez příkazu → Máte zapojené COM a NC místo COM a NO – přepojte na NO

Možná rozšíření

  • Přidejte senzor půdní vlhkosti – zalévejte jen když je zemina suchá
  • Kombinujte s DHT22 – sledujte teplotu a vlhkost vzduchu v okolí rostlin
  • Kombinujte s RTC modulem DS1307 – zalévejte v přesný čas každý den
  • Přidejte webový server – ovládejte pumpu z prohlížeče nebo mobilu
  • Kombinujte s MQTT – spouštějte pumpu přes Home Assistant odkudkoliv

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.