Először is a disclaimer: don't try this at home
4 dolog lesz automatizálva, ha minden elkészül:
- világítás
- táp adagolás
- co2
- elpárolgott víz utántöltés
A fő feladatot egy Arduino Leonardo látja el, amihez csatlakoztattam pár extra modult, amik szükségesek ehhez:
- DS3231+AT24C32 RTCM: ez egy valós idejű óra modul, hogy tudjuk hány óra még akkor is ha kikapcsol a táp, plusz van rajta egy eeprom, amit a config eltároláshoz hazsnálok (beállított be/ki kapcsolási idők, táp adagok stb.)
- TM1637: ez egy egyszerűen vezérelhető 4 szegmenses kijelző, amit a beállítások kijelzésére használok
- gombok (az "elbaszott jelzőlámpa") és kapcsolók: értelem szerűen ezekkel tudom a beállításokat változtatni, plusz fixen be vagy kikapcsolni a lámpát pl.
A kód c++-ban íródott és a modulokhoz külső lib-eket használok.
A lámpa:
ILEDO alu profil, benne kb. 7 m hideg fehér V-TAC ledszalag, a profilhoz tartozó függesztő, a fehér íves cucc pedig egy kicsit megberhelt ikea mulig ruhaállvány.
A ledeket két vezetékkel is betápláltam mert full fényerőn 1-et használva kicsit melegedett, vastagabb vezetéket meg nem kaptam/akartam használni.
A táp és a led közé bekerült egy ilyen mosfet modul (aliról rendeltem), amit az arduino pwm pin-jéről hajtok meg:
Elvileg 1 db ilyen modul elbír 400W-ot, de én inkább kettőt párhuzamosan kötve használok, hogy tuti ne melegedjen és tovább is bírja.
A kódban adott a be-, kikapcsolási és halványulási idő, valamint a max fényerő limit (ezeket lehet a gombokkal beállítani), amikor eljött a bekapcsolás ideje, elkezd szépen felrampelni a kitöltési tényező a max limitre a halványulási idő alatt, majd kikapcsolás előtt ugyanennyivel szépen sötétedni kezd.
A táp adagoló (+ víz utántöltés):
Rendeltem aliról 4db 12V-os dózis pumpát, amit belefaragtam egy úszószemüveg tokba, illetve csináltam hozzá egy rém egyszerű tranzisztoros kapcsolást, amit az arduino sima digitális lábairól hajtok meg (lényegében amikor a tranzisztor áramot kap az arduino-tól, rányitja a 12V-ot a motorra, ennyi...). Raktam be gombokat is, hogy manuálisan is tudjam működtetni, ha kell.
Kimértem, hogy egységnyi idő alatt mennyit pumpál a motor (ez nálam ~1ml/s), így szimplán kódból, a beállított mennyiségnek megfelelő ideig kapcsolom be a motort. Ez a megoldás már évek óta működik a másik akva alatt, úgyhogy elég megbízható.
Az elpárolgott víz utántöltés is ugyanígy megy, kimértem átlagban mennyi párolog el egy nap alatt és azt szépen visszatöltöm az egyik pumpával (RO vízzel). Korábban nagyon szerettem volna valahogy szenzorral mérni ezt, de nem találtam olyan megoldást, ami egyszerre robosztus és esztétikus.
CO2:
Ebből még semmi nincs kész, de az a terv, hogy a palackra kötött mágnesszelepet egy optocsatolt relé modullal kapcsolom be vagy ki szintén időzítve egy digitális lábról.
Ez nem tudna egyelőre többet mint egy sima időkapcsolós konnektor, de így legalább a fényhez képest fixen tudnám ki be kapcsolni és elég csak a fényt időzíteni.
Szóval összességében egyelőre minden open-loop, időzítés alapú. Lehetne szofisztikálni akár a co2-t ph szenzorral, vagy bővíteni víz hőmérséklet vezérléssel stb. de ezekre egyelőre nincs szükségem.
Asszem a lényegi pontokat leírtam, de ha valami kimaradt, szóljatok.