Softvérová architektúra riadenia hydroponického systému

Základnú softvérovú architektúru by sme mohli rozdeliť do dvoch základných častí. Prvá, jadro celého systému, predstavuje súbor obslužných programov bežiacich najbližšie k hardvérovej vrstve priamo na Raspberry Pi. Všetky obslužné programy snímačov sú napísané v programovacom jazyku python.

Aktuálne sú k Raspberry Pi pripojené nasledujúce akčné členy a senzory:

  • DS18B20 digitálny, vode odolný snímač teploty – (1-wire),
  • HC-SR04 digitálny ultrazvukový snímač – (GPIO),
  • Atlas Scientific PH snímač vodného roztoku – (RS-232),
  • Atlas Scientific EC snímač vodného roztoku (RS-232),
  • YF-S205 prietokomer 2x – (GPIO),
  • DHT22 snímač vlhkosti a teploty vzduchu – (GPIO),
  • TSL2561 digitálny snímač osvetlenia 2x – (I2C),
  • relé osemkanálové – (GPIO) – na riadenie vodnej pumpy, okysličenia, osvetlenia a ventilácie,
  • IP kamera Dlink DCS 930L 2x – (LAN).

Schémy zapojenia sú dostupné na vyžiadanie, v prípade záujmu kontaktujte autorov článku.

Všetky informácie zo snímačov sú ukladané do lokálnej databázy Redis na zariadení Raspberry Pi. Obslužné programy sú navrhnuté tak, aby bolo pomocou konfiguračného súboru možné jasne špecifikovať zapojenie jednotlivých snímačov a interval aktualizácie hodnôt, čo nazývame aj PPSS (Plug & Play Sensor System). Tieto hodnoty sú následne synchronizované na vzdialenú databázu Redis umiestnenú na cloude.

Dáta môžu byť následne spracované a použité komplikovanejšími algoritmami pri monitoringu, plánovaní a optimalizácii, ktoré nemožno spustiť priamo na Raspberry Pi pre jeho relatívne nízku výpočtovú výkonnosť. Takisto sú tieto dáta prístupné iným zariadeniam mimo lokálnej siete, v ktorej je hydroponický systém umiestnený. Takáto architektúra umožňuje realizovať vzdialený monitoring veľmi efektívne a hlavne bezpečne, keďže žiadne zariadenie okrem interného servera sa priamo na hydroponický systém nemôže pripojiť. Obojstranná komunikácia medzi cloud serverom a riadiacou jednotkou Raspberry Pi je zabezpečená pomocou VPN. Softvérová architektúra je uvedená na obr. 1.

Horná časť obr. 1 predstavuje rad programových nástrojov bežiacich v cloudovom prostredí. Okrem plánovania úloh, diagnostiky porúch a systému podpory života v tomto prostredí existuje mnoho ďalších menších obslužných programov zabezpečujúcich spojenie s hydroponickým systémom, obojsmernú synchronizáciu dát, monitoring a vzdialené ovládanie. Tieto malé obslužné programy využívajú maximum technológií, ktoré sú natívne pre prostredie, v ktorom sú spúšťané (cron, redis backup a podobne), preto im nebudeme venovať veľa pozornosti. Piliermi spoľahlivosti nami navrhovaného hydroponického systému sú už spomenuté softvérové nástroje: plánovanie, monitoring, diagnostika a podpora života rastlín. Každý z týchto nástrojov využíva inú metódu riadenia v spojení s umelou inteligenciou.

Optimalizácia spotreby energie a plánovanie

Tento nástroj slúži, ako už vyplýva z názvu, na optimalizáciu spotreby energie hydroponického systému pomocou precízneho plánovania dejov prebiehajúcich v celom systéme. Ide hlavne o plánovanie spúšťania osvetlenia a vodných púmp v závislosti od typu pestovanej rastliny a predpokladaných podmienok, v akých je daný systém umiestnený. Tento softvérový prostriedok využíva metódu riešenia danej úlohy pomocou genetických algoritmov.

Nastavenia hydroponického systému možno optimalizovať na najnižšiu spotrebu energie (pričom sú zachované kritické hodnoty potrebné na rast rastlín), na druhej strane možno optimalizovať s ohľadom na udržanie ideálnych podmienok pri minimalizácii spotreby energie. V tomto procese môžu byť takisto použité sekundárne parametre, ako sú napríklad konzervácia energie, zamedzenie presahu maximálnej aktuálnej spotreby energie alebo využitie lacnejšej energie v priebehu nočných hodín. Vstupom sú teda kritériá optimalizácie a konfigurácia daného systému.

