- Išankstiniai reikalavimai
- Reikalingi komponentai
- „Node-RED“ diegimas „Raspberry Pi“
- „Node-RED“ paleidimas „Raspberry Pi“
- Suprasti „Node-RED“ sąsają
- Schemos
- Srauto sukūrimas mazgu-RED
- Mygtuko / jungiklio pridėjimas „Node-RED“ sąsajoje su „Raspberry Pi“
Kada nors susimąstėte, ar yra būdas pagaminti paprastus daiktų interneto sprendimų prototipus nereikalaujant dienų rašyti kodus, ar kurti praktiškus pažangius projektus be kodavimo. Taip, tai įmanoma naudojant „Node-Red“ platformą. „IBM“ sukurtas „ Node-RED“ yra atviro kodo programavimo įrankis, skirtas naujai ir įdomiai sujungti aparatūros įrenginius, API ir internetines paslaugas. Tai suteikia naršyklės redaktorių, leidžiantį lengvai sujungti „ srautus“, naudojant daugybę paletės mazgų, kuriuos galima vienu metu spustelėti vykdymo metu.
„Node-RED“ yra galingas įrankis daiktų interneto (IoT) programoms kurti, siekiant supaprastinti programavimo komponentą.
Jis naudoja vizualų programavimą, kuris leidžia jums sujungti kodų blokus, vadinamus mazgais, kartu atlikti užduotį. Šiandienos pamokoje išnagrinėsime, kaip galite įdiegti paprastus projektus aviečių pi, naudodami „Node-RED“. Aviečių Pi mazgas-raudona pamoka bus padengti;
- „Node-RED“ įdiegimas į „Raspberry Pi“.
- Įvadas į „Node-RED“ vartotojo sąsają
- Kaip nustatyti mazgo-RED srautus
- Kaip valdyti „Raspberry Pi GPIO“ kaiščius naudojant „Node-RED“
- Kaip naudoti „Node-RED“ įvestis, išvestis ir panašiai kaip priimti sprendimus naudojant jungiklius
Išankstiniai reikalavimai
Ši pamoka bus pagrįsta „Raspbian stretch OS“, ir aš manysiu, kad esate susipažinę su „Raspberry Pi“ nustatymu su juo ir žinote, kaip SSH į „Pi“ naudoti naudojant terminalo programinę įrangą, pvz., Glaistą. Jei turite problemų dėl bet kurio iš šių dalykų, šioje svetainėje yra daugybė „ Raspberry Pi“ vadovėlių, kurie gali padėti.
Norėdami lengvai užbaigti mokymo programą, patarsiu naudoti monitorių, prijungtą prie aviečių pi, arba naudoti „VNC Viewer“ programinę įrangą. Jei neturite monitoriaus ir pradedate nuo „Pi“, galite perskaityti šį „Headless Raspberry Pi“ sąranką ir tęsti šią pamoką. Nors „Node-Red“ veikia iš žiniatinklio naršyklės ir prie jo galima prisijungti kompiuteryje, prie kurio „Pi“ yra prijungtas per „Pi“ IP adresą, manau, kad VNC / monitoriaus patirtis suteiks jums geresnių dalykų.
Kaip demonstraciją, kaip parodyti „Node-Red“ veikimą, naudosime „Node-RED“, kad užprogramuotume „Raspberry Pi“, kad valdytume šviesos diodą, prijungtą prie jo GPIO, ir vėliau modifikuosime programą, kad LED būtų galima valdyti iš lytėjimo mygtuko, prijungto prie „Pi“ GPIO.
Reikalingi komponentai
Norint sukurti šį projektą, reikalingi šie komponentai;
- „Raspberry Pi 3“ su SD kortele, iš anksto įdėta su „Raspbian Stretch“
- 100 omų rezistorius (1)
- LED (1)
- Skydinė lenta (1)
- Vyrų-moterų megztinių laidai
- Lytėjimo mygtukas (1)
„Node-RED“ diegimas „Raspberry Pi“
Nors „Node-Red“ yra iš anksto įdiegtas „Raspbian Stretch“ OS, turime jį atnaujinti, kad galėtume mėgautis kai kuriomis naujausiomis jo funkcijomis. „Node-Red“ testamento atnaujinimas
- Atnaujinkite esamą vartotoją į LTS 8.x arba 10.x Node.js ir naujausią „Node-RED“
- Perkelkite visus esamus visuotinai įdiegtus mazgus į vartotojų ~ /.node-raudoną erdvę, kad juos būtų galima valdyti per paletės tvarkyklę, jis NETURI atnaujinti nė vieno vartotojo įdiegto esamo mazgo. Tai vartotojas turi atlikti rankiniu būdu (žr. Toliau).
- Pasirinktinai (iš naujo) įdiekite papildomus mazgus, kurie iš anksto įdiegti visame „Raspbian Pi“ vaizde.
Tačiau „Node-Red“ naujovinimo procesas yra panašus į naujo diegimą, todėl vardan šios pamokos mes jį traktuosime kaip naują diegimą, kad galėtų sekti žmonės, naudojantys kitas OS versijas.
Atlikite toliau nurodytus veiksmus, kad įdiegtumėte / atnaujintumėte „Node-RED“ savo „Raspberry Pi“.
Pirmiausia atnaujiname ir atnaujiname „pi“, kad įsitikintume, jog viskas jame yra atnaujinta ir išvengtume suderinamumo problemų. Atlikite tai atidarydami terminalą arba per ssh ir paleiskite;
Sudo apt-get atnaujinimas
paskui
sudo apt-get atnaujinimas
Tai atlikę, paleiskite žemiau esantį „bash“ scenarijų terminale;
bash <(curl -sL
„ Bash“ scenarijus atliks šiuos dalykus
- Paklauskite, ar norite (per) įdiegti papildomus „Pi“ mazgus
- Išsaugokite visų visame pasaulyje įdiegtų mazgų-raudonų mazgų, esančių aplanke / usr / lib / node_modules, sąrašą
- apt-get pašalinti esamą „Node-Red“
- pašalinti visus mazgus raudonus dvejetainius failus iš / usr / bin ir / usr / local / bin
- Pašalinkite visus raudonus mazgo modulius iš / usr / lib / node_modules ir / usr / local / lib / node_modules
- Aptikite, ar „Node.js“ buvo įdiegtas iš „Node.js“ paketo ar „Debian“
- Jei ne v8 ar naujesnis - pašalinkite, jei reikia, ir įdiekite naujausią v8 arba v10 LTS (nenaudodami apt).
- Išvalykite npm talpyklą ir.node-gyp talpyklą, kad pašalintumėte ankstesnes kodo versijas
- Įdiekite naujausią „Node-RED“ versiją
- Iš naujo įdiekite mazgus, kurie anksčiau buvo įdiegti visame pasaulyje, po vartotojo paskyra
- Jei reikia, iš naujo įdiekite papildomus „Pi“ mazgus
- Atkurti visus mazgus - norint iš naujo sukompiliuoti visus dvejetainius failus, kad jie atitiktų naujausią „Node.js“ versiją
- Pridėkite komandas „node-red-start“, „node-red-stop“ ir „node-red-log“ komandas prie / usr / bin
- Pridėti meniu nuorodą ir piktogramą
- Pridėti sistemos scenarijų ir nustatyti vartotoją
- Jei ant Pi pridėkite procesoriaus temperatūrą -> IoT pavyzdys
Aukščiau pateiktas „bash“ scenarijus paleidžia daug komandų kaip „ sudo“ ir ištrina esamus „Node.js“ bei pagrindinius „Node-RED“ katalogus. Prieš paleisdami šį „GitHub“ puslapį galite patikrinti scenarijaus turinį ir įsitikinti, kad jis neturės įtakos jokiam projektui, kurį jau turite „Pi“.
Baigę diegimą, savo meniu programavimo programų sąraše turėtumėte pamatyti „Node-Red“ piktogramą.
„Node-RED“ paleidimas „Raspberry Pi“
„Node-Red“ galima paleisti per meniu skyrių iš jūsų aviečių pi darbalaukio, per terminalą arba per ssh.
Norėdami paleisti į aviečių pi darbalaukį, spustelėkite piktogramą Avietė, užveskite pelės žymeklį ant Programavimas, norėdami paleisti, spustelėkite Node-RED (Meniu> Programavimas> NodeRed).
Jį taip pat galima paleisti iš ssh arba terminalo, paleidus;
mazgas-raudona-pradžia
Turėtumėte pamatyti langą, panašų į žemiau esantį, kuriame rodomas raudonas mazgo paleidimas darbalaukyje.
Kai tai pamatysite, eikite į meniu-> internetą ir paleiskite chromo naršyklę. Nors jūsų „Raspberry pi“ nereikia interneto norint paleisti „Node-Red“, jis kaip sąsają naudoja naršyklę.
Kai paleidžiamas chromas, adreso juostoje įveskite localhost: 1880 , po to įveskite klavišą. 1880 yra aviečių pi uostas, kuriame „Node-Red“ yra nustatytas iš anksto bendrauti. Tai turėtų parodyti „ Node-Red“ sąsają, kaip parodyta paveikslėlyje žemiau.
Suprasti „Node-RED“ sąsają
„ Node-Red“ sąsają sudaro srauto skydelis, mazgų paletė, derinimo konsolė ir informacijos konsolė, kaip parodyta aukščiau esančiame paveikslėlyje.
Srautas panelė yra kur mazgai yra sujungtos siekiant sukurti programą, kuri mazge-raudona yra vadinamas srautas, o mazgas paletė susideda iš objektų, kurie atstovas aparatūros, protokolų ir programinės įrangos funkcijos, susijusios su įrenginių. Jame yra tokie protokolai kaip „MQTT“, skirtas „IoT“, ir GPIO išvesties bei įvesties režimai plokštėms, tokioms kaip „aviečių pi“. Informacijos konsolės teikia informaciją apie pabrėžė / pažymėtus objektus o debug konsolėsveikia taip pat kaip „Arduino Serial“ monitorius ir gali teikti grįžtamąjį ryšį, kol vyksta srautas. Diegimo mygtukas naudojamas srautui įkelti į tikslinę aparatinę įrangą. Meniu mygtukas apima skirtingus įkėlimo tipus, kad galėtumėte kuo geriau išnaudoti savo projektą. Kai „Node-Red“ veikia ir veikia, dabar galime kurti demonstracinį projektą.
Schemos
Kaip jau minėjome įžangos metu, mūsų šiandieninis demonstracinis projektas bus „Raspberry Pi“ GPIO valdymas naudojant „Node-RED“ srautą. Norėdami parodyti GPIO būsenos kitimą, prie GPIO prijungsime šviesos diodą taip, kad įjungus tą konkretų GPIO kaištį, šviesos diodas įsijungtų ir atvirkščiai.
Prijunkite šviesos diodą prie „Raspberry PI“, kaip parodyta toliau pateiktose schemose.
Aš taip pat sukūriau savo aparatinę įrangą naudodamas skydą, šviesos diodą, rezistorių ir keletą jungiamųjų laidų. Mano aparatūros sąranka atrodo maždaug taip, kai bus užmegzti ryšiai.
Šį projektą galima lengvai paversti namų automatikos projektu, tiesiog pakeičiant šviesos diodą į relę ir bet kokį kintamosios srovės prietaisą, sužinokite, kaip tai padaryti vykdant įvairius namų automatikos projektus.
Srauto sukūrimas mazgu-RED
Prijungę šviesos diodą galime tęsti srautą. „NodeRed“ programos vadinamos srautais, kaip „Arduino IDE“ jas vadina eskizais. Srautai kuriami naudojant mazgų derinį. Galite sukurti kelis srautus, kurie visi gali veikti vienu metu, tačiau šioje pamokoje sukursime vieną srautą, kad įjungtume / išjungtume šviesos diodą.
Norėdami pradėti, slinkite į Mazgų paletės apačią ir pamatysite link aviečių pi mazgų sekciją su dviem mazgais, pažymėtais rpigpio. Šie mazgai naudojami bendraujant su aviečių pi GPIO. Vienas iš mazgų yra įvestis, o kitas - išvestis, diferencijuojama pagal aviečių pi logotipo vietą. Dėl įėjimo mazgas, logotipas ateina prieš tekstą, o už produkcijos mazgas logotipą ateina po tekstą, kaip parodyta paveikslėlyje.
Šioje pamokoje mes naudosime išvesties mazgą, vilkite jį į sąsajos srauto skyrių. Šis žingsnis yra panašus į konkretaus „Arduino“ kaiščio paskelbimą išvestimi naudojant komandą „ pinMode ()“ . Dukart spustelėkite išvesties mazgą ir atsidarys iššokantis langas, kaip parodyta žemiau, kad galėtumėte redaguoti mazgo ypatybes.
Smeigtuko ypatybės skyriuje pasirinkite GPIO17 (11 kaištis). Tada nustatykite ypatybę type į „ digital Output “ ir pažymėkite „ Initialize pin state?“ žymimasis laukelis paliekant parinktį „ pradinis kaiščio lygis “ (0). Nurodykite mazgui bet kokį vardą ir spustelėkite mygtuką „Atlikta“.
Mazgo pavadinimas turėtų automatiškai pasikeisti į tą, kurį įvedėte pagal ypatybių nustatymą. Pavyzdžiui, aš jį pavadinau LED, todėl mazgo pavadinimas taip pat pasikeitė kaip LED, kaip parodyta žemiau.
Norėdami įjungti / išjungti šviesos diodą, turime naudoti įvestį, kažką, kad paskatintume veiksmą. Nors mes galėtume naudoti mygtuką, aš noriu tai naudoti norėdamas pristatyti „Node-RED“ funkciją, leidžiančią injekuoti pranešimus į srautus. Ši funkcija vadinama injekcijos mazgu. Mes naudosime du injekcijos mazgus. Vienas iš jų bus įjungti šviesos diodą, o kitas - jį išjungti.
Eikite į mazgo paletę ir vilkite injekcijos mazgą į srautą. Tai pirmasis mazgas paletėje su rodykle, injekcijos mazgas paryškintas žemiau esančiame paveikslėlyje.
Dukart spustelėkite jį, kad galėtumėte redaguoti jo ypatybes. Pakeiskite duomenų tipą į eilutę spustelėdami išskleidžiamąjį meniu prieš naudingąją apkrovą ir laukelyje Naudingoji apkrova įveskite 1. Vertė naudingosios apkrovos laukelyje yra tai, kas bus įpurškta į srautą, kai bus paspaustas mazgas. Nustatykite mazgo pavadinimą į padėtį „ĮJUNGTA“. Norėdami išsaugoti, paspauskite mygtuką „Atlikta“.
Antrąjį mazgą pakartokite aukščiau, nustatydami naudingos apkrovos vertę „0“, o jos pavadinimą „išjungę“, kaip parodyta žemiau.
Pagal savybių funkcija, Pakartokite išskleidžiamajame gali būti naudojami automatizuoti injekcijos todėl mygtukai nuspausti tarpais. Tai gali būti naudojama mirksėjimo efektui sukurti. Sujunkite mazgus kartu, kaip parodyta žemiau, vilkdami pilką tašką viename iš mazgų į kitą, kad sukurtumėte srautą.
Tai padarę, mes baigėme savo pirmąjį mazgą-raudoną srautą.
Kitas žingsnis yra tai, kad mes nukreiptume srautą į aviečių pi. Spustelėkite raudoną diegimo mygtuką. Ekrano viršuje turėtumėte pamatyti „sėkmingai įdiegtą“ blykstę, kaip parodyta žemiau.
Spustelėkite pilką mygtuką už injekcijos mazgų, kad suaktyvintumėte kiekvieną mazgą.
Spustelėdami „įjungti“ injekcijos mazgą, turėtumėte pamatyti, kaip rodomas sėkmingai įvestas „įjungtas“, ir šviesos diodas užsidega. Šviesos diodas turėtų užgesti, kai spustelėjamas „išjungtas“ injekcijos mazgas.
Viskas. Visą šios sąrankos veikimą galite rasti vaizdo įraše, susietame šio puslapio apačioje.
Mygtuko / jungiklio pridėjimas „Node-RED“ sąsajoje su „Raspberry Pi“
Norėdami paaiškinti, kaip prijungti / pridėti įvesties elementą prie savo srauto, mes tęsime pirmiau pateiktą srautą, pridėdami mygtuką, kad pakeistumėte įpurškimo mazgus.
Prijunkite mygtuką prie aviečių pi taip, kad viena mygtuko koja būtų prijungta prie žemės, o kita - prie aviečių pi GPIO kaiščio 4 (11 kaištis), kaip parodyta toliau pateiktose schemose.
Tai padarę, grįžkite į „Node-Red“ ir ištrinkite du anksčiau naudotus injekcijos mazgus spustelėdami mazgus ir klaviatūroje paspausdami „Delete“ arba dukart spustelėdami mazgus ir iššokančiajame lange paspausdami „Delete“. Tai atlikę, slinkite žemyn mazgo palete iki aviečių pi sekcijos ir pasirinkite įvesties mazgą. Tai yra ta, kurios kairėje, prieš mazgo pavadinimą, yra aviečių pi piktograma.
Vilkite mazgą į srautą ir dukart spustelėkite jį, norėdami redaguoti ypatybes. Nustatykite kaištį į GPIO 4 (11 kaištis) ir nustatykite išskleidžiamąjį meniu prieš rezistorių, kad jis būtų ištrauktas. Tai „ištrauks“ GPIO 4 į HIGH. Nustatę ypatybes, spustelėkite mygtuką atlikta.
Kad leistume priimti logiškus sprendimus paspaudus jungiklį, o ne tik sutrumpintume GPIO4 įžeminimą, naudosime jungiklio mazgą. Ieškokite jo mazgo paletėje, po funkcijų skiltimi ir vilkite į srautą.
Jungiklio mazgas leidžia priimti sprendimus panašiai kaip sakiniai „jei“. Galima nustatyti skirtingus išėjimus, atsižvelgiant į įvesties vertę. Šioje pamokoje mes sukonfigūruosime jį dviem išvesties keliais, kad, kai ypatybė msg.payload yra lygi 1 (jungiklis nėra paspaustas), ji turėtų eiti po pirmuoju keliu, o jei bus bet kokia kita įvestis įėjime pastebima kita nei 1 (paspaudžiamas jungiklis). Keliai pridedami naudojant mygtuką „+ pridėti“. Dukart spustelėkite mazgą ir sukonfigūruokite, kaip aprašyta aukščiau. Baigę spustelėkite baigta.
Kai tik paspausite mygtuką „Atlikta“, turėtumėte pamatyti, kaip du keliai atsispindi jungiklio mazgo perspektyvoje, nes jo išėjime dabar bus dvi sankryžos.
Toliau turime įvesti „pakeitimo“ mazgą. Pakeitimo mazgas bus naudojamas šviesos diodo būsenai nustatyti remiantis argumento mazgo rezultatu.
Mes naudosime du iš pakeitimo mazgų. Pirmojo naudingoji apkrova bus nustatyta kaip 0, kaip parodyta žemiau esančiame paveikslėlyje, o antrosios - viena. Redagavę abiejų ypatybes, spustelėkite atlikta.
Norėdami geriau paaiškinti, nepamirškite, kad naudojome traukiamąjį rezistorių? Taigi, kai mygtukas nebus nuspaustas, to kaiščio išvestis bus HIGH (1), o tai reiškia, kad jei mes jį praleisime per jungiklio mazgą, šviesos diodas bus "įjungtas", nes tai neturėtų būti taip, mes naudokite mazgą „pakeisti“, kad jį nustatytumėte kaip LOW (0). Antrasis mazgas „pakeisti“ naudojamas norint nustatyti tokią vertę, kad aptikęs bet ką, išskyrus 4 aukšto GPIO kaiščio būseną, jis turėtų įjungti šviesos diodą, nes tai reiškia, kad buvo paspaustas mygtukas. Prijunkite keitimo mazgus ir likusius mazgus kartu, kaip parodyta paveikslėlyje žemiau.
Tai padarę, mes esame pasirengę įgyvendinti projektą. Peržiūrėkite ryšį, kad įsitikintumėte, jog viskas yra taip, kaip turėtų būti, tada spustelėkite diegimo mygtuką. Kaip įprasta, jei pavyks, turėtumėte pamatyti sėkmingai įdiegtą iššokantį langą ir dabar galėsite valdyti lemputę naudodami jungiklį.
Nors „Node-Red“ leidžia lengvai ir greitai sukurti prototipą, nesijaudinant dėl kodo, jis iš tikrųjų gali būti netinkamiausias, ypač patyrusiems kūrėjams, kurie norės lankstumo ir programos valdymo. Nepaisant to, tai puikus įrankis, leidžiantis sukurti prototipą per kelias minutes.
Iki kito karto!