- Predpogoji
- Zahtevane komponente
- Namestitev Node-RED na Raspberry Pi
- Zagon Node-RED v Raspberry Pi
- Razumevanje vmesnika Node-RED
- Sheme
- Ustvarjanje toka v vozlišču RDEČA
- Dodajanje gumba / stikala v vmesnik Node-RED z Raspberry Pi
Ste se kdaj vprašali, ali obstaja način za izdelavo enostavnih prototipov rešitev IoT, ne da bi vam bilo treba dneve pisati kode ali graditi praktične napredne projekte brez kodiranja. Da, to je mogoče s platformo Node-Red. Node-RED, ki ga je razvil IBM, je odprtokodno programsko orodje za povezovanje strojne opreme, API-jev in spletnih storitev na nov in zanimiv način. Ponuja urejevalnik, ki temelji na brskalniku in omogoča enostavno povezovanje „ tokov“ z uporabo širokega nabora vozlišč v paleti, ki jih je mogoče z enim klikom razporediti v svoje izvajanje.
Node-RED je močno orodje za izdelavo aplikacij interneta stvari (IoT) s ciljem poenostavitve programske komponente.
Uporablja vizualno programiranje, ki omogoča povezavo blokov kode, znanih kot vozlišča, za izvajanje naloge. Za današnjo vadnico bomo preučili, kako lahko v Node-RED namestite preproste projekte na Raspberry Pi. Maline pi vozlišče rdeče vajah bo zajemal;
- Namestitev Node-RED na Raspberry Pi.
- Uvod v uporabniški vmesnik Node-RED
- Kako nastaviti Node-RDEČE tokove
- Kako nadzirati zatiče Raspberry Pi GPIO z Node-RED
- Kako uporabljati vhode, izhode NOD-RDEČE in, če je drugače, odločanje s pomočjo stikal
Predpogoji
Ta vadnica bo temeljila na OS Raspbian stretch in predvidevam, da ste seznanjeni z nastavitvijo Raspberry Pi z njo in veste, kako SSH v Pi z uporabo terminalske programske opreme, kot je kit. Če imate težave s katerim koli od tega, je na tej spletni strani na voljo veliko vadnic Raspberry Pi, ki vam lahko pomagajo.
Za lažje izpolnjevanje vadnice vam svetujem, da uporabite monitor, povezan z malino pi, ali pa uporabljate programsko opremo VNC Viewer. Če nimate monitorja in zaženete sveže s Pi, lahko preberete to nastavitev brezglave Raspberry Pi, da nadaljujete s to vadnico. Medtem ko Node-Red teče iz spletnega brskalnika in je do njega mogoče dostopati prek osebnega računalnika, na katerega je Pi povezan prek IP-naslova Pi-ja, verjamem, da vam bo izkušnja VNC / monitorja omogočila boljši obisk.
Kot predstavitev, kako deluje Node-Red, bomo uporabili Node-RED za programiranje Raspberry Pi za nadzor LED, ki je priključen na GPIO, in kasneje spremeniti program, da bo LED lahko krmiljen s tipnim gumbom, povezanim s Pi. GPIO.
Zahtevane komponente
Za gradnjo tega projekta so potrebne naslednje komponente;
- Raspberry Pi 3 s kartico SD, ki je prednaložena z Raspbian Stretch Preloaded
- Upor 100 ohmov (1)
- LED (1)
- Breadboard (1)
- Žice za moške in ženske
- Tipalni gumb (1)
Namestitev Node-RED na Raspberry Pi
Medtem ko je Node-Red vnaprej nameščen v OS Raspbian Stretch, ga moramo nadgraditi, preden bomo lahko uživali v nekaterih njegovih najnovejših funkcijah. Nadgradnja Node-Red volje
- Nadgradite obstoječega uporabnika na LTS 8.x ali 10.x Node.js in najnovejši Node-RED
- Preselite vsa obstoječa globalno nameščena vozlišča v prostor ~ /.node-rdeči prostor, da jih je mogoče upravljati prek upravitelja palet, NE posodablja nobenega uporabnika, ki je namestil obstoječa vozlišča. Uporabnik mora to storiti ročno (glej spodaj).
- Po želji (ponovno) namestite dodatna vozlišča, ki so vnaprej nameščena na celotno sliko Raspbian Pi.
Vendar je postopek nadgradnje Node-Red podoben namestitvi novega, zato ga bomo zaradi te vadnice obravnavali kot novo namestitev, da bodo lahko sledili ljudje, ki uporabljajo druge različice OS.
Sledite spodnjim korakom za namestitev / nadgradnjo Node-RED na vaš Raspberry Pi.
Smo začeli z nadgradnjo in posodobitev pi, da zagotovi vse, kar je na njem je do vprašanja, datum in kompatibilnosti izogniti. To storite tako, da odprete terminal ali prek ssh in zaženete;
Sudo apt-get update
čemur sledi
sudo apt-get nadgradnja
Po tem zaženite spodnji skript bash na terminalu;
bash <(curl -sL
Skript bash bo naredil naslednje stvari
- Vprašajte, ali želite (ponovno) namestiti dodatna vozlišča Pi
- Shranite seznam vseh globalno nameščenih vozlišč-rdečih vozlišč, najdenih v / usr / lib / node_modules
- apt-get odstranite obstoječe Node-Red
- odstranite vse vozlišče rdeče binarne datoteke iz / usr / bin in / usr / local / bin
- Odstranite vse vozlišče rdeče module iz / usr / lib / node_modules in / usr / local / lib / node_modules
- Zaznajte, ali je bil Node.js nameščen iz paketa Node.js ali Debiana
- Če ni različice v8 ali novejše - po potrebi odstranite in namestite najnovejšo različico v8 ali v10 LTS (brez uporabe apt).
- Očistite predpomnilnik npm in predpomnilnik.node-gyp, da odstranite vse prejšnje različice kode
- Namestite najnovejšo različico Node-RED
- Pod uporabniškim računom znova namestite vsa vozlišča, ki so bila prej nameščena globalno
- Po potrebi znova namestite dodatna vozlišča Pi
- Obnovi vsa vozlišča - za ponovno sestavljanje vseh binarnih datotek, da se ujemajo z najnovejšo različico Node.js
- V / usr / bin dodajte ukaze node-red-start, node-red-stop in node-red-log
- Dodaj bližnjico in ikono menija
- Dodajte sistemski skript in nastavite uporabnika
- Če na Pi dodajte temperaturo procesorja -> primer IoT
Zgornji skript bash zažene številne ukaze kot sudo in izbriše obstoječe Node.js in jedrne imenike Node-RED. Vsebino skripta lahko preverite na tej strani GitHub, preden jo zaženete, da se prepričate, da ne bo vplivala na noben projekt, ki ga že imate na Pi.
Ko je namestitev končana, bi zdaj na seznamu programov v vašem meniju morali videti ikono Node-Red.
Zagon Node-RED v Raspberry Pi
Node-Red lahko zaženete v razdelku menija z namizja vašega malina pi, prek terminala ali prek ssh.
Za zagon na namizju maline pi kliknite na ikono Raspberry, miškin kazalec premaknite na Programiranje in kliknite Node-RDEČ (Meni> Programiranje> NodeRed), da ga zaženete.
Zaženete ga lahko tudi s ssh ali terminala;
vozlišče-rdeči zagon
Videli bi okno, kot je spodnje, ki prikazuje vozlišče rdeče zagon na namizju.
Ko to vidite, pojdite v meni-> Internet in zaženite spletni brskalnik Chrome. Čeprav vaš Raspberry pi ne potrebuje interneta za zagon Node-Red, za vmesnik uporablja brskalnik.
Z zagnanim kromom v naslovno vrstico vnesite localhost: 1880, čemur sledi tipka enter. 1880 je vrata na malinovem pi, na katerih je za komunikacijo prednastavljen Node-Red. To bi moralo prikazati vmesnik Node-Red, kot je prikazano na spodnji sliki.
Razumevanje vmesnika Node-RED
Vmesnik Node-Red je sestavljen iz plošče pretoka, palete vozlišč, konzole za odpravljanje napak in informacijske konzole, kot je označeno na zgornji sliki.
Na plošči pretoka so vozlišča združena, da se ustvari program, ki se v Node-Red imenuje pretok, medtem ko paleto Node sestavljajo predmeti, ki predstavljajo strojno opremo, protokole in funkcije programske opreme, povezane z napravami. Vključuje protokole, kot je MQTT za IoT, in izhodne in vhodne načine GPIO za plošče, kot je malina pi. Info konzola nudi informacije o poudarjenih / izbranih predmetov, medtem ko je debug konzoledeluje tako kot monitor Arduino Serial in lahko med povratnim tokom zagotavlja povratne informacije. Gumb za razmestitev se uporablja za nalaganje toka na ciljno strojno opremo. Gumb Meni vsebuje različne vrste nalaganja, s katerimi lahko kar najbolje izkoristite svoj projekt. Z zagonom Node-Red lahko zdaj nadaljujemo z izdelavo predstavitvenega projekta.
Sheme
Kot smo že omenili pri uvodu, bo naš današnji predstavitveni projekt nadzor GPIO-ja Raspberry Pi GPIO z uporabo Node-RED toka. Za prikaz sprememb v stanju GPIO bomo na GPIO priključili LED, tako da se ob vklopu tega posebnega zatiča GPIO LED prižge in obratno.
Priključite LED na Raspberry PI, kot je prikazano v spodnjih shemah.
Enako gradim tudi na svoji strojni opremi z uporabo plošče, LED, upora in nekaterih povezovalnih žic. Moja nastavitev strojne opreme izgleda nekako takole, ko se vzpostavijo povezave.
Ta projekt je mogoče enostavno pretvoriti v projekt avtomatizacije stanovanj, tako da LED zamenjate z relejem in katero koli napravo za izmenični tok. Naučite se, kako to storiti z različnimi projekti avtomatizacije doma.
Ustvarjanje toka v vozlišču RDEČA
Ko je LED priključen, lahko nadaljujemo z razvojem toka. Programi v NodeRedu se imenujejo tokovi, tako kot jih Arduino IDE imenuje skice. Tokovi se ustvarijo s kombinacijo vozlišč. Ustvarite lahko več tokov, ki se lahko izvajajo hkrati, toda za to vadnico bomo ustvarili en sam tok za vklop / izklop LED.
Za začetek se pomaknite na dno palete Vozlišča, proti koncu boste videli odsek maline pi vozlišča z dvema vozliščema z oznakama rpigpio. Ta vozlišča se uporabljajo za komunikacijo z GPIO maline pi. Eno od vozlišč je za vnos, drugo pa za izhod, ki se razlikuje po položaju logotipa maline pi. Za vhodno vozlišče je logotip pred besedilom, za izhodno vozlišče pa logotip za besedilom, kot je prikazano na spodnji sliki.
Za to vadnico bomo uporabili izhodno vozlišče, povlecite ga v pretočni del vmesnika. Ta korak je podoben razglasitvi določenega pina vašega Arduina za izhod z uporabo ukaza pinMode () . Dvokliknite vozlišče Output in odprlo se bo pojavno okno, kot je prikazano spodaj, da boste lahko uredili lastnosti vozlišča.
V razdelku lastnosti pin izberite GPIO17 (pin 11). Nato nastavite lastnost tipa na " digitalni izhod " in označite " Initialize pin state?" potrdite polje, pri čemer možnost » začetna raven zatiča « ostane tako nizka (0). Vozlišču dajte poljubno ime in kliknite gumb za dokončanje.
Ime vozlišča naj se samodejno spremeni v tisto, ki ste ga vnesli v nastavitvi lastnosti. Na primer, poimenoval sem ga kot LED, zato se ime vozlišča spremeni tudi kot LED, kot je prikazano spodaj.
Če želite vklopiti / izklopiti LED, moramo uporabiti vhod, ki bo spodbudil dogajanje. Čeprav bi lahko uporabili gumb, želim s tem predstaviti funkcijo v Node-RED, ki omogoča vbrizgavanje sporočil v tokove. Ta funkcija se imenuje vbrizgajoče vozlišče. Uporabili bomo dve vbrizgalni vozlišči. Ena bo prižgala LED, druga pa jo bo ugasnila.
Pojdite na paleto vozlišč in povlecite vozlišče za vbrizg v tok. To je prvo vozlišče v paleti s puščico, vozlišče za vbrizgavanje je označeno na spodnji sliki.
Dvokliknite nanj, da uredite njegove lastnosti. Spremenite vrsto podatkov v niz tako, da kliknete spustni seznam pred koristnim tovorom in v polje 1 vnesete 1. Vrednost v polju koristnega tovora je tista, ki se vbrizga v tok, ko pritisnete vozlišče. Nastavite ime vozlišča na »ON«. Za shranjevanje pritisnite gumb »Končano«.
Ponovite zgornje za drugo vozlišče, tako da nastavite vrednost koristnega tovora na "0" in njegovo ime kot "off", kot je prikazano spodaj.
V funkciji lastnosti lahko spustni meni za ponovitev uporabite za avtomatizacijo vbrizgavanja, tako da gumbe pritisnete v presledkih. S tem lahko ustvarite učinek utripanja. Vozlišča združite, kot je prikazano spodaj, tako da povlečete sivo piko na enem od vozlišč na drugega, da ustvarite tok.
S tem smo zaključili naš prvi vozlišče Rdeči tok.
Naslednji korak je razporeditev toka na malinovo pi. Kliknite rdeči gumb za uvajanje. Na vrhu zaslona bi morali videti bliskavico »uspešno razmeščeno«, kot je prikazano spodaj.
Kliknite sivi gumb za vozlišči za vbrizg, da aktivirate vsako od vozlišč.
S klikom na vklopljeno vozlišče za vbrizg se prikaže prikazano uspešno vbrizgano vklopljeno in lučka LED zasveti. Ko kliknete na „off“ vbrizgalno vozlišče, mora LED ugasniti.
To je to. Popolno delovanje te postavitve najdete v videoposnetku, ki je povezan na dnu te strani.
Dodajanje gumba / stikala v vmesnik Node-RED z Raspberry Pi
Za razlago, kako povezati / dodati vhodni element v vaš tok, bomo nadaljevali z zgornjim tokom, tako da smo dodali gumb za zamenjavo vozlišč za vbrizgavanje.
Tipko priključite na malino pi, tako da je ena noga tipke priključena na tla, druga pa na GPIO zatič 4 (nožica 11) maline pi, kot je prikazano na spodnjih shemah.
Ko končate, se vrnite na Node-Red in izbrišite dve vbrizgalni vozlišči, ki smo jih uporabili prej, tako da kliknete vozlišča in pritisnete Delete na tipkovnici ali dvokliknete vozlišča in pritisnete Delete v pojavnem oknu. Ko končate, se pomaknite navzdol do palete vozlišč do razdelka malina pi in izberite vhodno vozlišče. To je tisto z ikono maline pi na levi strani pred imenom vozlišča.
Povlecite vozlišče v tok in ga dvokliknite, da uredite lastnosti. Nastavite pin na GPIO 4 (pin 11) in spustni meni pred uporom nastavite na pull-up. To bo GPIO 4 "povleklo" v HIGH. Po nastavitvi lastnosti kliknite gumb Končano.
Za omogočanje logičnih odločitev, ko pritisnemo stikalo, ne pa zgolj kratkega stika GPIO4 do tal, bomo uporabili vozlišče stikala. Poiščite ga v paleti vozlišč pod razdelkom funkcij in povlecite do toka.
Preklopno vozlišče vam omogoča sprejemanje odločitev na način, podoben stavkom "če". Nastavi se lahko tako, da ima različne izhode, odvisno od vhodne vrednosti. Za to vadnico ga bomo konfigurirali z dvema izhodnima potoma, tako da bo, ko je lastnost msg.payload enaka 1 (stikalo ni pritisnjeno), sledil prvi poti, druga pot pa bo sledila, če bo kateri koli drug vhod na vhodu opazimo drugačno od 1 (stikalo je pritisnjeno). Poti se dodajo s pomočjo gumba "+ dodaj". Dvokliknite vozlišče in konfigurirajte, kot je opisano zgoraj. Ko končate, kliknite končano.
Takoj, ko pritisnete gumb za dokončanje, bi morali videti, da se obe poti odražata v obetih stikalnega vozlišča, saj bo zdaj na izhodu imela dva križišča.
Nato moramo vnesti vozlišče za spremembo. Vozlišče za spremembo bo uporabljeno za nastavitev stanja LED na podlagi rezultata vozlišča argumenta.
Uporabili bomo dve vozlišči za spremembo. Nosilnost prvega bo nastavljena na 0, kot je prikazano na spodnji sliki, koristna obremenitev druge pa na eno. Po urejanju lastnosti obeh kliknite končano.
Za boljšo razlago se spomnite, da smo uporabili vlečni upor? Ko torej gumb ni pritisnjen, bo izhod na tem zatiču VISOK (1), kar pomeni, da če ga prestavimo skozi stikalno vozlišče, bo LED svetila, ker to ne bi smelo biti, bomo z vozliščem »spremeni« ga nastavite na LOW (0). Drugo vozlišče za spremembo se uporabi za nastavitev vrednosti na takšno, da mora, ko je zaznano kar koli drugega kot VISOKO stanje GPIO nožice 4, vklopiti LED, ker bo to pomenilo, da je bil gumb pritisnjen. Povežite vozlišča za spremembo in ostala vozlišča skupaj, kot je prikazano na spodnji sliki.
Po tem smo zdaj pripravljeni uvesti projekt. Preglejte povezavo in se prepričajte, da je vse tako, kot mora biti, nato kliknite gumb za uvajanje. Kot ponavadi bi morali videti uspešno pojavno okno razmestitve in zdaj nadzirati led s stikalom.
Čeprav Node-Red omogoča enostavno in hitro izdelavo prototipov vaše izdelave, ne da bi se skrbel za kodo, morda dejansko ni najbolj primeren, zlasti za izkušene razvijalce, ki bodo želeli prilagodljivost in nadzor nad programom. Kljub temu je to odlično orodje, ki vam omogoča izdelavo prototipov v nekaj minutah.
Do naslednjič!