Pod konfiguráciou rozumieme hlavne počet vodných púmp a ich príkon, príkon osvetlenia a počet svietidiel, objem pestovateľských nádrží a druh pestovanej rastliny, pretože každá rastlina vyžaduje iné podmienky zavlažovania, teploty prostredia, osvetlenia a podobne. Výstupom z tohto softvérového balíčka je statický plán spúšťania osvetlenia a zavlažovania. Na obr. 2 je znázornená jedna z možností reprezentácie jedinca a metóda kríženia rodičov v použitom genetickom algoritme.

Monitoring a diagnostika porúch

Tento nástroj predstavuje kritický prvok v celom navrhovanom systéme. Bez monitorovacích nástrojov a prostriedkov na detekciu porúch by bolo veľmi komplikované udržiavať ideálne podmienky rastu rastlín. Hydroponický systém je veľmi dynamický a mnoho atribútov závisí aj od okolitého prostredia. Keďže plánovanie je statické, v prvom rade je potrebné nepretržité monitorovanie naplánovaných úkonov a v prípade, že sa stav systému odchyľuje od plánovaného stavu, treba vhodným spôsobom autonómne zasiahnuť alebo upovedomiť operátora.

Navyše tento softvérový prostriedok využíva fuzzy expertné systémy na identifikáciu porúch v distribučnom systéme alebo snímacích zariadeniach. Výstupom je priama notifikácia operátora alebo informácia pre softvérový modul na najvyššej vrstve, zabezpečujúci podporu života rastlín. Uvedená časť softvérového riešenia zároveň predstavuje rozhranie na interakciu človeka s hydroponickým systémom a podporuje takisto vzdialené ovládanie a logovanie historických dát pre neskoršiu analýzu a data miningové operácie.

Modul je realizovaný ako dynamické responzívne webové rozhranie prístupné z akéhokoľvek miesta na svete s pripojením k internetu. Nie je závislé od platformy klientskeho zariadenia, a teda je spustiteľné na pracovných staniciach a mobilných zariadeniach. Ukážka demo verzie monitorovacieho zariadenia je zobrazená na obr. 3.

Systém podpory života rastlín

Hierarchicky najvyššie postavený modul predstavuje systém podpory života rastlín. Tento softvérový balíček monitoruje aktuálny stav systému, aktuálny stav okolitého prostredia a historické dáta v reálnom čase. V prípade potreby aktívne zasahuje do navrhnutého plánu akcií, ak to nie je v rozpore s nastaveniami, tak aby udržal základné podmienky potrebné na rast rastlín. V tomto prípade je možné rôzne nastavenie citlivosti tohto modulu od takmer úplne pasívneho až po agresívny mód. Principiálne je tento modul najzložitejší a na jeho správne fungovanie treba nazbierať ešte veľké množstvo dát, na základe ktorých ho možno neustále ladiť. Jadrom tohto softvérového balíčka sú fuzzy kognitívne mapy, respektíve ich upravená implementácia – adaptívne fuzzy kognitívne mapy. Táto časť komplexného softvérového balíčka je zatiaľ predmetom výskumu a práve je v experimentálnej fáze, preto v tomto seriáli zatiaľ nebude bližšie špecifikovaná.

Celkovo je súbor všetkých balíčkov softvérového riešenia a ich prepojení nami navrhovaného riadiaceho systému hydroponických zariadení veľmi komplexný. Preto ponúkame na zjednodušenie globálny pohľad na softvérovú architektúru na obr. 4.

Na obr. 4 vľavo je samotný hardvér hydroponického systému a kompletná konštrukcia s riadiacou jednotkou Raspberry Pi a so snímačmi a akčnými členmi, ktoré sú obsluhované jadrom softvérovej časti. V strede je cloudové riešenie s opísanými aplikáciami a vpravo sú zobrazené rôzne prídavné klientske aplikácie a rozhranie pre používateľov. Všetky tieto moduly sú vzájomne prepojené, kde cloud v tomto prípade predstavuje pomyselnú križovatku komunikácie. 

Momentálne je projekt v experimentálnej fáze. Postupne sú testované jednotlivé moduly a prebiehajú prvé experimenty s reálnymi rastlinami. V budúcej a poslednej časti seriálu zhrnieme výsledky projektu, opíšeme výsledky experimentálnej časti a ďalšie možné scenáre vývoja a využitia tejto platformy vo výskumnej aj komerčnej sfére v budúcnosti.

Ing. Martin Paľa
martin.pala@croptek.sk

Ing. Radoslav Bielek
radoslav.bielek@croptek.sk

Bc. Jakub Szasz
jakub.szasz@croptek.sk