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.

Co je to řídicí systém REX?
Chci vědět více!

Demoverze už mi nestačí!

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.

Schéma zapojení pro automatizaci bazénu pomocí Raspberry Pi.

 

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:

Projekt automatizace bazénu v RexDraw

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é:

 


Raspberry Pi je registrovaná obchodní známka Raspberry Pi Foundation.