💧

Automatyczne nawadnianie ogrodu z ESP8266

📅 20 marca 2025 ⏱ 8 min czytania 🏷️ Arduino/ESP 👁 2 odsłon
← Arduino/ESP
← Arduino / ESP

Gotowe sterowniki nawadniania kosztują 200–500 zł i często wymagają konta w chmurze. Wersja DIY z ESP8266 kosztuje ~40 zł, działa lokalnie i można ją integrować z Home Assistant bez żadnych opłat abonamentowych.

Komponenty

KomponentCena
Wemos D1 Mini (ESP8266)~12 zł
Moduł przekaźnika 5 V (1 kanał)~6 zł
Czujnik wilgotności gleby (YL-69)~4 zł
Zawór elektromagnetyczny 12 V NC~15 zł
Zasilacz 12 V / 1 A~12 zł
Konwerter 12→5 V (mini moduł LM2596)~5 zł

Schemat elektryczny

⚠️ Zawory elektromagnetyczne 12 V NC (normalnie zamknięte) otwierają się po podaniu napięcia. Pamiętaj o bezpieczniku 1 A w linii 12 V.

Kod z harmonogramem i progiem wilgotności

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char* ssid = "SSID";
const char* pass = "HASLO";

#define PIN_ZAWOR D1
#define PIN_SENSOR A0

ESP8266WebServer serwer(80);

bool nawadnianie = false;
int progWilgotnosci = 400; // 0=mokro, 1023=sucho (ADC)

String stronaHTML() {
    int wilg = analogRead(PIN_SENSOR);
    String s = ""
               ""
               "Nawadnianie";
    s += "

Sterownik nawadniania

"; s += "

Wilgotnosc gleby (ADC): " + String(wilg) + " / 1023

"; s += "

Status: " + String(nawadnianie ? "WODA WLACZONA" : "Czuwanie") + "

"; s += " "; s += ""; s += ""; return s; } void setup() { pinMode(PIN_ZAWOR, OUTPUT); digitalWrite(PIN_ZAWOR, LOW); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) delay(500); serwer.on("/", [](){ serwer.send(200, "text/html", stronaHTML()); }); serwer.on("/on", [](){ nawadnianie = true; digitalWrite(PIN_ZAWOR, HIGH); serwer.sendHeader("Location","/"); serwer.send(302); }); serwer.on("/off", [](){ nawadnianie = false; digitalWrite(PIN_ZAWOR, LOW); serwer.sendHeader("Location","/"); serwer.send(302); }); serwer.begin(); } void loop() { serwer.handleClient(); // Auto: uruchom gdy gleba sucha if (analogRead(PIN_SENSOR) > progWilgotnosci && !nawadnianie) { nawadnianie = true; digitalWrite(PIN_ZAWOR, HIGH); } if (analogRead(PIN_SENSOR) < progWilgotnosci - 50 && nawadnianie) { nawadnianie = false; digitalWrite(PIN_ZAWOR, LOW); } delay(1000); }

Integracja z Home Assistant

Dodaj MQTT na ESP8266 (PubSubClient) i skonfiguruj encję switch w HA. Wtedy możesz tworzyć automatyzacje: np. "podlej o 6:00 jeśli nie padało".

Tagi: automatyka esp8266 ogrod wifi