Vybráno pro vás
 
Hiearchie článků
 
Zavlažovací systém s NodeMCU (ESP8266, ESP12E)


Pokud mě sledujete na sociálních sítích, jistě jste si všimli několika komentářů a obrázků o mém nejnovějším projektu a to Zavlažovacím systému s vývojovou deskou NodeMCU (ESP8266, ESP12E).

Tento projekt vznikl jako nutnost zavlažovat několik květináčů s bylinkami a zeleninou (celkem 8 kusů květináčů) v průběhu našich letních dovolených.

Zavlažování nemělo probíhat "hloupým" způsobem, tedy jednou za čas pustit vodu do květináčů.
Tento způsob má spoustu záporů - nehlídá se, zda je rostlina přelita nebo naopak nedostatečně zalita. Zalévá se v nějakém známém intervalu, což může znamenat, že se rostlina zaleje v největším horku, to může způsobit rostlině šok. Zalévá se i v případě, že zrovna prší a rostlina bude opět přelita.

Použitím tohoto zařízení byste se měli vyvarovat těmto nežádoucím chybám.

Tento zavlažovací systém s NodeMCU kontroluje aktuální čas, vlhkost půdy (nebo spíše vodivost půdy) a je možné k němu pohodlně připojit čidlo pro měření teploty/vlhkosti (I2C) jako je například Si7021.

Vyhodnocení, zda začít zalévat je velmi prosté. Nastavíte si časové období (WATER_TIME_MIN a WATER_TIME_MAX), kdy chcete provést zálivku. Například od 19 do 22 hodiny. Zároveň zapíšete minimální hodnotu vlhkosti půdy (SOIL_MOISTURE_MIN), při které zálivku provést. Program obsahuje i hodnotu hystereze (SOIL_MOISTURE_HYST). Minimální hodnota je například 650, hystereze 0.
Vlhkost půdy se měří pomocí soil moisture senzoru, který je k zakoupení na ebay za několik korun a jeho výstup je přiveden na analogový vstup NodeMCU (ESP8266).
Mnou empiricky zjištěná hodnota je právě zmíněných 650 (650 mV). To je hodnota vlhkosti půdy, která bude v delším časovém období pro rostlinu znamenat uhynutí.

Deska zavlažovacího systému obsahuje dva výstupy, které jsou galvanicky odděleny - pomocí relé.
Maximální spínací napětí relé je 200V a maximální proud 500 mA. Díky dvěma nezávislým výstupům, je možné připojit např. dvě vodní pumpy, nebo vodní pumpu a ventil, a ovládat tak dva zavlažovací okruhy. Pro představu, první okruh bylinky, druhý pak zelenina.

Důležité poznámky:
Základem je ESP8266 modul (NodeMCU), který je napájen napěťovým stabilizátorem 7805. NodeMCU obsahuje vlastní stabilizátor na 3.3V. Logická jednička na GPIO je v tomto případě maximálně 3.3V.
GPIO, který ovládá relé, je přiveden do tranzistoru, který zajišťuje spínání relé. 3.3V je ale malé napětí pro úplně sepnutí tranzistoru v zapojení jako spínač. V tomto návrhu jsou tedy použity speciální (ale lehce sehnatelné) N-MOSFET tranzistory (IRLML2520, HEXFET technologie), která má velké zesílení a jsou schopny tímto malým napětím na Gate tranzistoru (Ugs) sepnout ovládací cívku relátka. Skrze drain (Id) tranzistoru proteče dostatečně velký proud potřebný pro sepnutí relé.
Napětí ovládací cívky je nastavitelné jumperem mezi dvěma hodnotama - 5V nebo vstupním napětím (v mém případě 12V). To by vám mělo umožnit i jinou volbu relé než tu, co jsem vybral já. U spínací cívky relé je samozřejmě prostor pro zapájení ochranné diody. Mnou vybrané relé už obsahuje ochrannou diodu uvnitř.
Deska obsahuje další jumper a to propojení RESET vstupu s GPIO D0, který slouží pro reset celého modulu - po uspání.
Senzor vlhkosti půdy musí být v květináči velmi chytře umístěn. Je to velmi důležitá podmínka při rozhodnutí, zda je rostlina dostatečně zalita nebo ne. Senzor by neměl být velmi blízko zalévací hadičce ani příliš daleko.

Firmware:
Jak bylo zmíněno výše, po kontrole aktuálního času a porovnáním s povoleným časovým obdobím, program pokračuje k další podmínce a to je samotná vlhkost půdy.
Pokud obě podmínky souhlasí, sepne se na určitý čas čerpadlo nebo jiné zařízení. Čas udává hodnota output1Delay ve vteřinách.
Po uplynutí tohoto času se zařízení uspí. Čas uspání udává SLEEP_DELAY_IN_SECONDS.

Pro příklad: SLEEP_DELAY_IN_SECONDS je nastaven na 60s, output1Delay na 10s.
Zařízení se probudí každých 60s a zkontroluje čas a vlhkost půdy. Pokud obě podmínky souhlasí, zapne se čerpadlo (zařízení na výstupu 1) na 10 vteřin. Tato procedura se opakuje tak dlouho, dokud aktuální čas odpovídá povolenému časovému období a zároveň hodnota vlhkosti půdy je vyšší než nastavená (= zem je moc suchá). Tímto opakovaným zaléváním po určitém časovém intervalu dosáhneme toho, že voda z předchozí zálivky bude už vsáknuta a nedojde např. k přetečení květináče.

Kód pro NodeMCU (ESP8266) je opět dostupný na github projektu a můžete si jej tedy upravit dle libosti.

Závěr:
Elektronika bez zavlažovací části byla zkoušena 3 dny a během testovacího provozu u ní nebyla zaznamenána žádná chyba. Místo čerpadla spínal LED.
Problém nastal až při finálním připojení rozvodových hadiček k čerpadlu. Čerpadlo nebylo schopné vytáhnout vodu do výšky 0.5m, kde byl 6-ti vývovodý hřeben, který měl vodu dál rozvádět do květináčů.
V další verzi tedy musím upravit samotný rozvod vody, koupit silnější čerpadlo, vytvořit 3D krabičku pro zalévací modul a také dopsat část kódu pro čidlo Si7021 (teplota/vlhkost vzduchu). Bylo by také vhodné investovat více peněz do samotného měřiče vodivosti půdy - ten nejlevnější velmi rychle podléha korozi.
Díky použití ESP8266 můžete snadno dopsat část kódu, který odešle hodnoty z čidel na webserver, napřiklad na tmep.cz.
DPS je navržena v eagle.

Celý projekt je dostupný na github https://github.com/petus/NodeMCU_watering_system

Máte myšlenku, jak zařízení vylepšit? Neváhejte ani chvíli a přidejte komentář.
Máte zájem o DPS pro tenhle projekt? Ozvěte se a pokud vás bude víc, udělal bych objednávku a DPS rozeslal (ČR/SR)


Poznámky ke konstrukci od čtenářů:
- jiná volba relé pro spínání vyšších proudů, řešení: vyřešeno v druhé verzi
- způsob měření vodivosti půdy. Využívá se stejnosměrného napětí, které může ničit rostliny tak i samotný senzor. Právě díky procházejícímu stejnosměrnému proudu. Bylo doporučeno využít toto chytřejší zapojení a jako čidlo využít např. dva nerezové šroubky či tyčky. https://pihrt.com/elektronika/299-arduino-meric-vlhkosti-pudy

Popis částí desky:


Pinout desky:


Schéma desky:


DPS:
Diskuze
 
Upozornění
Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů. Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.

Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tato nekomerční stránka nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.