- Mga Materyal na Kinakailangan
- Pag-install ng Node.js sa Raspberry Pi
- Kumukurap sa isang LED gamit ang Node.js
- Node.js LED Blink script at Paliwanag
- Circuit Diagram para sa Blinking isang LED gamit ang Node.js
- Raspberry Pi
Sa nakaraang Mga Tutorial sa Raspberry Pi, gumamit kami ng maraming iba`t ibang mga wika ng pagprograma at software upang makontrol ang Raspberry Pi kasama ang Python, naka-embed na C, Flask atbp. Upang mapalawak ang abot-tanaw ng malakas na board na Raspberry Pi, gagamitin namin ngayon ang isang tanyag na kapaligiran na nakabatay sa JavaScript (Node.js) upang makontrol ang mga Raspberry Pi GPIO nang lokal pati na rin sa buong mundo sa pamamagitan ng pagse-set up nito bilang webserver. Sa una, ang Node.js ay binuo para sa Google Chrome ngunit kalaunan ay buksan ito ng Google.
Sa tutorial na ito, makokontrol namin ang isang LED, na konektado sa Raspberry Pi, gamit ang dalawang pamamaraan
- Una ay magsusulat lamang kami ng isang JavaScript code gamit ang Node.js upang Blink the LED
- Sa pangalawang pamamaraan, lilikha kami ng isang pahina ng HTML na may dalawang mga pindutan upang i-on at i-off ang LED. Ang web page na HTML ay mai-host sa raspberry pi at mabubuksan sa anumang web browser. Kaya dito ang Raspberry Pi ay kikilos bilang webserver
Mga Materyal na Kinakailangan
- Raspberry pi board na may naka-install na Raspbian dito
- LED
Sa tutorial na ito gumagamit ako ng Panlabas na Monitor na gumagamit ng HDMI cable upang kumonekta sa Raspberry Pi. Kung wala kang monitor, maaari mong gamitin ang SSH client (Putty) o VNC server upang kumonekta sa Raspberry pi gamit ang Laptop o computer. Kung nakakita ka ng anumang kahirapan pagkatapos sundin ang aming Pagtitig sa Patnubay ng Raspberry Pi.
Pag-install ng Node.js sa Raspberry Pi
I-install namin ang Node.js sa aming board gamit ang mga sumusunod na utos.
Hakbang 1: - Unang suriin ang bersyon ng braso ng iyong raspberry pi board gamit ang utos na ito.
uname -m
Sa aking kaso, ang bersyon ay 7.
Hakbang 2: - I - download ang installer sa pamamagitan ng pagkopya ng link na ito sa terminal. Huwag kalimutang baguhin ang bersyon sa link na ibinigay sa ibaba.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Hakbang 3: - I- extract ang mga file gamit ang utos sa ibaba
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Hakbang 4: - Panghuli, ipatupad ang mga utos na ito upang idagdag din ang mga mahahalagang file sa mga lokal na direktoryo.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Ang Node.js ay naka-install na ngayon sa iyong Raspberry Pi. Suriin ang bersyon ng node para sa kumpirmasyon gamit ang utos na ito.
node –pagbagong loob
Bago gumawa ng isang Node.js server, makikita muna namin kung paano magsulat ng isang script upang pumikit ang isang LED gamit ang node.js (npm onoff package).
Kumukurap sa isang LED gamit ang Node.js
Upang makontrol ang GPIO sa Raspberry Pi gamit ang Node.js, gagamitin namin ang onoff module.
Gagamitin namin ang npm package manager upang mag-install ng onoff module gamit ang ibaba ng utos
mag-install onoff
Ngayon, magsusulat kami ng isang script para sa pagpikit ng led. Buksan ang nano editor at ibigay ang pangalan sa file gamit ang utos
nano blink_led.js
Kung ikaw ay isang nagsisimula sa Node.js at ito ay mga package, maaari mong ang dokumentasyon ng npm para sa mas mahusay na pag-unawa sa script.
Node.js LED Blink script at Paliwanag
Una, ideklara ang mga variable para sa led, pagkaantala at GPIO. Gumagamit ako ng Raspberry Pi GPIO 4 upang ikonekta ang LED.
var Gpio = nangangailangan ('onoff'). Gpio; var LED = bagong Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Ngayon, gagawa kami ng isang function upang simulan ang blink.
pagpapaandar blinkLED () {kung (LED.readSync () === 0) {LED.writeSync (1); // itakda ang output sa 1 ie turn led on} iba pa {LED.writeSync (0); // set output to 0 ie turn led }}
Katulad nito, gumawa ng isang pagpapaandar upang ihinto ang pagkurap
function endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // I-export ang GPIO sa mga libreng mapagkukunan} setTimeout (endBlink, 10000);
Ang kumpletong Node.js code para sa Blinking LED ay ibinibigay sa pagtatapos ng tutorial na ito. Kaya kopyahin at i-paste ang code sa file led_blink.js , na nilikha namin dati gamit ang nano command, i-save ang file gamit ang Ctrl + x, pagkatapos ay pindutin ang Y at pindutin ang enter.
Upang patakbuhin ang script, buksan ang terminal at i-type ang utos sa ibaba:
node blink_led.js
Makikita mo na ang LED ay magpapikit ng 10 segundo at pagkatapos nito ay titigil ito sa pag-blink. Suriin ang kumpletong pagtatrabaho sa Video na ibinigay sa pagtatapos ng tutorial na ito.
Circuit Diagram para sa Blinking isang LED gamit ang Node.js
Raspberry Pi
Ngayon, dumating sa kagiliw-giliw na bahagi, dito gagawa kami ng aming sariling web server kung saan maaari naming makontrol ang GPIO ng Raspberry pi gamit ang isang webpage.
Para sa mga ito, kailangan muna naming gumawa ng isang pahina ng HTML at magsulat ng isang script upang maisagawa ang back-end na gawain ie upang makontrol ang RPi GPIO.
Hakbang 1: - Gumawa ng isang direktoryo upang maiimbak ang lahat ng mga file sa isang lugar.
mkdir nodejs_server
Hakbang 2: - Sa loob ng nodejs_server folder gumawa ng isa pang folder para sa pag-save ng HTML file.
cd nodejs_server mkdir view
Hakbang 3: - Kung nais mong magdagdag ng mga imahe sa iyong pahina ng html, pagkatapos ay dapat kang gumawa ng isa pang folder na pinangalanan publiko sa loob ng pangunahing direktoryo ie sa nodejs_server folder. Sa pampublikong folder, gumawa ng folder ng imahe at iimbak ang lahat ng mga imahe sa folder na ito.
Hakbang 4: - Ngayon, gagawa kami ng pahina ng HTML. Para dito, pumunta sa direktoryo ng mga view at buksan ang nano text editor na may filename index.ejs
Walang magarbong sa script. Ito ay isang HTML file lamang upang gumawa ng button na On at Off.
Kopyahin i-paste ang ibaba HTML code sa nano text editor at i-save ito.
Maligayang pagdating sa Nodejs Server
Humantong sa Katayuan: <% = status%>Hakbang 5: - Ngayon, kailangan naming magsulat ng JavaScript code. Gumagamit kami ng balangkas na node express upang tumugon sa mga kahilingan sa http na isinagawa ng gumagamit.
Maaari mong sundin ang link upang matuto nang higit pa tungkol sa Node Express.
Buksan ang terminal at buksan ang nano text editor na may index.js filename sa nodejs_server folder, pagkatapos kopyahin at i-paste ang nasa ibaba java script code at ang file na ito.
var express = nangangailangan ('express'); var app = express (); var path = nangangailangan ('landas'); var gpio = nangangailangan ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('view engine', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'pampubliko')); app.get ('/', pagpapaandar (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'publiko')); ibalik ang res.render ('index',{status: "Led is On"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Nagsimula ang Server sa Port: 3000!') })
Hakbang 6: - Sa loob ng direktoryo ng nodejs_server , kailangan naming isagawa ang sumusunod na utos upang mai - install ang mga aklatan ng node.js
i-install
Hakbang 7: - Ngayon, handa nang gumana ang iyong server. Upang simulan ang lokal na server, patakbuhin ang sumusunod na utos sa loob ng direktoryo ng nodejs_server
node index.js
makakakita ka ng isang mensahe sa terminal na nagsimula ang iyong server sa tinukoy na port.
Hakbang 8: - Ngayon buksan ang iyong browser at buksan ang Raspberry Pi URL na may numero ng port ie raspberrypi: 3000
Tiyaking ang iyong raspberry pi at laptop kung saan mo binubuksan ang browser ay konektado sa parehong network.
Makikita mo ang sumusunod na pahina sa browser.
Ngayon, pindutin ang pindutan ng LED On upang i-on ang LED at LED Off na pindutan upang patayin ang LED.