- Paunang mga kinakailangan
- Mga Kinakailangan na Bahagi
- Pag-install ng Node-RED sa Raspberry Pi
- Paglunsad ng Node-RED sa Raspberry Pi
- Pag-unawa sa interface ng Node-RED
- Mga Skema
- Lumilikha ng isang Daloy sa Node-RED
- Pagdaragdag ng isang Pushbutton / Switch sa Node-RED interface na may Raspberry Pi
Kailanman nagtaka kung may isang paraan upang gumawa ng mga simpleng prototype ng mga solusyon sa IoT nang hindi kinakailangang gumugol ng mga araw sa pagsulat ng mga code o upang makabuo ng mga praktikal na advanced na proyekto nang walang pag-coding. Oo, posible ito sa Node-Red Platform. Binuo ng IBM, ang Node-RED ay isang tool na bukas-mapagkukunan ng programa para sa mga kable na magkakasama ang mga aparato sa hardware, API at mga serbisyong online sa bago at kagiliw-giliw na paraan. Nagbibigay ito ng isang editor na nakabatay sa browser na ginagawang madali upang mag-wire nang sama-sama ' dumadaloy' gamit ang malawak na hanay ng mga node sa palette na maaaring i-deploy sa runtime nito sa isang solong pag-click.
Ang Node-RED ay isang malakas na tool para sa pagbuo ng mga aplikasyon ng Internet of Things (IoT) na may layuning gawing simple ang bahagi ng programa.
Gumagamit ito ng visual na programa na nagbibigay-daan sa iyo upang ikonekta ang mga bloke ng code, na kilala bilang mga node, na magkasama upang maisagawa ang isang gawain. Para sa tutorial ngayon, susuriin namin kung paano mo mai- deploy ang mga simpleng proyekto sa raspberry pi gamit ang Node-RED. Sakop ang raspberry pi node-red tutorial;
- Pag-install ng Node-RED sa Raspberry Pi.
- Panimula sa interface ng gumagamit ng Node-RED
- Paano i-set up ang mga daloy ng Node-RED
- Paano makontrol ang mga pin ng Raspberry Pi GPIO gamit ang Node-RED
- Paano gamitin ang mga input ng Node-RED, output at kung-iba tulad ng paggawa ng desisyon gamit ang mga switch
Paunang mga kinakailangan
Ang tutorial na ito ay batay sa Raspbian stretch OS at ipalagay kong pamilyar ka sa pagse-set up ng Raspberry Pi dito, at alam mo kung paano SSH sa Pi gamit ang isang terminal software tulad ng masilya. Kung mayroon kang mga isyu sa anuman sa mga ito, maraming tonelada ng Mga Tutorial sa Raspberry Pi sa website na ito na makakatulong.
Upang madaling makumpleto ang tutorial, payuhan ko kayo na gumamit ng isang monitor na konektado sa raspberry pi o gagamitin mo ang VNC Viewer software. Kung wala kang isang Monitor at nagsisimulang sariwa sa Pi maaari mong basahin ang set-up na Headless Raspberry Pi upang magpatuloy sa tutorial na ito. Habang ang Node-Red ay tumatakbo mula sa isang web browser at maaaring ma-access sa iyong PC kung saan nakakonekta ang Pi sa pamamagitan ng IP address ng Pi, naniniwala ako na ang karanasan sa VNC / monitor ay magbibigay sa iyo ng isang mas mahusay na hang ng mga bagay.
Bilang isang demo upang maipakita kung paano gumagana ang Node-Red, gagamitin namin ang Node-RED upang iprograma ang Raspberry Pi upang makontrol ang isang LED na konektado sa GPIO nito at sa paglaon ay baguhin ang programa upang payagan ang LED na makontrol mula sa isang tactile pushbutton na konektado sa Pi's GPIO.
Mga Kinakailangan na Bahagi
Ang mga sumusunod na sangkap ay kinakailangan upang buuin ang proyektong ito;
- Ang Raspberry Pi 3 na may SD card na na-preload na may Raspbian Stretch Preloaded
- 100 ohms risistor (1)
- LED (1)
- Breadboard (1)
- Mga wires ng jumper na lalaki hanggang babae
- Butas ng push push (1)
Pag-install ng Node-RED sa Raspberry Pi
Habang ang Node-Red ay naka-preinstall na sa Raspbian Stretch OS, kailangan namin itong i-upgrade bago namin matamasa ang ilan sa mga pinakabagong tampok. Pag-a-upgrade sa kalooban ng Node-Red
- I-upgrade ang mayroon nang gumagamit sa LTS 8.x o 10.x Node.js at pinakabagong Node-RED
- I-migrate ang anumang umiiral na pandaigdigang naka-install na mga node sa mga gumagamit ~ /.node-red space upang mapamahalaan sila sa pamamagitan ng manager ng palette, HINDI ito nai-update ang sinumang gumagamit na naka-install ng mga mayroon nang mga node. Dapat itong manu-manong gawin ng gumagamit (tingnan sa ibaba).
- Opsyonal (muling) mai-install ang labis na mga node na paunang naka-install sa isang buong imahe ng Raspbian Pi.
Gayunpaman, ang proseso ng pag-upgrade ng Node-Red ay katulad ng pag-install ng bago kaya para sa kapakanan ng tutorial na ito ay ituturing lamang namin ito tulad ng isang bagong pag-install upang ang mga taong gumagamit ng ibang mga bersyon ng OS ay maaaring sundin.
Sundin ang mga hakbang sa ibaba upang I-install / I-upgrade ang Node-RED sa iyong Raspberry Pi.
Nagsisimula kami sa pamamagitan ng pag-upgrade at pag-update ng pi, upang matiyak na napapanahon ang lahat dito at maiwasan ang mga isyu sa pagiging tugma. Gawin ito sa pamamagitan ng pagbubukas ng isang terminal o sa pamamagitan ng ssh, at patakbuhin;
Sudo apt-get update
sinundan ng
sudo apt-get upgrade
Sa tapos na ito, patakbuhin ang bash script sa ibaba sa terminal;
bash <(curl -sL
Ang Bash script ay gawin ang mga sumusunod na bagay
- Tanungin kung nais mong (muling) mai-install ang labis na mga Pi node
- I-save ang isang listahan ng anumang pandaigdigang naka-install na node-red- node na matatagpuan sa / usr / lib / node_modules
- apt-get alisin ang mayroon nang Node-Red
- alisin ang anumang node-red binaries mula sa / usr / bin at / usr / local / bin
- Alisin ang anumang mga node-red module mula / usr / lib / node_modules at / usr / local / lib / node_modules
- Alamin kung ang Node.js ay na-install mula sa Node.js package o Debian
- Kung hindi v8 o mas bago - alisin kung naaangkop at i-install ang pinakabagong v8 o v10 LTS (hindi gumagamit ng apt).
- Linisin ang cache ng npm at.node-gyp cache upang alisin ang anumang nakaraang mga bersyon ng code
- I-install ang pinakabagong bersyon ng Node-RED
- I-install muli sa ilalim ng account ng gumagamit ang anumang mga node na dati nang nai-install sa buong mundo
- I-install muli ang sobrang Pi node kung kinakailangan
- Muling itayo ang lahat ng mga node - upang muling magkumpuni ng anumang mga binary upang tumugma sa pinakabagong bersyon ng Node.js
- Magdagdag ng node-red-start, node-red-stop at node-red-log na mga utos sa / usr / bin
- Magdagdag ng shortcut sa menu at icon
- Magdagdag ng system script at itakda ang gumagamit
- Kung sa isang Pi magdagdag ng isang temperatura ng CPU -> halimbawa ng IoT
Ang bash script sa itaas ay nagpapatakbo ng maraming mga utos bilang sudo at tinatanggal ang mga umiiral na Node.js at ang pangunahing mga direktoryo ng Node-RED. Maaari mong suriin ang nilalaman ng script sa pahinang GitHub na ito bago patakbuhin ito upang matiyak na hindi ito makakaapekto sa anumang proyekto na mayroon ka na sa Pi.
Sa kumpletong pag-install dapat mo na ngayong makita ang icon na Node-Red sa ilalim ng listahan ng mga apps ng programa ng iyong menu.
Paglunsad ng Node-RED sa Raspberry Pi
Ang Node-Red ay maaaring mailunsad sa pamamagitan ng seksyon ng menu mula sa desktop ng iyong raspberry pi, sa pamamagitan ng terminal, o higit sa ssh.
Upang mailunsad sa desktop ng raspberry pi, Mag-click sa icon na Raspberry, i-hover ang iyong mouse sa Programming click sa Node-RED (Menu> Programming> NodeRed) upang ilunsad ito.
Maaari din itong mailunsad mula sa ssh o terminal sa pamamagitan ng pagpapatakbo;
node-red-start
Dapat mong makita ang isang window tulad ng isa sa ibaba na nagpapakita ng node red launch sa desktop.
Kapag nakita mo ito, pumunta sa menu-> internet at ilunsad ang chromium web browser. Habang ang iyong Raspberry pi ay hindi nangangailangan ng internet upang patakbuhin ang Node-Red, gumagamit ito ng isang browser bilang interface nito.
Sa chromium na inilunsad ipasok ang localhost: 1880 sa address bar na sinusundan ng enter key. Ang 1880 ay ang daungan sa raspberry pi kung saan ang Node-Red ay preset upang makipag-usap. Dapat itong ipakita ang interface ng Node-Red tulad ng ipinakita sa imahe sa ibaba.
Pag-unawa sa interface ng Node-RED
Ang interface ng Node-Red ay binubuo ng flow panel, ang mga node palette, ang debug console at ang info console na naka-highlight sa imahe sa itaas.
Ang flow panel ay kung saan ang mga node ay pinagsama upang lumikha ng isang programa na sa Node-Red ay tinatawag na flow, habang ang Node palette ay binubuo ng mga bagay na kinatawan ng hardware, mga protokol at mga tampok ng software na nauugnay sa mga aparato. Nagsasama ito ng mga protocol tulad ng MQTT para sa IoT, at output ng GPIO at mga mode ng pag-input para sa mga board tulad ng raspberry pi. Ang impormasyon console nagbibigay ng impormasyon sa naka-highlight / napiling bagay habang ang debug consolegumagana tulad ng Arduino Serial monitor at maaaring magbigay ng feedback habang tumatakbo ang daloy. Ginagamit ang pindutan ng pag-deploy upang mai-upload ang daloy sa target na hardware. Naglalaman ang pindutan ng menu ng iba't ibang mga uri ng pag-upload upang matulungan kang masulit ang iyong proyekto. Sa pagtakbo at pagpapatakbo ng Node-Red, maaari na tayong magpatuloy upang mabuo ang proyekto sa demo.
Mga Skema
Tulad ng nabanggit sa panahon ng pagpapakilala, ang aming proyekto sa demo para sa araw na ito ay upang makontrol ang GPIO ng Raspberry Pi gamit ang isang daloy ng Node-RED. Upang maipakita ang pagkakaiba-iba sa estado ng GPIO, magkokonekta kami ng isang LED sa GPIO tulad na kapag na-on ang partikular na GPIO pin, ang LED ay babalik at vice versa.
Ikonekta ang LED sa Raspberry PI tulad ng ipinakita sa mga iskema sa ibaba.
Bumubuo rin ako ng pareho sa aking hardware gamit ang isang breadboard, LED, risistor at ilang mga wires na nagkokonekta. Ang aking set-up na hardware ay mukhang isang bagay tulad nito sa sandaling ang mga koneksyon ay nagawa.
Ang proyektong ito ay maaaring madaling mai-convert sa isang proyekto sa pag-aautomat ng Home, sa pamamagitan lamang ng pagpapalit ng LED ng isang relay at anumang AC appliance, alamin kung paano gawin iyon sa pamamagitan ng pagdaan sa iba't ibang mga Proyekto sa Home Automation.
Lumilikha ng isang Daloy sa Node-RED
Sa konektadong LED, maaari tayong magpatuloy na paunlarin ang daloy. Ang mga programa sa NodeRed ay tinatawag na dumadaloy tulad ng tawag sa kanila ng Arduino IDE na mga sketch. Ang mga daloy ay nilikha gamit ang isang kumbinasyon ng mga node. Maaari kang lumikha ng maramihang mga daloy na maaaring tumakbo nang sabay-sabay, ngunit para sa tutorial na ito, lilikha kami ng isang solong daloy upang i-on / i-off ang LED.
Upang magsimula, Mag-scroll sa ilalim ng palda ng Nodes, makikita mo ang seksyon ng raspberry pi nodes patungo sa dulo na may dalawang node na may label na rpigpio. Ang mga node na ito ay ginagamit para sa pakikipag-usap sa GPIO ng raspberry pi. Ang isa sa mga Node ay para sa pag-input habang ang iba pa ay para sa output na naiiba sa posisyon ng logo ng raspberry pi. Para sa input node, ang logo ay nauna bago ang teksto, habang para sa output node ang logo ay dumating pagkatapos ng teksto tulad ng ipinakita sa imahe sa ibaba.
Para sa tutorial na ito, gagamitin namin ang output node, i-drag ito sa seksyon ng daloy ng interface. Ang hakbang na ito ay katulad ng pagdedeklara ng isang partikular na pin ng iyong Arduino bilang Output gamit ang utos na pinMode () . Mag-double click sa Output node at isang pop up window ang magbubukas tulad ng ipinapakita sa ibaba upang payagan kang i-edit ang mga katangian ng node.
Sa ilalim ng seksyon ng pag-aari ng pin, piliin ang GPIO17 (pin 11). Pagkatapos itakda ang uri ng pag-aari sa " digital Output " at lagyan ng tsek ang " Inisyal ang estado ng pin?" check box na iniiwan ang pagpipiliang " paunang antas ng pin " bilang mababang (0). Bigyan ang node ng kahit anong pangalan na gusto mo at i-click ang tapos na pindutan.
Ang pangalan ng node ay dapat na awtomatikong magbago sa isang ipinasok mo sa ilalim ng setting ng mga pag-aari. Halimbawa pinangalanan ko ito bilang LED at samakatuwid ang pangalan ng node ay binago din bilang LED tulad ng ipinakita sa ibaba.
Upang i-on / i-off ang LED, kailangan naming gumamit ng isang input, isang bagay upang himukin ang aksyon. Habang maaari kaming gumamit ng isang pindutan ng push, nais kong gamitin ito upang ipakilala ang tampok sa Node-RED na nagpapahintulot sa pag-iniksyon ng mga mensahe sa mga daloy. Ang tampok na ito ay tinatawag na injection Node. Gumagamit kami ng dalawang mga injection node. Ang isa ay upang i-on ang LED habang ang isa ay upang patayin ito.
Pumunta sa node palette at i-drag ang injection node sa daloy. Ito ang unang node sa palette na may isang arrow, ang injection node ay naka-highlight sa imahe sa ibaba.
Mag-double click dito upang mai-edit ang mga pag-aari nito. Baguhin ang uri ng data sa string sa pamamagitan ng pag-click sa dropdown sa harap ng payload, at Ipasok ang 1 sa kahon ng Payload. Ang halaga sa kahon ng kargamento ay kung ano ang mai-injected sa daloy kapag pinindot ang node. Itakda ang pangalan ng node sa "ON" Pindutin ang pindutang "Tapos na" upang makatipid.
Ulitin ang nasa itaas para sa pangalawang node, itatakda ang halaga ng kargamento sa "0" at ang pangalan nito bilang "off" tulad ng ipinakita sa ibaba.
Sa ilalim ng mga katangian ng pag-andar, ang mga paulit-ulit na dropdown ay maaaring gamitin upang i-automate ang pag-iiniksyon kaya ang pindutan ay pinindot sa pagitan. Maaari itong magamit upang lumikha ng blink effect. Sumali sa mga node nang magkakasama tulad ng ipinakita sa ibaba, sa pamamagitan ng pag-drag ng kulay abong tuldok sa isa sa mga node sa isa pa upang likhain ang daloy.
Sa tapos na, nakumpleto na namin ang aming pinakaunang Node-Red Flow.
Susunod na hakbang ay upang mai - deploy namin ang daloy sa raspberry pi. I-click ang pulang pindutan ng pag-deploy. Dapat mong makita ang "matagumpay na na-deploy" na flash sa tuktok ng screen tulad ng ipinakita sa ibaba.
I-click ang kulay abong pindutan sa likod ng mga node ng pag-inject upang maisaaktibo ang bawat isa sa mga node.
Sa pamamagitan ng pag-click sa "on" injection node, dapat mong makita ang matagumpay na na-injected na "on" na ipinakita at dumating ang LED. Ang LED ay dapat na patayin kapag ang "off" injection node ay na-click.
Ayan yun. Ang kumpletong pagtatrabaho ng set-up na ito ay matatagpuan sa video na naka-link sa ilalim ng pahinang ito.
Pagdaragdag ng isang Pushbutton / Switch sa Node-RED interface na may Raspberry Pi
Upang ipaliwanag kung paano ikonekta / magdagdag ng isang elemento ng pag-input sa iyong daloy, dadalhin namin ang daloy sa itaas nang higit pa sa pamamagitan ng pagdaragdag ng isang pushbutton upang mapalitan ang mga node na iniksiyon.
Ikonekta ang pushbutton sa raspberry pi, tulad nito, ang isang binti ng pushbutton ay konektado sa lupa at ang isa ay nakakonekta sa GPIO pin 4 (pin 11) ng raspbery pi, tulad ng ipinakita sa mga iskema sa ibaba.
Sa tapos na ito, Bumalik sa Node-Red at tanggalin ang dalawang mga node na iniksiyon na ginamit namin kanina, sa pamamagitan ng pag-click sa mga node at pagpindot sa tanggalin sa iyong keyboard o pag-double click sa mga node at pagpindot sa tanggalin sa pop-up window. Sa tapos na na, mag-scroll pababa sa node palette sa seksyon ng raspberry pi at piliin ang input node. Ito ang isa na may icon ng raspberry pi sa kaliwa, bago ang pangalan ng node.
I-drag ang node sa daloy at pag-click dito upang mai-edit ang mga katangian. Itakda ang pin sa GPIO 4 (pin 11) at itakda ang dropdown sa harap ng risistor upang mag-pull-up. Ito ay "magbubunot" ng GPIO 4 hanggang SA TAAS. Mag-click sa tapos na pindutan pagkatapos itakda ang mga pag-aari.
Upang pahintulutan kaming gumawa ng mga lohikal na desisyon kapag ang switch ay pinindot sa halip na ang pagpapaikli lamang ng GPIO4 sa lupa, gagamitin namin ang switch node. Hanapin ito sa node palette, sa ilalim ng seksyon ng pag-andar at i-drag sa daloy.
Pinapayagan ka ng switch node na gumawa ng mga pagpapasya sa paraang katulad sa mga pahayag na "kung". Maaari itong i-set up upang magkaroon ng iba't ibang mga output depende sa halaga ng pag-input. Para sa tutorial na ito, iko-configure namin ito ng dalawang output path, tulad nito, kapag ang pag-aari ng msg.payload ay katumbas ng 1 (ang switch ay hindi pinindot) dapat itong sundin ang unang landas at isang pangalawang landas ang susundan kung may iba pang input maliban sa 1 ay sinusunod sa input (pinindot ang switch). Ang mga landas ay idinagdag gamit ang pindutang "+ idagdag". Mag-double click sa node at i-configure tulad ng inilarawan sa itaas. Tapos na ang pag-click kapag tapos na.
Sa sandaling na-hit mo ang tapos na pindutan, dapat mong makita ang dalawang mga landas na sumasalamin sa pananaw ng switch node, dahil magkakaroon na ito ng dalawang mga kantong sa output.
Susunod, kailangan naming magdala ng isang "pagbabago" node. Gagamitin ang pagbabago ng node upang maitakda ang estado ng LED batay sa resulta ng argument node.
Gumagamit kami ng dalawa sa mga node ng pagbabago. Ang kargamento ng una ay itatakda sa 0 tulad ng ipinakita sa imahe sa ibaba at ang kargamento ng pangalawang naitakda sa isa. Ginawa ang pag-click pagkatapos ng pag-edit ng mga katangian para sa pareho.
Upang mas mahusay na ipaliwanag, tandaan na ginamit namin ang pull-up risistor? Kaya, kapag ang pindutan ay hindi pa pinindot, ang output sa pin na iyon ay magiging TAAS (1), na nangangahulugang kung ipasa natin ito sa switch node, ang LED ay "on", dahil hindi ito dapat ganoon, gagawin namin gamitin ang "pagbabago" node upang itakda ito bilang LOW (0). Ang pangalawang "pagbabago" node ay ginagamit upang itakda ang halaga sa isa tulad na kapag ang anumang bagay maliban sa TAAS na estado ng GPIO pin 4 ay nakita, dapat itong buksan ang LED "on" dahil nangangahulugan ito na ang pindutan ay pinindot. Ikonekta ang mga node ng pagbabago at ang natitirang mga node nang magkasama tulad ng ipinakita sa imahe sa ibaba.
Sa tapos na na ito, handa na kami ngayong i-deploy ang proyekto. Pumunta sa koneksyon upang matiyak na ang lahat ay dapat, pagkatapos ay i-click ang pindutang lumawak. Tulad ng dati, kung matagumpay dapat mong makita ang deploy matagumpay na popup at ngayon ay makontrol ang humantong gamit ang switch.
Habang ginagawang madali at mabilis ng Node-Red upang i-prototype ang iyong build nang hindi nag-aalala tungkol sa code, maaaring hindi ito ang pinakamahusay na akma, lalo na para sa mga may karanasan na developer na gugustuhin ang kakayahang umangkop at kontrol sa programa. Gayunpaman, ito ay isang mahusay na tool na nagbibigay-daan sa iyong bumubuo ng prototype sa loob ng ilang minuto.
Hanggang sa Susunod na pagkakataon!