- Předpoklady
- Požadované komponenty
- Instalace Node-RED na Raspberry Pi
- Spuštění Node-RED v Raspberry Pi
- Porozumění rozhraní Node-RED
- Schémata
- Vytvoření toku v Node-RED
- Přidání tlačítka / přepínače v rozhraní Node-RED s Raspberry Pi
Přemýšleli jste někdy, jestli existuje způsob, jak vytvořit jednoduché prototypy řešení IoT, aniž byste museli trávit dny psaním kódů nebo stavět praktické pokročilé projekty bez kódování. Ano, s platformou Node-Red je to možné. Node-RED, vyvinutý společností IBM, je open-source programovací nástroj pro propojení hardwarových zařízení, API a online služeb novým a zajímavým způsobem. Poskytuje editor založený na prohlížeči, který usnadňuje propojení „ toků“ pomocí široké škály uzlů v paletě, které lze nasadit za běhu jediným kliknutím.
Node-RED je výkonný nástroj pro vytváření aplikací internetu věcí (IoT) s cílem zjednodušit programovací komponentu.
Používá vizuální programování, které vám umožňuje propojit bloky kódu, známé jako uzly, společně za účelem provedení úkolu. V dnešním tutoriálu prozkoumáme, jak můžete nasadit jednoduché projekty na malinové pi pomocí Node-RED. Raspberry Pi uzel červený tutorial se bude týkat;
- Instalace Node-RED na Raspberry Pi.
- Úvod do uživatelského rozhraní Node-RED
- Jak nastavit toky Node-RED
- Jak ovládat GPIO piny Raspberry Pi pomocí Node-RED
- Jak používat Node-RED vstupy, výstupy a rozhodování typu if-else pomocí přepínačů
Předpoklady
Tento výukový program bude založen na Raspbian stretch OS a předpokládám, že jste obeznámeni s nastavením Raspberry Pi a víte, jak SSH do Pi pomocí terminálového softwaru, jako je tmel. Pokud máte problémy s něčím z toho, na tomto webu najdete spoustu návodů pro Raspberry Pi, které vám mohou pomoci.
Chcete-li tento výukový program snadno dokončit, doporučím vám využít monitor připojený k malinové pi nebo použít software VNC Viewer. Pokud nemáte Monitor a začínáte s Pi, můžete si přečíst toto nastavení Headless Raspberry Pi a pokračovat v tomto výukovém programu. Zatímco Node-Red běží z webového prohlížeče a lze k němu přistupovat na vašem PC, ke kterému je Pi připojen přes IP adresu Pi, věřím, že zážitek s VNC / monitorem vám pomůže lépe reagovat.
Jako ukázku, jak ukázat, jak funguje Node-Red, použijeme Node-RED k naprogramování Raspberry Pi na ovládání LED připojené k jeho GPIO a později upravíme program tak, aby umožňoval ovládání LED z hmatového tlačítka připojeného k Pi GPIO.
Požadované komponenty
K sestavení tohoto projektu jsou vyžadovány následující komponenty;
- Raspberry Pi 3 s předinstalovanou SD kartou s předinstalovanou Raspbian Stretch
- 100 ohmový rezistor (1)
- LED (1)
- Prkénko (1)
- Propojovací vodiče muž-žena
- Hmatové tlačítko (1)
Instalace Node-RED na Raspberry Pi
Zatímco Node-Red je předinstalován na Raspbian Stretch OS, musíme jej upgradovat, než budeme moci využívat některé z jeho nejnovějších funkcí. Upgrade Node-Red bude
- Upgradujte stávajícího uživatele na LTS 8.x nebo 10.x Node.js a nejnovější Node-RED
- Migrujte všechny existující globálně nainstalované uzly do prostoru uživatelů ~ /.node-red, aby je bylo možné spravovat pomocí správce palet, NEUPLIKUJE žádné existující uzly nainstalované uživatelem. To musí provést uživatel ručně (viz níže).
- Volitelně (znovu) nainstalujte další uzly, které jsou předinstalovány na plný obraz Raspbian Pi.
Proces upgradu Node-Red je však podobný instalaci nového, takže pro účely tohoto tutoriálu s ním budeme zacházet jako s novou instalací, aby mohli následovat lidé používající jiné verze OS.
Při instalaci / upgradu Node-RED na Raspberry Pi postupujte podle následujících pokynů.
Začínáme upgradováním a aktualizací pí, abychom zajistili, že je vše aktuální, a vyhneme se problémům s kompatibilitou. Udělejte to otevřením terminálu nebo pomocí ssh a spusťte;
Sudo apt-get aktualizace
následován
sudo apt-get upgrade
Po dokončení spusťte bash skript níže na terminálu;
bash <(curl -sL
Bash skript bude dělat tyto věci
- Zeptejte se, zda chcete (znovu) nainstalovat další uzly Pi
- Uložte seznam všech globálně nainstalovaných uzlů red -node nalezených v adresáři / usr / lib / node_modules
- apt-get odebere existující Node-Red
- odebrat všechny binární soubory s uzly z / usr / bin a / usr / local / bin
- Odeberte všechny uzlově červené moduly z / usr / lib / node_modules a / usr / local / lib / node_modules
- Zjistit, zda byl Node.js nainstalován z balíčku Node.js nebo Debianu
- Pokud ne v8 nebo novější - odeberte podle potřeby a nainstalujte nejnovější v8 nebo v10 LTS (nepoužívá apt).
- Vyčistěte mezipaměť npm a mezipaměť.node-gyp, abyste odstranili všechny předchozí verze kódu
- Nainstalujte si nejnovější verzi Node-RED
- Znovu nainstalujte pod uživatelským účtem všechny uzly, které byly dříve nainstalovány globálně
- V případě potřeby znovu nainstalujte další uzly Pi
- Rebuild all nodes - to recompile any binaries to match latest Node.js version
- Přidejte do / usr / bin příkazy node-red-start, node-red-stop a node-red-log
- Přidejte zástupce a ikonu nabídky
- Přidejte systémový skript a nastavte uživatele
- Pokud na Pi přidáte teplotu CPU -> příklad IoT
Výše uvedený skript bash spouští mnoho příkazů jako sudo a odstraňuje stávající Node.js a základní adresáře Node-RED. Můžete zkontrolovat obsah skriptu na této stránce GitHub před spuštěním, abyste se ujistili, že to neovlivní žádný projekt, který již na Pi máte.
Po dokončení instalace byste nyní měli vidět ikonu Node-Red pod seznamem programovacích aplikací v nabídce.
Spuštění Node-RED v Raspberry Pi
Node-Red lze spustit pomocí části nabídky na ploše vašeho malinového pi, přes terminál nebo přes ssh.
Chcete-li spustit na ploše maliny pi, klikněte na ikonu Raspberry, najeďte myší na Programování a spusťte ji kliknutím na Node-RED (Nabídka> Programování> NodeRed).
Může být také spuštěn z ssh nebo terminálu spuštěním;
start-uzel-červená
Mělo by se zobrazit okno, jako je níže uvedené, zobrazující červené spuštění uzlu na ploše.
Jakmile to uvidíte, přejděte do nabídky-> internet a spusťte chromový webový prohlížeč. I když vaše Raspberry pi ke spuštění Node-Red nepotřebuje internet, jako rozhraní používá prohlížeč.
Po spuštění chrómu zadejte do adresního řádku adresu localhost: 1880 a poté klávesu Enter. 1880 je port na malinové pí, na kterém je přednastavena komunikace Node-Red. Mělo by se zobrazit rozhraní Node-Red, jak je znázorněno na obrázku níže.
Porozumění rozhraní Node-RED
Rozhraní Node-Red se skládá z panelu toku, palety uzlů, konzoly pro ladění a informační konzoly, jak je zvýrazněno na obrázku výše.
Panel toku je místo, kde jsou uzly spojeny dohromady za účelem vytvoření programu, který se v Node-Red nazývá tok, zatímco paleta uzlů obsahuje objekty, které jsou reprezentativní pro hardware, protokoly a softwarové funkce spojené se zařízeními. Zahrnuje protokoly jako MQTT pro IoT a výstupní a vstupní režimy GPIO pro desky, jako je malina pi. Informační konzole poskytuje informace o zvýrazněných / vybraných objektech během ladicí konzolyfunguje stejně jako sériový monitor Arduino a může poskytovat zpětnou vazbu, když běží tok. Tlačítko nasazení se používá k nahrání toku na cílový hardware. Tlačítko Nabídka obsahuje různé typy nahrávání, které vám pomohou získat z vašeho projektu maximum. Po spuštění Node-Red můžeme nyní pokračovat v sestavování ukázkového projektu.
Schémata
Jak již bylo uvedeno v úvodu, naším dnešním demo projektem bude ovládání GPIO Raspberry Pi pomocí toku Node-RED. Abychom ukázali rozdíly ve stavu GPIO, připojíme k GPIO LED tak, že když je zapnutý konkrétní pin GPIO, LED se rozsvítí a naopak.
Připojte LED k Raspberry PI, jak je znázorněno na níže uvedených schématech.
Totéž stavím na svém hardwaru pomocí prkénka, LED, rezistoru a některých spojovacích vodičů. Jakmile je připojení provedeno, moje hardwarové nastavení vypadá nějak takto.
Tento projekt lze snadno převést na projekt domácí automatizace, pouhým nahrazením LED relé a jakýmkoli střídavým zařízením se naučíte, jak to udělat, procházením různých projektů domácí automatizace.
Vytvoření toku v Node-RED
S připojenou LED můžeme pokračovat ve vývoji toku. Programy v NodeRed se nazývají toky, stejně jako je Arduino IDE nazývá skicemi. Toky jsou vytvářeny pomocí kombinace uzlů. Můžete vytvořit více toků, které mohou běžet všechny najednou, ale pro tento tutoriál vytvoříme jeden tok, který zapne / vypne LED.
Chcete-li začít, přejděte do dolní části palety Uzly a uvidíte sekci malinových pí uzlů na konci se dvěma uzly označenými rpigpio. Tyto uzly se používají pro komunikaci s GPIO Raspberry Pi. Jeden z uzlů je pro vstup, zatímco druhý je pro výstup rozlišený podle polohy loga maliny pi. U vstupního uzlu logo přichází před textem, zatímco u výstupního uzlu logo přichází za textem, jak je znázorněno na obrázku níže.
V tomto kurzu budeme využívat výstupní uzel, přetáhněte jej do části toku rozhraní. Tento krok je podobný deklaraci konkrétního pinu vašeho Arduina jako výstupu pomocí příkazu pinMode () . Poklepejte na výstupní uzel a otevře se vyskakovací okno, jak je znázorněno níže, které vám umožní upravit vlastnosti uzlu.
V části vlastnost pin vyberte GPIO17 (pin 11). Poté nastavte vlastnost type na „ digitální výstup “ a zaškrtněte „ Initialize pin state?“ Zaškrtávací políčko ponechává možnost „ Počáteční úroveň kolíku “ na nízké hodnotě (0). Zadejte uzel libovolný název, který se vám líbí, a klikněte na tlačítko Hotovo.
Název uzlu by se měl automaticky změnit na název, který jste zadali v nastavení vlastností. Například jsem jej pojmenoval jako LED, a proto se název uzlu také změní jako LED, jak je znázorněno níže.
K zapnutí / vypnutí LED musíme použít vstup, něco k řízení akce. I když bychom mohli použít tlačítko, chci to použít k zavedení funkce v Node-RED, která umožňuje vkládání zpráv do toků. Tyto funkce se nazývají Inject Node. Budeme používat dva injekční uzly. Jedním z nich bude rozsvícení LED, zatímco druhým zhasnutí.
Přejděte na paletu uzlů a přetáhněte injektovaný uzel do toku. Je to první uzel v paletě se šipkou, uzel pro vložení je zvýrazněn na obrázku níže.
Poklepejte na něj a upravte jeho vlastnosti. Změňte datový typ na řetězec kliknutím na rozevírací seznam před užitečným zatížením a do pole Payload zadejte 1. Hodnota v poli užitečného zatížení je to, co bude vloženo do toku při stisknutí uzlu. Nastavte název uzlu na „ZAPNUTO“. Stisknutím tlačítka „Hotovo“ uložte.
Výše uvedený postup opakujte pro druhý uzel a nastavte hodnotu užitečného zatížení na „0“ a jeho název jako „vypnutý“, jak je znázorněno níže.
Ve funkci vlastností lze rozbalovací nabídku opakování použít k automatizaci vstřikování, takže tlačítka jsou stlačována v intervalech. To lze použít k vytvoření efektu mrknutí. Spojte uzly dohromady, jak je znázorněno níže, přetažením šedé tečky na jednom z uzlů na druhý vytvořte tok.
Tím jsme dokončili náš první Node-Red Flow.
Dalším krokem je nasazení toku na malinovou pí. Klikněte na červené tlačítko nasazení. Měli byste vidět „úspěšně nasazený“ blesk v horní části obrazovky, jak je uvedeno níže.
Kliknutím na šedé tlačítko za injekčními uzly aktivujete každý z uzlů.
Kliknutím na „zapnutý“ injekční uzel byste měli vidět, že se úspěšně zobrazí „injikovaný“ „zapnuto“ a rozsvítí se LED. LED dioda by měla zhasnout, když kliknete na „vypnutý“ injekční uzel.
A je to. Kompletní fungování tohoto nastavení najdete ve videu, na které odkazujete ve spodní části této stránky.
Přidání tlačítka / přepínače v rozhraní Node-RED s Raspberry Pi
Abychom vysvětlili, jak připojit / přidat vstupní prvek do vašeho toku, vezmeme výše uvedený tok dále přidáním tlačítka, které nahradí injektované uzly.
Připojte tlačítko k malinové pí tak, že jedna noha tlačítka je připojena k zemi a druhá je připojena ke kolíku GPIO 4 (kolík 11) malinové pí, jak je znázorněno na níže uvedených schématech.
Po dokončení přejděte zpět na Node-Red a odstraňte dva injekční uzly, které jsme použili dříve, kliknutím na uzly a stisknutím klávesy Delete na klávesnici nebo poklepáním na uzly a stisknutím klávesy Delete ve vyskakovacím okně. Po dokončení posuňte paletu uzlů dolů do sekce Raspberry Pi a vyberte vstupní uzel. Je to ten s ikonou maliny pi nalevo před jménem uzlu.
Přetáhněte uzel do toku a dvojitým kliknutím na něj upravte vlastnosti. Nastavte kolík na GPIO 4 (kolík 11) a rozevírací seznam před rezistorem vytáhněte. Toto „vytáhne“ GPIO 4 na HIGH. Po nastavení vlastností klikněte na tlačítko Hotovo.
Abychom mohli dělat logická rozhodnutí, když je přepínač stisknutý, spíše než jen zkratování GPIO4 k zemi, budeme používat uzel přepínače. Vyhledejte jej v paletě uzlů pod funkční sekcí a přetáhněte na tok.
Uzel přepínače vám umožňuje rozhodovat se podobně jako příkazy „if“. Může být nastaven tak, aby měl různé výstupy v závislosti na vstupní hodnotě. V tomto tutoriálu to budeme konfigurovat pomocí dvou výstupních cest, takže když je vlastnost msg.payload rovna 1 (přepínač není stisknutý), měla by následovat první cestu a druhá cesta bude následována, pokud bude jakýkoli jiný vstup na vstupu je pozorována jiná než 1 (spínač je stisknutý). Cesty se přidávají pomocí tlačítka „+ přidat“. Poklepejte na uzel a proveďte konfiguraci, jak je popsáno výše. Po dokončení klikněte na Hotovo.
Jakmile stisknete tlačítko Hotovo, měli byste vidět, že se obě cesty odrážejí ve výhledu uzlu přepínače, protože nyní bude mít na výstupu dvě křižovatky.
Dále musíme uvést uzel „změny“. Uzel změny se použije k nastavení stavu LED na základě výsledku uzlu argumentu.
Budeme používat dva z uzlů změny. Užitečné zatížení prvního bude nastaveno na 0, jak je znázorněno na obrázku níže, a užitečné zatížení druhého bude nastaveno na jednu. Po úpravě vlastností u obou klikněte na Hotovo.
Pro lepší vysvětlení si pamatujte, že jsme použili pull-up rezistor? Když tedy nebylo stisknuto tlačítko, výstup na tomto pinu bude VYSOKÝ (1), což znamená, že pokud jej projdeme uzlem spínače, LED bude „svítit“, protože by to tak nemělo být, budeme použijte uzel „změnit“ a nastavte jej na LOW (0). Druhý uzel „change“ se používá k nastavení hodnoty na jednu tak, že když je detekován cokoli jiného než stav HIGH GPIO pinu 4, měl by rozsvítit LED „on“, protože to znamená, že bylo stisknuto tlačítko. Připojte uzly změny a zbytek uzlů dohromady, jak je znázorněno na obrázku níže.
Díky tomu jsme nyní připraveni projekt nasadit. Projděte připojení a ujistěte se, že je vše tak, jak má být, a poté klikněte na tlačítko pro nasazení. Jako obvykle, pokud se vám to podaří, měli byste vidět vyskakovací okno s úspěšným nasazením a nyní být schopni ovládat led pomocí přepínače.
Zatímco Node-Red usnadňuje a urychluje prototypování vaší sestavy bez obav o kód, ve skutečnosti nemusí být nejvhodnější, zejména pro zkušené vývojáře, kteří budou chtít flexibilitu a kontrolu nad programem. Je to však skvělý nástroj, který vám umožní vytvořit prototyp během několika minut.
Do příště!