- Podmienky
- Požadované komponenty
- Inštalácia Node-RED na Raspberry Pi
- Spúšťame Node-RED v Raspberry Pi
- Pochopenie rozhrania Node-RED
- Schémy
- Vytvorenie toku v Node-RED
- Pridanie tlačidla / prepínača v rozhraní Node-RED s Raspberry Pi
Zaujímalo vás, či existuje spôsob, ako vytvoriť jednoduché prototypy riešení IoT bez toho, aby ste museli tráviť dni písaním kódov alebo budovať praktické pokročilé projekty bez kódovania. Áno, s platformou Node-Red je to možné. Node-RED, vyvinutý spoločnosťou IBM, je open-source programovací nástroj na prepojenie hardvérových zariadení, rozhraní API a online služieb novým a zaujímavým spôsobom. Poskytuje editor založený na prehliadači, ktorý uľahčuje prepojenie „ tokov“ pomocou širokej škály uzlov v palete, ktoré je možné nasadiť za behu jediným kliknutím.
Node-RED je výkonný nástroj na vytváranie aplikácií internetu vecí (IoT) s cieľom zjednodušiť programovací komponent.
Používa vizuálne programovanie, ktoré vám umožňuje spojiť bloky kódu, známe ako uzly, aby ste mohli vykonať úlohu. V dnešnom tutoriáli preskúmame, ako môžete nasadiť jednoduché projekty na malinovú pí pomocou Node-RED. Výukový program pre malinový pi uzol-červená sa bude týkať;
- Inštalácia Node-RED na Raspberry Pi.
- Úvod do užívateľského rozhrania Node-RED
- Ako nastaviť toky Node-RED
- Ako ovládať GPP piny Raspberry Pi pomocou Node-RED
- Ako používať Node-RED vstupy, výstupy a ak je iné podobné rozhodovanie pomocou prepínačov
Podmienky
Tento tutoriál bude založený na Raspbian stretch OS a budem predpokladať, že ste oboznámení s nastavením Raspberry Pi a viete, ako SSH do Pi pomocou terminálového softvéru, ako je tmel. Ak máte problémy s niečím z toho, na tomto webe nájdete množstvo návodov na Raspberry Pi, ktoré vám môžu pomôcť.
Aby som výukový program ľahko dokončil, odporučím vám, aby ste využili monitor pripojený k malinovej pi alebo softvér VNC Viewer. Ak nemáte monitor a začínate s Pi, môžete si prečítať toto nastavenie bezhlavého malinového Pi a pokračovať v tomto výučbe. Zatiaľ čo Node-Red beží z webového prehliadača a je k nemu prístup na vašom PC, ku ktorému je Pi pripojený prostredníctvom IP adresy Pi, verím, že skúsenosti s VNC / monitorom vám umožnia lepšie veci.
Ako ukážka, ktorá ukazuje, ako funguje Node-Red, použijeme Node-RED na naprogramovanie Raspberry Pi na kontrolu LED pripojenej k jej GPIO a neskôr upravíme program tak, aby umožňovala ovládanie LED z hmatového tlačidla pripojeného k Pi GPIO.
Požadované komponenty
Na zostavenie tohto projektu sú potrebné nasledujúce komponenty;
- Raspberry Pi 3 s predinštalovanou kartou SD s predinštalovanou technológiou Raspbian Stretch
- 100 ohmový rezistor (1)
- LED (1)
- Nepárové pole (1)
- Prepojovacie vodiče muž-žena
- Hmatové tlačidlo (1)
Inštalácia Node-RED na Raspberry Pi
Zatiaľ čo Node-Red je predinštalovaný na Raspbian Stretch OS, musíme si ho inovovať, aby sme si mohli vychutnať niektoré z jeho najnovších funkcií. Aktualizácia Node-Red bude
- Inovujte existujúceho používateľa na LTS 8.x alebo 10.x Node.js a najnovšiu Node-RED
- Migrujte akékoľvek existujúce globálne nainštalované uzly do priestoru používateľov ~ /.node-red, aby ich bolo možné spravovať pomocou správcu palet, NEAKTUALIZUJE sa nijaký používateľ nainštalovaný existujúci uzol. Toto musí urobiť užívateľ ručne (pozri nižšie).
- Voliteľne (znova) nainštalujte ďalšie uzly, ktoré sú predinštalované na celý obraz Raspbian Pi.
Proces upgradovania Node-Red je však podobný ako pri inštalácii nového, takže pre účely tohto tutoriálu s ním budeme zaobchádzať ako s novou inštaláciou, aby ho mohli sledovať ľudia používajúci iné verzie OS.
Pri inštalácii / aktualizácii Node-RED na vašom Raspberry Pi postupujte podľa nasledujúcich pokynov.
Začíname aktualizáciou a aktualizáciou kódu pí, aby sme zaistili, že je všetko na ňom aktuálne, a aby sme sa vyhli problémom s kompatibilitou. Urobte to otvorením terminálu alebo pomocou ssh a spustite;
Aktualizácia Sudo apt-get
nasledovaný
sudo apt-get upgrade
Keď je toto hotové, spustite na termináli bash skript nižšie;
bash <(zvlnenie -sL
Bash skript bude robiť tieto veci
- Opýtajte sa, či chcete (znova) nainštalovať ďalšie uzly Pi
- Uložte si zoznam všetkých globálne nainštalovaných uzlov červené - uzly nájdených v priečinku / usr / lib / node_modules
- apt-get odstráni existujúcu Node-Red
- odstráňte všetky binárne súbory s uzlom červenej z priečinkov / usr / bin a / usr / local / bin
- Odstráňte všetky moduly s uzlom červenej z priečinkov / usr / lib / node_modules a / usr / local / lib / node_modules
- Zistite, či bol Node.js nainštalovaný z balíka Node.js alebo Debianu
- Ak nie je v8 alebo novší - podľa potreby odstráňte a nainštalujte najnovší v8 alebo v10 LTS (nepoužívate apt).
- Vymažte medzipamäť NPM a medzipamäť.node-gyp, aby ste odstránili všetky predchádzajúce verzie kódu
- Nainštalujte si najnovšiu verziu Node-RED
- Preinštalujte pod používateľským kontom všetky uzly, ktoré boli predtým nainštalované globálne
- V prípade potreby znova nainštalujte ďalšie uzly Pi
- Prebudovať všetky uzly - na prekompilovanie všetkých binárnych súborov tak, aby zodpovedali najnovšej verzii Node.js
- Pridajte príkazy node-red-start, node-red-stop a node-red-log do / usr / bin
- Pridajte odkaz a ikonu ponuky
- Pridajte systémový skript a nastavte používateľa
- Ak na Pi pridať teplotu procesora -> príklad IoT
Vyššie uvedený bash skript spúšťa mnoho príkazov ako sudo a odstraňuje existujúce adresáre Node.js a základné adresáre Node-RED. Pred spustením tejto stránky môžete skontrolovať obsah skriptu, aby ste mali istotu, že to neovplyvní žiadny projekt, ktorý už na Pi máte.
Po dokončení inštalácie by sa teraz mala v zozname programovacích aplikácií vo vašej ponuke zobraziť ikona Node-Red.
Spúšťame Node-RED v Raspberry Pi
Node-Red sa dá spustiť cez sekciu ponuky na ploche vášho malinového pi, cez terminál alebo cez ssh.
Ak chcete spustiť program na ploche maliny pi, kliknite na ikonu Raspberry, umiestnite kurzor myši na ikonu Programovanie a kliknutím na položku Node-RED (Ponuka> Programovanie> NodeRed) ju spustite.
Môže byť tiež spustený z ssh alebo terminálu spustením;
uzol-červený-štart
Mali by ste vidieť okno, ako je toto dole, ktoré ukazuje spustenie uzla na ploche.
Keď to uvidíte, choďte na ponuku-> internet a spustite webový prehliadač chrómu. Aj keď vaša Raspberry pi nepotrebuje na spustenie Node-Red internet, používa ako svoje rozhranie prehliadač.
Po spustení chrómu zadajte do panela s adresou adresu localhost: 1880 a potom kláves Enter. 1880 je port na malinovej pí, na ktorom je prednastavená komunikácia pomocou Node-Red. Toto by malo zobrazovať rozhranie Node-Red, ako je to znázornené na obrázku nižšie.
Pochopenie rozhrania Node-RED
Rozhranie Node-Red sa skladá z panela toku, palety uzlov, ladiacej konzoly a informačnej konzoly, ako je zvýraznené na obrázku vyššie.
Panel toku je miesto, kde sú uzly spojené dohromady, aby vytvorili program, ktorý sa v Node-Red nazýva flow, zatiaľ čo paleta Node obsahuje objekty, ktoré reprezentujú hardvér, protokoly a softvérové funkcie spojené so zariadeniami. Zahŕňa protokoly ako MQTT pre IoT a výstupné a vstupné režimy GPIO pre dosky, ako je malina pi. Info konzola poskytuje informácie o zvýraznené / vybraných objektov, zatiaľ čo konzoly,funguje rovnako ako sériový monitor Arduino a môže poskytovať spätnú väzbu, zatiaľ čo tok prebieha. Tlačidlo nasadenia sa používa na nahranie toku na cieľový hardvér. Tlačidlo ponuky obsahuje rôzne typy nahrávania, ktoré vám pomôžu vyťažiť z vášho projektu maximum. Po spustení Node-Red môžeme teraz pokračovať v budovaní demo projektu.
Schémy
Ako už bolo spomenuté v úvode, našim dnešným demo projektom bude kontrola GPIO Raspberry Pi pomocou toku Node-RED. Aby sme ukázali zmeny v stave GPIO, pripojíme LED ku GPIO tak, že keď je zapnutý konkrétny pin GPIO, LED sa rozsvieti a naopak.
Pripojte LED k Raspberry PI, ako je to znázornené na schémach nižšie.
To isté staviam na svojom hardvéri aj pomocou nepájivého poľa, LED, odporu a niektorých spojovacích vodičov. Moje nastavenie hardvéru vyzerá po pripojení asi takto.
Tento projekt je možné ľahko previesť na projekt domácej automatizácie, len výmenou LED za relé a ľubovoľným striedavým prúdom sa dozviete, ako na to, prevedením rôznych projektov domácej automatizácie.
Vytvorenie toku v Node-RED
Po pripojení LED môžeme pokračovať v rozvoji toku. Programy v NodeRed sa nazývajú toky rovnako, ako ich Arduino IDE nazýva náčrty. Toky sa vytvárajú pomocou kombinácie uzlov. Môžete vytvoriť viac tokov, ktoré môžu bežať všetky súčasne, ale pre tento tutoriál vytvoríme jeden tok, ktorým zapneme / vypneme LED.
Začnite posunutím do dolnej časti palety Uzly. Na konci uvidíte sekciu malinové pí uzly s dvoma uzlami označenými rpigpio. Tieto uzly sa používajú na komunikáciu s GPIO malinovej pí. Jeden z uzlov je na vstup, zatiaľ čo druhý na výstup, ktorý sa líši podľa polohy loga maliny pi. Pre vstupný uzol je logo pred textom, zatiaľ čo pre výstupný uzol je logo za textom, ako je to znázornené na obrázku nižšie.
Pre tento tutoriál budeme využívať výstupný uzol, ktorý presunieme do časti toku v rozhraní. Tento krok je podobný vyhláseniu konkrétneho kolíka vášho Arduina za výstup pomocou príkazu pinMode () . Dvakrát kliknite na výstupný uzol a otvorí sa vyskakovacie okno, ako je zobrazené nižšie, ktoré vám umožní upraviť vlastnosti uzla.
V sekcii vlastností pinov vyberte GPIO17 (pin 11). Potom nastavte vlastnosť typu na „ digitálny výstup “ a začiarknite políčko „ Inicializovať stav PIN?“ začiarkavacie políčko ponecháva možnosť „ počiatočná úroveň kolíka “ na nízkej (0). Dajte uzlu ľubovoľné meno, ktoré sa vám páči, a kliknite na tlačidlo Hotovo.
Názov uzla by sa mal automaticky zmeniť na názov, ktorý ste zadali v rámci nastavenia vlastností. Napríklad som to pomenoval ako LED, a preto sa názov uzla tiež zmení ako LED, ako je to znázornené nižšie.
Na zapnutie / vypnutie LED je potrebné použiť vstup, niečo, čo bude riadiť akciu. Aj keď by sme mohli použiť tlačidlo, chcel by som ním predstaviť funkciu v Node-RED, ktorá umožňuje vkladanie správ do tokov. Tieto funkcie sa nazývajú injekčný uzol. Budeme používať dva injekčné uzly. Jedným bude rozsvietenie LED, zatiaľ čo druhým zhasnutie.
Prejdite na paletu uzlov a pretiahnite injektovaný uzol do toku. Je to prvý uzol na palete so šípkou, injekčný uzol je zvýraznený na obrázku nižšie.
Dvojitým kliknutím na ňu upravíte jej vlastnosti. Kliknutím na rozbaľovaciu ponuku pred užitočným zaťažením zmeňte typ údajov na reťazec a do poľa užitočné zaťaženie zadajte hodnotu 1. Hodnota v poli užitočného zaťaženia je to, čo sa vstrekne do toku po stlačení uzla. Nastavte názov uzla na „ON“. Stlačením tlačidla „Hotovo“ uložte.
Zopakujte to isté pre druhý uzol a nastavte hodnotu užitočného zaťaženia na „0“ a jej názov ako „vypnutý“, ako je to znázornené nižšie.
Vo funkcii vlastností je možné pomocou rozbaľovacej ponuky opakovať automatizovať vstrekovanie, aby sa tlačidlá stláčali v určitých intervaloch. Týmto sa dá vytvoriť efekt žmurknutia. Spojte uzly k sebe tak, ako je to znázornené nižšie. Potiahnutím sivej bodky na jednom z uzlov k druhému vytvoríte tok.
Týmto sme dokončili náš úplne prvý tok Node-Red.
Ďalším krokom je nasadenie toku na malinovú pí. Kliknite na červené tlačidlo nasadenia. Ako je uvedené nižšie, v hornej časti obrazovky by ste mali vidieť „úspešne nasadené“.
Kliknutím na sivé tlačidlo za injekčnými uzlami aktivujete každý z uzlov.
Kliknutím na uzol vstrekovania „on“ by ste mali vidieť úspešné vstrekovanie „on“ zobrazené a LED sa rozsvieti. LED dióda by mala zhasnúť, keď kliknete na „vypnutý“ injekčný uzol.
To je všetko. Kompletné fungovanie tohto nastavenia nájdete vo videu prepojenom v dolnej časti tejto stránky.
Pridanie tlačidla / prepínača v rozhraní Node-RED s Raspberry Pi
Aby sme vysvetlili, ako pripojiť / pridať vstupný prvok do vášho toku, posunieme vyššie uvedený tok ďalej pridaním tlačidla, ktoré nahradí injektované uzly.
Pripojte tlačidlo k malinovej pí tak, že jedna noha tlačidla je pripojená k zemi a druhá je pripojená ku kolíku GPIO 4 (kolík 11) malinovej pí, ako je znázornené na nižšie uvedených schémach.
Po dokončení sa vráťte späť na Node-Red a odstráňte dva injekčné uzly, ktoré sme použili skôr, kliknutím na uzly a stlačením klávesu Delete na klávesnici alebo dvojitým kliknutím na uzly a stlačením klávesu Delete vo vyskakovacom okne. Po dokončení posuňte paletu uzlov nadol do sekcie malina pi a vyberte vstupný uzol. Je to ten, ktorý má vľavo ikonu malina pi pred názvom uzla.
Pretiahnite uzol do toku a dvojitým kliknutím naň upravte vlastnosti. Nastavte kolík na GPIO 4 (kolík 11) a rozbaľovaciu ponuku pred rezistorom vytiahnite. Toto „vytiahne“ GPIO 4 na VYSOKÉ. Po nastavení vlastností kliknite na tlačidlo hotovo.
Aby sme mohli robiť logické rozhodnutia pri stlačení prepínača, nie iba skratovali GPIO4 k zemi, použijeme uzol prepínača. Vyhľadajte ju v palete uzlov pod sekciou funkcií a presuňte ju na tok.
Uzol switchu vám umožňuje prijímať rozhodnutia podobným spôsobom ako výroky „if“. Môže byť nastavený tak, aby mal rôzne výstupy v závislosti od vstupnej hodnoty. Pre tento tutoriál ho konfigurujeme s dvoma výstupnými cestami, takže keď je vlastnosť msg.payload rovná 1 (prepínač nie je stlačený), mala by nasledovať prvú cestu a ak bude akýkoľvek iný vstup, bude nasledovať druhá cesta. na vstupe je pozorovaná iná ako 1 (spínač je stlačený). Cesty sa pridávajú pomocou tlačidla „+ pridať“. Dvakrát kliknite na uzol a nakonfigurujte, ako je popísané vyššie. Po dokončení kliknite na tlačidlo Hotovo.
Hneď ako stlačíte tlačidlo Hotovo, mali by ste vidieť, že sa tieto dve cesty odrážajú vo výhľade uzla prepínača, pretože teraz bude mať na výstupe dve križovatky.
Ďalej musíme zaviesť uzol „zmena“. Uzol zmeny sa použije na nastavenie stavu LED na základe výsledku uzla argumentu.
Budeme používať dva z uzlov zmeny. Užitočné zaťaženie prvého z nich sa nastaví na 0, ako je znázornené na obrázku nižšie, a užitočné zaťaženie druhého z nich sa nastaví na jednu. Po úprave vlastností oboch kliknite na tlačidlo Hotovo.
Pre lepšie vysvetlenie nezabudnite, že sme použili pull-up rezistor? Pokiaľ teda nebolo stlačené tlačidlo, výstup na tomto kolíku bude VYSOKÝ (1), čo znamená, že ak ho prejdeme cez uzol spínača, LED bude „svietiť“, pretože by to tak nemalo byť, budeme pomocou uzla „change“ ho nastavíme na LOW (0). Druhý uzol „zmena“ sa používa na nastavenie hodnoty na jednu tak, aby pri detekcii čohokoľvek iného ako stavu VYSOKÉHO stavu GPIO pinu 4 mala rozsvietiť LED „zapnuté“, čo bude znamenať stlačenie tlačidla. Spojte uzly zmeny a ostatné uzly dohromady, ako je to znázornené na obrázku nižšie.
Po dokončení sme teraz pripravení nasadiť projekt. Prejdite cez pripojenie, aby ste sa uistili, že je všetko tak, ako má byť, a potom kliknite na tlačidlo nasadenia. Ako obvykle, v prípade úspechu by ste mali vidieť úspešné vyskakovacie okno nasadenia a teraz by ste mali byť schopní ovládať led pomocou prepínača.
Aj keď technológia Node-Red umožňuje ľahké a rýchle prototypovanie vašej zostavy bez obáv o kód, nemusí to byť v skutočnosti to najlepšie, najmä pre skúsených vývojárov, ktorí budú chcieť flexibilitu a kontrolu nad programom. Napriek tomu je to vynikajúci nástroj, ktorý vám umožní vytvoriť prototyp za pár minút.
Až nabudúce!