Ahoj, rád by som vás uviedol do projektu, ktorý som realizoval počas tohto roka cez prázdniny. Tvoril som webovo orientovaný systém pre záhradníctvo, ktoré sa špecializuje na predaj a pestovanie rôznych druhov rastlín, stromčekov, kvetov...
Webovo orientovaný systém bol navrhnutý, aby spĺňal tieto požiadavky:
Záznam teploty, úrovne dažďa
Riadenie vykurovania/chladenia na základe teploty
Riadenie závlahy v nastavených časoch, alebo na vyžiadanie so započítaním stavu počasia
Štatistiky
Vzdialený reštart dosky
Logy
Login systém
Ako riadiaci mikrokontróler sa použilo Arduino Mega, nakoľko Uno bolo na hrane s pamäťou a výrazne sa zasekávalo. Arduino Mega bola výborná voľba vďaka dostatočnému počtu pinov a najmä veľkej pamäti pre program s rozsiahlejšou RAM pamäťou.
Arduino posiela údaje o teplote a daždi na web prostredníctvom Ethernet shieldu Wiznet W5100. Teplota je vyčítaná digitálne zo senzoru DS18B20 a údaj o daždi prostredníctvom analógovej hodnoty. Po odoslaní dát doska spustí PHP skript logiky, čo aktualizuje všetky výstupy.
Doska si následne už len sťahuje stavy ZAP/VYP pre každý výstup, ktorý aplikuje. Na strane mikrokontroléru neprebieha žiadna operácia, ktorá by dosku zaťažovala. Celková odozva systému je do 6 sekúnd. Teplotné čidlo je v sklenníku, kde je nutné udržiavať teplotu. Počas horúcich letných dní sa chladí na nastavenú teplotu s volitelnou hysterézou, počas zimných mesiacov sa vykuruje so stanovenou teplotou a hysterézou. Zvolenie vykurovania/chladenia je nutné v systéme spraviť manuálne. Je možné manuálne aj chladiť/vykurovať (ZAP/VYP) na dobu neurčitú.
Riadenie okruhov pozostáva zo štyroch fyzických okruhov, ktoré sú riadené na základe času so zvolením dní v týždni, kedy majú tieto časy platiť. Ak nie je tento režim navolený, výstup je stále vypnutý a zapne sa na vyžiadanie používateľa z webu na nastavenú dobu v minútach. Ak počas vyžiadania prší, systém sa vypne a už nezapne. Ak je však nastavený automatický režim s časom a počas tohto času začne pršať, okruh sa vypne a ak prestane pršať pred koncom staveného intervalu, opäť sa zapne.
Do Arduina bol implementovaný watchdog pre bezporuchový chod, kedy je Arduino reštartované, ak sa zasekne. V prípade vypadnutia internetu, alebo nedostupnosti webu, napríklad z dôvodu údržby sú okruhy aj relé kúrenia a chladenia po dvoch minútach automaticky vypnuté do nadviazania spojenia s webom. Po reštarte Arduina sú všetky výstupy vypnuté. Logy zaznamenávajú neúspešné prihlásenie do rozhrania (zlé meno alebo heslo) so zápisom IP adresy klienta, ktorý sa o pripojenie pokúsil. Logy zaznamenávajú aj údaje o neplatných dátach zo senzoru DS18B20 85.00, alebo -127.00, čo sú typické poruchy senzoru v dôsledku zlého zapojenia, chyby CRC.
Súčasťou systému sú aj grafy, kde je možné prezerať vývoj teploty za 24 hodín od momentu načítania grafu a 7 dní dozadu, rovnako aj aktivitu okruhov a aktivitu chladenia/kúrenia. Aktivity sú zaznamenávané každú minútu a teplota raz za 5 minút do databázy (netýka sa práce s real-time dátami). Všetky vstupy/výstupy s ktorými systém pracuje je možné si nazvať podľa seba, pre prehľadnosť, kde sa daný okruh na závlahu používa. Ako výstupy na relé je možné použiť solenoidy, čerpadlá s celkovým výkonom 2,3kW na jedno relé, t.j. 230V 10A.
Celý systém je skrytý za loginom, ktorý je taktiež možné meniť z web rozhrania.
Systém je praktický, funkčný a pomáha záhradníctvu vo veciach pravidelného zavlažovania.
Ak vás zaujíma viac info o projekte: https://arduino.php5.sk/ovladanie-zavlahy.php