- Preduvjeti
- Potrebne komponente
- Instaliranje Node-RED na Raspberry Pi
- Pokretanje Node-RED u Raspberry Pi
- Razumijevanje Node-CRVENOG sučelja
- Sheme
- Stvaranje protoka u čvoru-CRVENO
- Dodavanje tipke / prekidača u Node-CRVENO sučelje s Raspberry Pi
Jeste li se ikad zapitali postoji li način za izradu jednostavnih prototipova IoT rješenja bez trošenja dana na pisanje kodova ili za izradu praktičnih naprednih projekata bez kodiranja. Da, to je moguće s Node-Red Platformom. Razvio ga je IBM, Node-RED je alat za programiranje otvorenog koda za spajanje hardverskih uređaja, API-ja i mrežnih usluga na nov i zanimljiv način. Pruža uređivač temeljen na pregledniku koji olakšava povezivanje ' tokova' pomoću širokog raspona čvorova u paleti koji se jednim klikom mogu rasporediti na njegovo vrijeme izvođenja.
Node-RED moćan je alat za izgradnju Internet of Things (IoT) aplikacija s ciljem pojednostavljenja programske komponente.
Koristi vizualno programiranje koje vam omogućuje povezivanje blokova koda, poznatih kao čvorovi, za izvršavanje zadatka. U današnjem uputstvu ispitat ćemo kako možete rasporediti jednostavne projekte na Raspberry Pi pomoću Node-RED. Vodič za crveni čvor maline pi će pokriti;
- Instaliranje Node-RED na Raspberry Pi.
- Uvod u Node-RED korisničko sučelje
- Kako postaviti protok Node-RED
- Kako kontrolirati igle Raspberry Pi GPIO pomoću Node-CRVENE
- Kako koristiti čvorove-CRVENE ulaze, izlaze i ako ne, poput donošenja odluka pomoću prekidača
Preduvjeti
Ovaj će se vodič temeljiti na Raspbian stretch OS-u i pretpostavit ću da ste upoznati s postavljanjem Raspberry Pi-a s njim i da znate kako SSH unijeti u Pi pomoću terminalnog softvera poput kita. Ako imate problema s bilo čim od ovoga, na ovom web mjestu postoji mnoštvo tutorijala za Raspberry Pi koji vam mogu pomoći.
Da biste lako dovršili tutorial, savjetovat ću vam da koristite monitor povezan s Raspberry Pi ili da koristite softver VNC Viewer. Ako nemate Monitor i ako započinjete s novim programom Pi, možete pročitati ovu postavku Raspberry Pi bez glave da biste nastavili s ovim vodičem. Iako se Node-Red izvodi iz web preglednika i može mu se pristupiti na računalu na koje je Pi povezan putem Pi-ove IP adrese, vjerujem da će vam iskustvo VNC / monitora pružiti bolji pristup.
Kao demonstraciju kako bismo pokazali kako Node-Red radi, upotrijebit ćemo Node-RED za programiranje Raspberry Pi-a za upravljanje LED-om povezanom na njegov GPIO, a kasnije modificirati program kako bi se omogućilo upravljanje LED-om pomoću taktilnog gumba povezanog s Pi-jevima GPIO.
Potrebne komponente
Za izgradnju ovog projekta potrebne su sljedeće komponente;
- Raspberry Pi 3 sa SD karticom unaprijed učitanom s Raspbian Stretch unaprijed postavljenim
- Otpor od 100 oma (1)
- LED (1)
- Breadboard (1)
- Žice za kratkospojnik muški-ženski
- Taktilni gumb (1)
Instaliranje Node-RED na Raspberry Pi
Iako je Node-Red unaprijed instaliran na Raspbian Stretch OS-u, moramo ga nadograditi prije nego što budemo mogli uživati u nekim od njegovih najnovijih značajki. Nadogradnja Node-Red volje
- Nadogradite postojećeg korisnika na LTS 8.x ili 10.x Node.js i najnoviji Node-RED
- Migrirajte sve postojeće globalno instalirane čvorove u prostor ~ /.node-crveni prostor tako da se njima može upravljati putem upravitelja paleta, NEMOJE ažurirati nijedan korisnik koji je instalirao postojeće čvorove. Korisnik to mora učiniti ručno (vidi dolje).
- Po želji (ponovno) instalirajte dodatne čvorove koji su unaprijed instalirani na cijelu sliku Raspbian Pi.
Međutim, postupak nadogradnje Node-Red sličan je instaliranju novog, pa ćemo ga zbog ovog vodiča tretirati kao novu instalaciju kako bi ga mogli slijediti ljudi koji koriste druge verzije OS-a.
Slijedite korake u nastavku za instalaciju / nadogradnju Node-RED-a na vaš Raspberry Pi.
Mi početi nadogradnju i ažuriranje pi, kako bi se osiguralo sve na njemu je do danas i izbjeći probleme s kompatibilnošću. Učinite to otvaranjem terminala ili putem ssh-a i pokrenite;
Sudo apt-get update
nakon čega slijedi
sudo apt-get nadogradnja
Nakon toga pokrenite bash skriptu ispod na terminalu;
bash <(curl -sL
Bash skripta će učiniti sljedeće stvari
- Pitajte želite li (ponovno) instalirati dodatne Pi čvorove
- Spremite popis globalno instaliranih čvorova crvenih čvorova koji se nalaze u / usr / lib / node_modules
- apt-get ukloni postojeći Node-Red
- uklonite sve čvorno crvene binarne datoteke iz / usr / bin i / usr / local / bin
- Uklonite sve čvorove crvene module iz / usr / lib / node_modules i / usr / local / lib / node_modules
- Otkrijte je li Node.js instaliran iz Node.js paketa ili Debiana
- Ako nije v8 ili noviji - uklonite po potrebi i instalirajte najnoviji v8 ili v10 LTS (ne koristi se apt).
- Očistite predmemoriju npm i.node-gyp predmemoriju da biste uklonili sve prethodne verzije koda
- Instalirajte najnoviju verziju Node-RED
- Ponovo instalirajte pod korisničkim računom sve čvorove koji su prethodno bili globalno instalirani
- Ponovno instalirajte dodatne Pi čvorove ako je potrebno
- Obnovite sve čvorove - da biste ponovno sastavili bilo koje binarne datoteke kako bi se podudarali s najnovijom verzijom Node.js.
- Dodajte naredbe node-red-start, node-red-stop i node-red-log u / usr / bin
- Dodaj prečac i ikonu izbornika
- Dodajte sistemsku skriptu i postavite korisnika
- Ako na Pi dodajte CPU temperaturu -> IoT primjer
Gore navedena bash skripta izvodi mnoge naredbe kao sudo i briše postojeće Node.js i osnovne Node-RED direktorije. Sadržaj skripte možete provjeriti na ovoj GitHub stranici prije pokretanja kako biste bili sigurni da neće utjecati na bilo koji projekt koji već imate na Pi-u.
Po završetku instalacije sada biste trebali vidjeti ikonu Node-Red ispod popisa programskih aplikacija na vašem izborniku.
Pokretanje Node-RED u Raspberry Pi
Node-Red se može pokrenuti putem odjeljka izbornika s radne površine vašeg Raspberry Pi, putem terminala ili preko ssh-a.
Da biste ga pokrenuli na radnoj površini Raspberry Pi, kliknite ikonu Raspberry, zadržite pokazivač miša na Programiranje, kliknite Node-RED (Izbornik> Programiranje> NodeRed) da biste ga pokrenuli.

Također se može pokrenuti iz ssh-a ili terminala pokretanjem;
čvor-crveni-start

Trebali biste vidjeti prozor poput donjeg koji prikazuje čvor crveno pokretanje na radnoj površini.
Kad to vidite, idite na izbornik-> Internet i pokrenite Chrome preglednik. Iako vašoj Raspberry pi nije potreban internet za pokretanje Node-Reda, za sučelje koristi preglednik.
S lansiranim kromom u adresnu traku unesite localhost: 1880 nakon čega slijedi tipka za unos. 1880 je priključak na Raspberry Pi na kojem je Node-Red unaprijed postavljen za komunikaciju. Ovo bi trebalo prikazati sučelje Node-Red kao što je prikazano na donjoj slici.

Razumijevanje Node-CRVENOG sučelja
Sučelje Node-Red sastoji se od ploče protoka, palete čvorova, konzole za otklanjanje pogrešaka i informacijske konzole kako je istaknuto na gornjoj slici.
Na ploči protoka čvorovi su spojeni kako bi stvorili program koji se u Node-Red naziva protok, dok se paleta čvorova sastoji od objekata koji su reprezentativni za hardver, protokole i softverske značajke povezane s uređajima. Uključuje protokole poput MQTT za IoT i GPIO načine izlaza i unosa za ploče poput malina pi. Info konzola pruža informacije o istaknute / odabranih predmeta, dok je debug konzoleradi baš kao Arduino Serial monitor i može pružiti povratne informacije dok protok radi. Gumb za postavljanje koristi se za prijenos protoka na ciljani hardver. Gumb Izbornik sadrži različite vrste prijenosa kako biste najbolje iskoristili svoj projekt. Kada je Node-Red pokrenut i pokrenut, sada možemo nastaviti s izradom demo projekta.
Sheme
Kao što je spomenuto tijekom uvoda, naš demo projekt za danas bit će kontrola GPIO-a Raspberry Pi-a pomoću Node-RED protoka. Kako bismo prikazali varijacije u stanju GPIO-a, spojit ćemo LED na GPIO tako da kad se uključi određeni GPIO pin, LED se uključi i obrnuto.
Spojite LED na Raspberry PI kao što je prikazano u donjim shemama.

Isto tako gradim na svom hardveru koristeći pločicu, LED, otpornik i neke spojne žice. Moja hardverska postavka izgleda otprilike ovako nakon uspostavljanja veza.

Ovaj se projekt lako može pretvoriti u projekt automatizacije kuće, samo zamjenom LED-a relejem i bilo kojim AC uređajem, naučite kako to učiniti prolazeći kroz razne projekte automatizacije kuće.
Stvaranje protoka u čvoru-CRVENO
S priključenom LED diodom možemo nastaviti razvijati protok. Programi u NodeRedu nazivaju se protoci baš kao što ih Arduino IDE naziva skicama. Tokovi se kreiraju pomoću kombinacije čvorova. Možete stvoriti više tokova koji se mogu istodobno izvoditi, ali za ovaj ćemo vodič stvoriti jedan tok za uključivanje / isključivanje LED diode.

Za početak pomaknite se na dno palete Nodes, vidjet ćete odjeljak malina pi čvorova prema kraju s dva čvora s oznakom rpigpio. Ti se čvorovi koriste za komunikaciju s GPIO-om malina pi. Jedan od čvorova je za ulaz, dok je drugi za izlaz diferenciran položajem logotipa maline pi. Za ulazni čvor logotip dolazi prije teksta, dok za izlazni čvor logotip dolazi nakon teksta kao što je prikazano na donjoj slici.
Za ovaj tutorial koristit ćemo izlazni čvor, povucite ga u odjeljak protoka sučelja. Ovaj je korak sličan deklariranju određenog pina vašeg Arduina kao Izlaz pomoću naredbe pinMode () . Dvaput kliknite na izlazni čvor i otvorit će se skočni prozor kao što je prikazano dolje kako biste mogli urediti svojstva čvora.

U odjeljku svojstva pin odaberite GPIO17 (pin 11). Zatim postavite svojstvo type na " digitalni izlaz " i označite " Initialize pin state?" potvrdni okvir ostavljajući opciju " početna razina pribadače " niskom (0). Dajte čvoru bilo koje ime koje želite i kliknite gumb gotovo.
Naziv čvora trebao bi se automatski promijeniti u onaj koji ste unijeli pod postavkom svojstava. Na primjer, nazvao sam ga LED-om i stoga se naziv čvora također mijenja kao LED-om kao što je prikazano dolje.

Da bismo uključili / isključili LED, trebamo upotrijebiti ulaz, nešto za pokretanje radnje. Iako bismo mogli koristiti tipku, želim to upotrijebiti za uvođenje značajke u Node-RED koja omogućuje ubrizgavanje poruka u tokove. Ta se značajka naziva injekcijski čvor. Koristit ćemo dva čvora za ubrizgavanje. Jedno će biti uključivanje LED diode, dok će drugo isključivanje.
Idite na paletu čvorova i povucite čvor za ubrizgavanje u tok. To je prvi čvor u paleti sa strelicom, čvor za ubrizgavanje istaknut je na donjoj slici.

Dvaput kliknite na njega da biste uredili njegova svojstva. Promijenite vrstu podataka u niz tako što ćete kliknuti padajući izbornik ispred korisnog tereta i u okvir 1 upisati 1. Vrijednost u okviru korisnog tereta je ono što će se ubrizgati u protok kad se pritisne čvor. Postavite naziv čvora na "ON" Pritisnite gumb "Gotovo" za spremanje.

Ponovite gore za drugi čvor, postavljajući vrijednost korisnog tereta na "0" i njegovo ime kao "isključeno", kao što je prikazano dolje.

Pod funkcijom svojstva, ponavljanje padajući može koristiti za automatizaciju injekciju tako da su tipke pritisnuta u intervalima. To se može koristiti za stvaranje efekta treptanja. Spojite čvorove, kao što je prikazano u nastavku, povlačenjem sive točke na jednom od čvorova na drugi da biste stvorili tok.

Kada smo to učinili, sada smo dovršili naš prvi Node-Red Flow.
Sljedeći je korak da rasporedimo protok na malina pi. Kliknite crveni gumb za postavljanje. Na vrhu zaslona trebali biste vidjeti bljeskalicu "uspješno postavljeno", kao što je prikazano dolje.

Kliknite sivi gumb iza čvorova za ubrizgavanje da biste aktivirali svaki od čvorova.

Klikom na čvor za ubrizgavanje "on" trebali biste vidjeti da se prikazuje uspješno ubrizgano "on" i LED lampica se uključuje. LED bi se trebao ugasiti kad se klikne na "isključeni" čvor za ubrizgavanje.

To je to. Kompletan rad ove postavke nalazi se u videozapisu na dnu ove stranice.
Dodavanje tipke / prekidača u Node-CRVENO sučelje s Raspberry Pi
Da bismo objasnili kako povezati / dodati ulazni element vašem protoku, vodit ćemo gore navedeni tok dodavanjem gumba za zamjenu čvorova za ubrizgavanje.
Povežite tipku s malinom pi, tako da je jedna noga tipke spojena na masu, a druga je povezana s GPIO iglom 4 (iglica 11) maline pi, kao što je prikazano u donjim shemama.

Nakon toga vratite se na Node-Red i izbrišite dva čvora za ubrizgavanje koje smo ranije koristili, klikom na čvorove i pritiskom na delete na tipkovnici ili dvostrukim klikom na čvorove i pritiskom na delete na skočnom prozoru. Nakon toga, pomaknite se niz čvorova do odjeljka malina pi i odaberite ulazni čvor. To je onaj s ikonom maline pi s lijeve strane, prije imena čvora.

Povucite čvor u tok i dvaput kliknite na njega da biste uredili svojstva. Postavite zatik na GPIO 4 (zatik 11) i postavite padajući izbornik ispred otpornika. Ovo će "povući" GPIO 4 u VISOKO. Nakon podešavanja svojstava kliknite gumb gotovo.

Da bismo mogli donositi logične odluke kad se prekidač pritisne, a ne samo kratiti GPIO4 na masu, koristit ćemo čvor prekidača. Potražite ga u paleti čvorova, u odjeljku funkcija i povucite do toka.

Preklopni čvor omogućuje vam donošenje odluka na način sličan izjavama "ako". Može se postaviti da ima različite izlaze, ovisno o ulaznoj vrijednosti. Za ovaj tutorial konfigurirat ćemo ga s dva izlazna puta, tako da, kada je svojstvo msg.payload jednako 1 (prekidač nije pritisnut), trebalo bi slijediti prvi put, a slijedi se drugi put ako postoji bilo koji drugi ulaz na ulazu se opaža osim 1 (pritisnuta je sklopka). Putovi se dodaju pomoću gumba "+ dodaj". Dvaput kliknite na čvor i konfigurirajte kako je gore opisano. Kliknite kada ste završili.

Čim pritisnete gumb gotovo, trebali biste vidjeti kako se dvije staze odražavaju u izgledu čvora prekidača, jer će sada na izlazu imati dva spoja.

Dalje, moramo unijeti čvor za promjenu. Čvor za promjenu koristit će se za postavljanje stanja LED-a na temelju rezultata čvora argumenta.

Koristit ćemo dva čvora promjene. Korisni teret prvog postavit će se na 0 kao što je prikazano na donjoj slici, a korisni teret drugog postavljen na jedan. Kliknite gotovo nakon uređivanja svojstava za obje.

Da bismo bolje objasnili, sjećate li se da smo koristili povlačni otpor? Dakle, kada tipka nije pritisnuta, izlaz na tom zatiču bit će VISOK (1), što znači da ako ga prođemo kroz sklopni čvor, LED će biti "upaljeno", jer to ne bi trebalo biti, mi ćemo upotrijebite čvor "promjena" da biste ga postavili kao LOW (0). Drugi čvor za promjenu koristi se za postavljanje vrijednosti na takvu da kada bi se otkrilo bilo što drugo osim VISOKOG stanja GPIO pina 4, trebao bi uključiti LED diodu, jer će to značiti da je pritisnut gumb. Spojite čvorove za promjenu i ostatak čvorova zajedno kao što je prikazano na donjoj slici.

Kad smo to učinili, sada smo spremni za implementaciju projekta. Pređite preko veze kako biste se uvjerili da je sve kako treba, a zatim kliknite gumb za postavljanje. Kao i obično, ako uspijete, trebali biste vidjeti skočni prozor za uspješno postavljanje i sada moći kontrolirati led pomoću prekidača.
Iako Node-Red olakšava i brzu izradu prototipa vaše gradnje bez brige o kodu, on zapravo možda neće najbolje odgovarati, posebno iskusnim programerima koji će željeti fleksibilnost i kontrolu nad programom. Ipak, to je izvrstan alat koji vam omogućuje izradu prototipa za nekoliko minuta.
Do sljedećeg puta!
