Raspberry Pi jako PLC - automatizace bazénu
Toto je návod pro zastaralou verzi systému REX. Pro seznámení s aktuální verzí postupujte podle příruček "Začínáme se systémem REXYGEN" uvedených níže:
Prohlášení: Neneseme odpovědnost za jakékoliv škody nebo poruchy na zařízení ani za ztrátu dat. V žádném případě netvrdíme, že tento návod je přesný, kompletní, a že použitý přístup je vhodný. Pamatujte, že síťové elektrické napětí vás může zabít, proto svůj projekt svěřte kvalifikovanému elektrikáři. Postupujte podle návodu dle svého uvážení a na vlastní riziko.
V prvním návodu o používání minipočítače Raspberry Pi jako PLC bylo předvedeno ovládání GPIO pinů Raspberry Pi pomocí řídicího systému REX. Další návod popisoval přidání tlačítka a nyní je čas vrhnout se na váš první reálný projekt. Letní sezóna právě začala, takže automatizace bazénu je celkem jasnou volbou.
Automatizace bazénu
Pojďme si nejdříve říct, co od projektu očekáváme:
- spínání bazénových světel každý den ve 21:00 a jejich vypnutí v 1:00
- běh filtrace mezi 2:00 a 4:00
- běh filtrace mezi 13:00 a 14:00
- možnost zrušení naplánovaného běhu filtrace v případě potřeby
Cíle jsou záměrně zjednodušeny, protože se jedná o váš první projekt. Pojďme se tedy podívat, jak vyřešit tento problém pomocí řídicího systému REX a minipočítače Raspberry Pi.
Spínání vysokých zátěží
Již víte, jak pracovat s GPIO piny uvnitř algoritmu řídicího systému REX. Jedinou otázkou tedy je, jak pomocí těchto pinů spínat střídavé elektrické napětí ze sítě. Na internetu lze najít mnoho návodů, které tento problém řeší. My v tomto projektu využijeme reléovou desku Sainsmart. Protože chceme spínat filtraci a osvětlení, budeme potřebovat verzi se dvěma relé.
Připojte reléovou desku k Raspberry Pi a zapojte světla a filtraci dle následujícího diagramu. Použijte svorky NO (Normálně Otevřeno) na svorkovnici.
Algoritmus pro automatizaci bazénu
Na vašem PC byste již měli mít nainstalovány vývojové nástroje řídicího systému REX a na vašem Raspberry Pi rozběhlé jádro RexCore. Můžeme se tedy soustředit na samotný algoritmus.
Poznámka: Pokud jste ještě nečetli naše předchozí návody, proveďte instalaci tak, jak je popsána v první části série článků Raspberry Pi jako PLC.
Algoritmus automatizace bazénu pomocí řídicího systému REX může vypadat například takto:
Soubory projektu si můžete jako obvykle stáhnout ze serveru GitHub. Můžete si stáhnout pouze soubory pool_exec.mdl a pool_task.mdl, nicméně doporučujeme stažení celého repozitáře příkladů ve formě standardního .zip archivu. Po rozbalení naleznete soubory ve složce RaspberryPi_examples\03_PoolAutomation. Pokud znáte systém Git a server GitHub, pravděpodobně využijete přímý odkaz na repozitář příkladů systému REX.
Naplánování spínání světel a filtrace je celkem jednoduché, stačí pouze použít blok REL pro porovnání zvolených spínacích časů se systémovým časem (blok TIME). Výsledky porovnávání stačí vhodně zkombinovat pomocí bloků logických funkcí AND a OR. Pro detailní popis funkce bloku na něj v RexDraw klikněte levým tlačítkem a zmáčkněte F1. Všimněte si, že reléová deska má obrácenou logiku, proto musíme negovat příkazové signály. Také si všimněte písmene H na konci označení výstupů Raspberry Pi. Tím je zajištěna inicializace GPIO pinů ve výstupním režimu a počáteční hodnota je nastavena na ON (HIGH), což zamezí neočekávanému chování relé při startu.
Poslední věc, která nám zbývá, je zpracování signálu z tlačítka, pomocí kterého manuálně zamezíme spouštění filtrace. Pro tento účel může být použit například funkční blok realizující RS klopný obvod. Klopný obvod můžeme brát jako proměnnou, která se nastaví na logickou jedničku, pokud na vstupu S (Set) bude logická jednička. Naopak do stavu logická nula je blok přepnut pomocí vstupu R1 (Reset). Stav vnitřní proměnné je pak reprezentován výstupem Q. Stav RS bloku určí akci, která se provede, pokud bude zmáčknuto tlačítko.
Pokud je tlačítko zmáčknuto, blok EDGE detekuje náběžnou hranu. Tato událost v kombinaci se stavem funkčního bloku RS nastaví buď signál set nebo reset. Pokud je výstup Q bloku RS nastaven na hodnotu logická jedna, blok ISSW se přepne na vstup i2 a tím pádem se vypne filtrace. V tomto případě navíc začne blikat signalizační LED dioda, protože RS blok ovládá i přepínač ISSW_LED. Pokud je výstup Q bloku RS na hodnotě logická nula, filtrace poběží podle plánu a LED dioda bude indikovat, jestli je filtrace spuštěna nebo ne.
Poslední blok, který ještě nebyl zmíněn, je blok MP. Ten zastává funkci virtuálního tlačítka. Změna jeho parametru BSTATE na ON v online režimu je to samé, jako byste zmáčkli fyzické tlačítko. To Vám umožní zakazovat či povolovat filtraci vzdáleně z vašeho počítače.
Spuštění řídicího algoritmu
Nyní již můžete projekt zkompilovat a nahrát do vašeho Raspberry Pi. Pokud nevíte, jak na to, přečtěte si první díl našeho seriálu o používání minipočítače Raspberry Pi jako PLC.
Jak mohu pokračovat v projektu?
Možnosti rozšíření Vašeho projektu jsou nekonečné. Potřebujete spouštět filtraci vícekrát než dvakrát denně? Chcete manuálně ovládat také světla? Jednoduše přidejte pár funkčních bloků a máte hotovo. Chcete měřit teplotu vody v bazénu? To je také možné...
V dalším návodu se zaměříme na tvorbu rozhraní mezi člověkem a strojem, tzv. HMI (Human Machine Interface) pro řídicí algoritmy systému REX. Díky HMI budete mít možnost ovládat váš bazén pomocí vašeho tabletu nebo chytrého telefonu přes domácí WiFi síť.
Řešení problémů
Zasekli jste se v některém bodě? Chceme o tom vědět, určitě nám napište.
Dodatečné informace
Můžete také:
- Prostudovat naši příručku Začínáme s řídicím systémem REX na Raspberry Pi a pustit si video pro začátečníky. Příručka i video popisují jednoduchou PID regulační smyčku.
- Prozkoumat bohatou knihovnu funkčních bloků řídicího systému REX.
- Navštívit stránky nadace Raspberry Pi, kde můžete nalézt více informací o minipočítači Raspberry Pi.
Raspberry Pi je registrovaná obchodní známka Raspberry Pi Foundation.
aktualizováno: 17. 5. 2019