- Priekšnoteikumi
- Nepieciešamās sastāvdaļas
- Node-RED instalēšana uz Raspberry Pi
- Node-RED palaišana Raspberry Pi
- Izpratne par mezglu-RED saskarni
- Shēmas
- Plūsmas izveide mezglā RED
- Spiedpogas / slēdža pievienošana Node-RED saskarnē ar Raspberry Pi
Kādreiz esat domājis, vai ir veids, kā izveidot vienkāršus IoT risinājumu prototipus, nepavadot dienas, rakstot kodus, vai veidot praktiskus progresīvus projektus bez kodēšanas. Jā, tas ir iespējams ar platformu Node-Red. IBM izstrādātais Node-RED ir atvērtā koda programmēšanas rīks, lai aparatūras ierīces, API un tiešsaistes pakalpojumus vadītu kopā jaunā un interesantā veidā. Tas nodrošina pārlūkprogrammu balstītu redaktoru, kas atvieglo " plūsmu" savienošanu, izmantojot plašo paletes mezglu klāstu, ko vienā klikšķī var izvietot tā izpildlaikā.
Node-RED ir spēcīgs rīks lietisko interneta (IoT) lietojumprogrammu veidošanai ar mērķi vienkāršot programmēšanas komponentu.
Lai izmantotu uzdevumu, tā izmanto vizuālo programmēšanu, kas ļauj savienot kodu blokus, kas pazīstami kā mezgli. Šodienas apmācībai mēs pārbaudīsim, kā jūs varat izvietot vienkāršus projektus uz aveņu pi, izmantojot Node-RED. Aveņu pi mezglā sarkana apmācība segs;
- Node-RED instalēšana uz Raspberry Pi.
- Ievads Node-RED lietotāja saskarnē
- Kā iestatīt mezglu-RED plūsmas
- Kā kontrolēt Raspberry Pi GPIO tapas ar Node-RED
- Kā izmantot mezglu-RED ieejas, izejas un, ja vēl, piemēram, lēmumu pieņemšanu, izmantojot slēdžus
Priekšnoteikumi
Šī apmācība būs balstīta uz Raspbian stretch OS, un es pieņemu, ka jūs esat iepazinies ar Raspberry Pi iestatīšanu ar to, un jūs zināt, kā SSH ievadīt Pi, izmantojot termināļa programmatūru, piemēram, špakteli. Ja jums ir kādas problēmas ar šo, šajā vietnē var atrast daudz Raspberry Pi apmācību.
Lai viegli pabeigtu apmācību, es iesaku jums izmantot monitoru, kas savienots ar aveņu pi, vai arī izmantojat VNC Viewer programmatūru. Ja jums nav monitora un sāciet no jauna ar Pi, varat turpināt izlasīt šo Raspberry Pi bezgalvu iestatījumu, lai turpinātu šo apmācību. Kaut arī Node-Red darbojas no tīmekļa pārlūkprogrammas, un tam var piekļūt datorā, kuram Pi ir pievienots, izmantojot Pi IP adresi, es uzskatu, ka VNC / monitora pieredze sniegs jums labākas lietas.
Kā demonstrāciju, lai parādītu, kā Node-Red darbojas, mēs izmantosim Node-RED, lai ieprogrammētu Raspberry Pi, lai kontrolētu LED, kas savienots ar tā GPIO, un vēlāk modificēsim programmu, lai ļautu LED vadīt no taustes, kas savienots ar Pi's GPIO.
Nepieciešamās sastāvdaļas
Lai izveidotu šo projektu, ir nepieciešami šādi komponenti;
- Aveņu Pi 3 ar iepriekš ielādētu SD karti ar iepriekš ielādētu Raspbian Stretch
- 100 omu rezistors (1)
- LED (1)
- Maizes dēlis (1)
- Vīriešu-sieviešu džemperu vadi
- Taktilā spiedpoga (1)
Node-RED instalēšana uz Raspberry Pi
Kaut arī Node-Red ir iepriekš instalēts Raspbian Stretch OS, mums tas ir jāatjaunina, pirms varēsim izbaudīt dažas no tā jaunākajām funkcijām. Node-Red testamenta jaunināšana
- Jauniniet esošo lietotāju uz LTS 8.x vai 10.x Node.js un jaunāko Node-RED
- Migrējiet visus esošos globāli instalētos mezglus lietotāju ~ /.node-sarkanajā telpā, lai tos varētu pārvaldīt, izmantojot paletes pārvaldnieku, tas NEVIS atjaunina nevienu lietotāja instalētu esošo mezglu. Lietotājam tas jādara manuāli (skatīt zemāk).
- Pēc izvēles (atkārtoti) instalējiet papildu mezglus, kas ir iepriekš instalēti pilnā Raspbian Pi attēlā.
Tomēr Node-Red jaunināšanas process ir līdzīgs jauna instalēšanai, tāpēc šīs apmācības labad mēs to vienkārši apstrādāsim kā jaunu instalāciju, lai cilvēki, kas izmanto citas OS versijas, varētu sekot.
Veiciet tālāk norādītās darbības, lai instalētu / jauninātu Node-RED savā Raspberry Pi.
Mēs sākam ar pi jaunināšanu un atjaunināšanu, lai nodrošinātu, ka viss tajā ir atjaunināts un izvairītos no saderības problēmām. Dariet to, atverot termināli vai izmantojot ssh, un palaidiet;
Sudo apt-get atjauninājums
sekoja
sudo apt-get jauninājums
Kad tas izdarīts, terminālā palaidiet zemāk esošo skriptu;
bash <(čokurošanās -sL
Bash skripts darīt šādas lietas
- Jautājiet, vai vēlaties (atkārtoti) instalēt papildu Pi mezglus
- Saglabājiet visu globāli instalēto mezglu-sarkano mezglu sarakstu, kas atrodami mapē / usr / lib / node_modules
- apt-get noņemt esošo Node-Red
- noņemiet visus mezglu sarkanos bināros failus no / usr / bin un / usr / local / bin
- Noņemiet visus mezglu sarkanos moduļus no / usr / lib / node_modules un / usr / local / lib / node_modules
- Nosakiet, vai Node.js tika instalēts no paketes Node.js vai Debian
- Ja tas nav v8 vai jaunāks - noņemiet pēc vajadzības un instalējiet jaunāko v8 vai v10 LTS (neizmantojot apt).
- Notīriet npm kešatmiņu un.node-gyp kešatmiņu, lai noņemtu visas iepriekšējās koda versijas
- Instalējiet Node-RED jaunāko versiju
- Atkārtoti instalējiet zem lietotāja konta visus mezglus, kas iepriekš bija instalēti visā pasaulē
- Ja nepieciešams, atkārtoti instalējiet papildu Pi mezglus
- Pārbūvēt visus mezglus - lai atkārtoti apkopotu visus bināros failus, lai tie atbilstu jaunākajai Node.js versijai
- Pievienojiet komandas node-red-start, node-red-stop un node-red-log komandas vietnei / usr / bin
- Pievienot izvēlnes saīsni un ikonu
- Pievienojiet sistēmas skriptu un iestatiet lietotāju
- Ja uz Pi pievienojiet CPU temperatūru -> IoT piemērs
Iepriekš minētais bash skripts palaiž daudzas komandas kā sudo un izdzēš esošos Node.js un galvenos Node-RED direktorijus. Skripta saturu šajā GitHub lapā varat pārbaudīt pirms tā palaišanas, lai pārliecinātos, ka tas neietekmēs nevienu projektu, kas jums jau ir Pi.
Kad instalēšana ir pabeigta, tagad jūsu izvēlnes programmēšanas lietotņu sarakstā vajadzētu redzēt ikonu Node-Red.
Node-RED palaišana Raspberry Pi
Node-Red var palaist, izmantojot izvēlnes sadaļu no jūsu aveņu pi darbvirsmas, caur termināli vai izmantojot ssh.
Lai palaistu aveņu pi darbvirsmā, noklikšķiniet uz Aveņu ikonas, virziet peles kursoru uz Programmēšana noklikšķiniet uz Node-RED (Izvēlne> Programmēšana> NodeRed), lai to palaistu.
To var arī palaist no ssh vai termināla, palaižot;
mezgls-sarkans-sākums
Jums vajadzētu redzēt logu, piemēram, zemāk redzamo, ar darbvirsmas sarkano palaišanu mezglā.
Kad esat to redzējis, dodieties uz izvēlni-> internets un palaidiet hroma tīmekļa pārlūkprogrammu. Lai gan jūsu Raspberry pi nav nepieciešams internets, lai palaistu Node-Red, tā kā interfeiss izmanto pārlūku.
Kad hroms ir palaists, adreses joslā ievadiet localhost: 1880 , kam seko ievadīšanas taustiņš. 1880 ir aveņu pī osta, kurā Node-Red ir iepriekš iestatīts saziņai. Tam vajadzētu parādīt saskarni Node-Red, kā parādīts zemāk esošajā attēlā.
Izpratne par mezglu-RED saskarni
Par Node-Red saskarnes sastāv no plūsmas paneļa, mezglus palete, atkļūdošanas konsole un informācijas konsole, kā uzsvērts attēlā augstāk.
Plūsma panelis ir vieta, kur mezgli ir savienoti kopā, lai izveidotu programmu, kas mezglā-Red sauc plūsmas, bet Mezgls palete sastāv no priekšmetiem, kas ir raksturīgi aparatūras, protokolu un programmatūras funkcijas, kas saistītas ar ierīcēm. Tas ietver tādus protokolus kā MQTT IoT un GPIO izvades un ievades režīmus tādiem dēļiem kā aveņu pi. Informācijas konsole sniedz informāciju par izceltajiem / izvēlētiem objektiem bet atkļūdošanas konsolidarbojas tāpat kā Arduino sērijas monitors un var sniegt atgriezenisko saiti, kamēr plūsma darbojas. Izvietošanas poga tiek izmantota, lai augšupielādētu plūsmu mērķa aparatūrā. Poga Izvēlne satur dažādus augšupielādes veidus, lai palīdzētu jums iegūt vislabāko no projekta. Kad Node-Red ir izveidots un darbojas, tagad mēs varam turpināt demonstrācijas projekta izveidi.
Shēmas
Kā minēts ievadā, mūsu šodienas demonstrācijas projekts būs Raspberry Pi GPIO vadība, izmantojot Node-RED plūsmu. Lai parādītu GPIO stāvokļa variāciju, mēs savienosim LED ar GPIO tā, ka, ieslēdzot konkrēto GPIO tapu, LED iedegas un otrādi.
Pievienojiet gaismas diodi Raspberry PI, kā parādīts zemāk esošajās shēmās.
Es to pašu uzbūvēju arī uz savas aparatūras, izmantojot paneļu, LED, rezistoru un dažus savienojošos vadus. Kad savienojumi ir izveidoti, mana aparatūras iestatīšana izskatās apmēram tā.
Šo projektu var viegli pārveidot par mājas automatizācijas projektu, vienkārši nomainot LED ar releju un jebkuru maiņstrāvas ierīci, uzziniet, kā to izdarīt, veicot dažādus mājas automatizācijas projektus.
Plūsmas izveide mezglā RED
Ja LED ir pievienots, mēs varam turpināt attīstīt plūsmu. Programmas NodeRed sauc par plūsmām tāpat kā Arduino IDE tās sauc par skicēm. Plūsmas tiek veidotas, izmantojot mezglu kombināciju. Jūs varat izveidot vairākas plūsmas, kuras visas var darboties vienlaicīgi, taču šai apmācībai mēs izveidosim vienu plūsmu, lai ieslēgtu / izslēgtu LED.
Lai sāktu, ritiniet līdz mezglu paletes apakšai, un beigās redzēsiet aveņu pi mezglu sadaļu ar diviem mezgliem ar apzīmējumu rpigpio. Šie mezgli tiek izmantoti saziņai ar aveņu pi GPIO. Viens no mezgliem ir paredzēts ievadei, bet otrs - izvadei, kas diferencēta pēc aveņu pi logotipa pozīcijas. Par ieejas mezglā, logotips nāk pirms teksta, kamēr izejas mezglā logo nāk pēc teksta, kā parādīts attēlā zemāk.
Šajā apmācībā mēs izmantosim izvades mezglu, velciet to saskarnes plūsmas sadaļā. Šis solis ir līdzīgs konkrētas Arduino piespraudes deklarēšanai kā Output, izmantojot komandu pinMode () . Veiciet dubultklikšķi uz mezgla Output, un tiks atvērts uznirstošais logs, kā parādīts zemāk, lai jūs varētu rediģēt mezgla rekvizītus.
Sadaļā piespraudes rekvizīts atlasiet GPIO17 (11. tapa). Pēc tam iestatiet rekvizīta type vērtību “ digital Output ” un atzīmējiet izvēles rūtiņu “ Initialize pin state?” atzīmējiet izvēles rūtiņu, atstājot opciju “ sākotnējais tapas līmenis ” zemu (0). Piešķiriet mezglam jebkuru nosaukumu, kas jums patīk, un noklikšķiniet uz pogas Gatavs.
Mezgla nosaukumam automātiski jāmainās uz to, kuru ievadījāt rekvizītu iestatījumā. Piemēram, es to nosaucu par LED, tāpēc mezgla nosaukums tiek mainīts arī kā LED, kā parādīts zemāk.
Lai ieslēgtu / izslēgtu gaismas diode, mums ir jāizmanto ievade, kaut kas darbības virzīšanai. Lai gan mēs varētu izmantot spiedpogu, es vēlos to izmantot, lai ieviestu Node-RED funkciju, kas ļauj ziņojumus ievadīt plūsmās. Šīs funkcijas sauc par injekcijas mezglu. Mēs izmantosim divus injekcijas mezglus. Viens būs LED ieslēgšana, bet otrs - izslēgšana.
Pārejiet uz mezglu paleti un velciet injicējamo mezglu uz plūsmu. Tas ir pirmais paletes mezgls ar bultiņu. Injekcijas mezgls ir izcelts zemāk esošajā attēlā.
Veiciet dubultklikšķi uz tā, lai rediģētu tā īpašības. Mainiet datu tipu uz virkni, noklikšķinot uz nolaižamās izvēlnes lietderīgās kravas priekšā un lodziņā Derīgā krava ievadiet 1. Derīgās kravas lodziņa vērtība tiek ievadīta plūsmā, kad tiek nospiests mezgls. Iestatiet mezgla nosaukumu uz “ON”, lai saglabātu, nospiediet pogu “Done”.
Atkārtojiet iepriekšminēto otro mezglu, nosakot lietderīgās slodzes vērtību “0” un tā nosaukumu “izslēgts”, kā parādīts zemāk.
Funkcijas Īpašības laikā atkārtoto nolaižamo izvēlni var izmantot, lai automatizētu iesmidzināšanu, lai pogas tiktu nospiestas ik pēc laika. To var izmantot, lai izveidotu mirkšķināšanas efektu. Savienojiet mezglus kopā, kā parādīts zemāk, velkot pelēko punktu vienā no mezgliem uz otru, lai izveidotu plūsmu.
Kad tas ir izdarīts, mēs esam pabeiguši savu pirmo mezglu-sarkano plūsmu.
Nākamais solis ir mums izvietot plūsmu uz aveņu pi. Noklikšķiniet uz sarkanās izvietošanas pogas. Jums vajadzētu redzēt “veiksmīgi izvietotu” zibspuldzi ekrāna augšdaļā, kā parādīts zemāk.
Noklikšķiniet uz pelēkās pogas aiz injicēšanas mezgliem, lai aktivizētu katru no mezgliem.
Noklikšķinot uz injicēšanas mezgla “on”, jums vajadzētu redzēt, kā parādīts veiksmīgi ievadīts “on”, un iedegas gaismas diode. Kad noklikšķina uz “off” inject mezgla, gaismas diode jādeg.
Tieši tā. Pilnīga šīs iestatīšanas darbība ir atrodama videoklipā, kas ir saistīts ar šīs lapas apakšdaļu.
Spiedpogas / slēdža pievienošana Node-RED saskarnē ar Raspberry Pi
Lai izskaidrotu, kā savai plūsmai pievienot / pievienot ievades elementu, mēs veiksim iepriekš minēto plūsmu tālāk, pievienojot spiedpogu, lai aizstātu injicēšanas mezglus.
Savienojiet spiedpogu ar aveņu pi tā, lai viena spiedpogas kājiņa būtu savienota ar zemi, bet otra būtu savienota ar aveņu pi GPIO tapu 4 (11. tapa), kā parādīts zemāk redzamajās shēmās.
Kad tas ir izdarīts, atgriezieties pie Node-Red un izdzēsiet divus iepriekš izmantotos injicēšanas mezglus, noklikšķinot uz mezgliem un nospiežot tastatūras dzēšanu vai veicot dubultklikšķi uz mezgliem un uznirstošajā logā nospiežot dzēst. Kad tas ir izdarīts, ritiniet uz leju mezgla paleti līdz aveņu pi sadaļai un atlasiet ievades mezglu. Tas ir tas, kura aveņu pi ikona atrodas kreisajā pusē, pirms mezgla nosaukuma.
Velciet mezglu plūsmā un veiciet dubultklikšķi uz tā, lai rediģētu rekvizītus. Iestatiet tapu uz GPIO 4 (11. tapa) un iestatiet nolaižamo izvēlni rezistora priekšā, lai to izvilktu. Tas “pievilks” GPIO 4 uz AUGSTU. Pēc rekvizītu iestatīšanas noklikšķiniet uz pogas Gatavs.
Lai ļautu mums pieņemt loģiskus lēmumus, kad slēdzis tiek nospiests, nevis tikai saīsināt GPIO4 līdz zemei, mēs izmantosim slēdža mezglu. Meklējiet to mezgla paletē zem funkciju sadaļas un velciet uz plūsmu.
Slēdža mezgls ļauj pieņemt lēmumus līdzīgi paziņojumiem “ja”. To var iestatīt ar atšķirīgu izeju atkarībā no ieejas vērtības. Šajā apmācībā mēs to konfigurēsim ar diviem izvades ceļiem, piemēram, kad rekvizīts msg.payload ir vienāds ar 1 (slēdzis nav nospiests), tam jāiet pa pirmo ceļu un jāievēro otrais ceļš ieejā tiek novērots cits kā 1 (slēdzis ir nospiests). Ceļi tiek pievienoti, izmantojot pogu “+ pievienot”. Veiciet dubultklikšķi uz mezgla un konfigurējiet, kā aprakstīts iepriekš. Kad esat pabeidzis, noklikšķiniet uz Gatavs.
Tiklīdz nospiedīsit pogu Gatavs, jums vajadzētu redzēt, kā divi ceļi atspoguļojas slēdža mezgla perspektīvā, jo tā izvadē tagad būs divi savienojumi.
Tālāk mums jāievada “pārmaiņu” mezgls. Mainīšanas mezgls tiks izmantots, lai iestatītu LED stāvokli, pamatojoties uz argumenta mezgla rezultātu.
Mēs izmantosim divus no izmaiņu mezgliem. Pirmā lietderīgā slodze tiks iestatīta uz 0, kā parādīts zemāk redzamajā attēlā, bet otrās - uz vienu. Pēc abu rekvizītu rediģēšanas noklikšķiniet uz Gatavs.
Lai labāk izskaidrotu, atcerieties, ka mēs izmantojām pievilkšanas rezistoru? Tādējādi, kad poga nav nospiesta, izvads šajā tapā būs AUGSTS (1), tas nozīmē, ja mēs to izlaidīsim caur slēdža mezglu, gaismas diode iedegsies, jo tam tā nevajadzētu būt, izmantojiet mezglu “mainīt”, lai to iestatītu kā LOW (0). Otro mezglu “mainīt” izmanto, lai vērtību iestatītu uz tādu, ka, ja tiek atklāts kas cits, izņemot GPIO 4. kontakta HIGH stāvokli, tam vajadzētu ieslēgt LED “ieslēgšanu”, jo tas nozīmē, ka ir nospiesta poga. Savienojiet maiņas mezglus un pārējos mezglus kopā, kā parādīts attēlā zemāk.
Kad tas ir izdarīts, mēs tagad esam gatavi izvietot projektu. Pārejiet uz savienojumu, lai pārliecinātos, ka viss notiek tā, kā vajadzētu, pēc tam noklikšķiniet uz izvietošanas pogas. Kā parasti, ja tas ir veiksmīgs, jums vajadzētu redzēt izvietošanas veiksmīgo uznirstošo logu un tagad spēt kontrolēt LED, izmantojot slēdzi.
Kaut arī Node-Red atvieglo un ātru prototipa izveidi, neuztraucoties par kodu, tas patiesībā var nebūt vispiemērotākais, īpaši pieredzējušiem izstrādātājiem, kuri vēlēsies elastību un kontroli pār programmu. Neskatoties uz to, tas ir lielisks rīks, kas ļauj prototipu veidot dažu minūšu laikā.
Līdz nākamajai reizei!