HMI pro automatizaci bazénu pomocí Raspberry Pi

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:

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

Demoverze už mi nestačí!

Předchozí články se zabývaly automatizací bazénu a vytvářením příslušného řídicího algoritmu, který byl poté spuštěn na Raspberry Pi. Vývojové nástroje řídicího systému REX Vám sice umožňují ovládat Raspberry Pi na dálku přes domácí síť, pro typického uživatele je však tento způsob obsluhy zbytečně složitý. Když pomineme ovládání pomocí fyzických tlačítek, pravděpodobně nejsnazším způsobem ovládání je v dnešní době takzvané HMI na tabletu nebo smartphonu (Human Machine Interface, rozhraní mezi člověkem a strojem). Díky němu můžeme ovládat a monitorovat bazén přes domácí bezdrátovou síť.

RexHMI komponenty

K tvorbě webových HMI pro řídicí systém REX slouží sada programů a knihoven, která je souhrnně označována jako RexHMI. V tomto návodu si ukážeme, jak nainstalovat a použít jednotlivé komponenty této sady.

Celková struktura RexHMI je vidět na obrázku níže. Základem jsou webové stránky HTML5, které jsou podporovány moderními prohlížeči. Tyto stránky jsou distribuovány pomocí webserveru Lighttpd přes standardní HTTP protokol. Jakmile se načte stránka v prohlížeči, vytvoří se websocketové spojení mezi touto stránkou a jádrem RexCore, které běží na Raspberry Pi. Webový server Lighttpd a websocketový server RexWSTcp slouží jako prostředníci mezi uživatelem a řídicím algoritmem. Díky tomu může uživatel snadno sledovat a nastavovat vybrané signály či parametry běžícího řídicího algoritmu. Webové HMI řídicího systému REX

Spuštění řídicího algoritmu pro automatizaci bazénu

  1. Nejdříve si stáhněte soubory projektu z našeho GitHub repozitáře. 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.
  2. Spusťte na Vašem Raspberry Pi řídicí algoritmus. 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.
  3. Připojte se k Vašemu Raspberry Pi pomocí programu RexView a zkontrolujte, jestli běží řídicí algoritmus. Rozbalte strom algoritmu a uvidíte všechny funkční bloky, které jsou v algoritmu použity. Algoritmus automatizace bazénu v RexView
  4. Teď se již můžeme pustit do instalování komponent, které budeme potřebovat pro spuštění RexHMI.

Instalace komponent RexHMI na Vaše Raspberry Pi

  1. Instalace webového serveru i websocket serveru je součástí instalačních skriptů, které jsme již spustili dříve, takže se můžeme rovnou pustit do práce.
  2. Pouze pokud již na svém Raspberry Pi používáte jiný webserver jako třeba Apache (LAMP) server, budete muset v konfiguraci Lighttpd změnit defaultní port z 80 na např. 8008.

Spuštění Vašeho prvního HMI

  1. Pokud již nejste připojeni z Vašeho PC na Raspberry Pi pomocí RexView, tak se znovu připojte.
  2. Vyberte v menu Target->PC to target device.
  3. V novém okně vyberte Visualization (HMI) a nastavte cestu k podsložce HMI, která je uvnitř projektu.
    Nahrání HMI řídicího systému REX na cílové zařízení
  4. Klikněte na tlačítko Start Download a počkejte, než se nahrají soubory.
  5. Jakmile se HMI soubory nahrají do Raspberry Pi, můžete si HMI otevřít v jakémkoliv prohlížeči. Jednoduše zadejte IP adresu Vašeho Raspberry Pi. Měli byste vidět něco jako:
    WebBuDi HMI pro automatizaci bazénu
  6. Jestliže tikají hodiny a neobjeví se žádná chyba, pak jste vše nastavili správně. Toto je nejzákladnější typ webového HMI pro řídicí systém REX. Je složeno z klasických tlačítek (anglicky Buttons) a ukazatelů (Displays), proto má název WebBuDi.
  7. Během naplánovaných časů filtrace můžete sledovat, jestli filtrační pumpa opravdu běží.
    WebBuDi HMI pro automatizaci bazénu (běžící filtrace)
  8. Filtraci můžete zastavit a následně opět spustit pomocí tlačítka Filtration mode.
    WebBuDi HMI pro automatizaci bazénu (zakázaná filtrace)
  9. Tlačítko je spojené s funkčním blokem MP_BUTTON, který si můžete pamatovat z předchozího návodu. MP_BUTTON ovládá funkční blok RS_NOFILTER reprezentující RS klopný obvod, který můžete současně sledovat z RexView i RexDraw a pozorovat, co se stane při zmáčknutí tlačítka.
    Sledování řídicího algoritmu z RexView i RexDraw
  10. Zkuste také zmáčknout fyzické tlačítko, které je připojené k Vašemu Raspberry Pi.

Úprava WebBuDi HMI

  1. Pro úpravu HMI musíte v projektu změnit soubor index.html z podadresáře HMI. Otevřete soubor ve Vašem oblíbeném editoru (ne v MS Word!). Nic jiného kromě souboru index.html není potřeba měnit.
  2. V dokumentu sice naleznete nějaké záhlaví a zápatí, toho si však nemusíte všímat. Zajímat Vás bude pouze funkce document.ready, kde jsou definovány jednotlivé elementy HMI.
    Ukázka kódu WebBuDi řídicího systému REX
  3. Na obrázku výše je vidět, že v tomto případě se HMI skládá ze dvou sekcí pojmenovaných controls a status. Každá sekce má název (title) a obsahuje řádky (rows) tlačítek a ukazatelů.
  4. Každá řádka z pole rows představuje jeden prvek z obrazovky HMI. Definice každého prvku se skládá z aliasu, který musí být unikátní, popisu (description), takzvaného přípojného bodu (connection string) a typu elementu (type).
  5. Přípojný bod je v podstatě cesta k parametru nebo signálu v algoritmu systému REX. Například pool_task.NOT_LIGHTS:U udává cestu ke vstupu U funkčního bloku NOT_LIGHTS uvnitř algoritmu pool_task.
  6. Nejběžnějšími prvky HMI jsou:
    • DR - Digital Read (čtení logického signálu)
    • DW - Digital Write (zápis logické hodnoty)
    • AR - Analog Read (čtení analogového signálu)
    • AW - Analog Write (zápis analogové hodnoty)
    • MP - Manual Pulse (ručně generovaný puls)
    • ES - Empty Space (prázdné místo)
  7. Každý prvek může mít další vlastnosti, které se týkají jeho vzhledu. Ty zde však nebudeme jmenovat. Raději si sami prohlédněte zdrojový kód souboru, případně i dalších ukázek HMI z našeho GitHub repozitáře.
  8. Jakmile budete mít soubor index.html upraven podle svých představ, můžete zopakovat výše popsanou proceduru a nahrát HMI do Vašeho Raspberry Pi pomocí RexView. Nezapomeňte poté aktualizovat webovou stránku ve Vašem prohlížeči.

Pro zvídavé: Komplexní WebBuDi HMI pro PiFace Digital

Ukázka komplexnější WebBuDi vizualizace je připravena v demonstračním příkladu pro PiFace Digital. Určitě koukněte na video, které představuje možnosti WebBuDi HMI s řídicím systémem REX:

Je nějaká možnost vytvořit hezčí uživatelské rozhraní?

Samozřejmě ano! Nenechte si ujít článek o rozšíření RexHMI pro Inkscape, pomocí kterého můžete vytvořit úžasná HMI pro vaše projekty.

Ř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.