- Potrebni materiali
- Namestitev Node.js na Raspberry Pi
- Utripa LED z Node.js
- Node.js LED utripajoči skript in razlaga
- Shema vezja za utripanje LED z uporabo Node.js
- Raspberry Pi
V prejšnjih vajah za Raspberry Pi smo za nadzor Raspberry Pi uporabljali številne različne programske jezike in programsko opremo, vključno s Pythonom, vdelanim C, bučko itd. Za razširitev obzorja zmogljive plošče Raspberry Pi bomo danes uporabili zelo priljubljeno okolje, ki temelji na JavaScript (Node.js) za nadzor Raspberry Pi GPIO-jev tako lokalno kot globalno, tako da ga nastavi kot spletni strežnik. Sprva je bil Node.js razvit za Google Chrome, kasneje pa ga je Google odprl.
V tej vadnici bomo z dvema načinoma upravljali LED, povezan z Raspberry Pi
- Najprej bomo preprosto napisali kodo JavaScript z uporabo Node.js, da utripa LED
- Pri drugi metodi bomo ustvarili stran HTML z dvema gumboma za vklop in izklop LED. Ta spletna stran HTML bo gostovala na Raspberry Pi in jo lahko odprete v katerem koli spletnem brskalniku. Torej bo Raspberry Pi deloval kot spletni strežnik
Potrebni materiali
- Plošča Raspberry pi z nameščenim Raspbian
- LED
V tej vadnici uporabljam zunanji monitor s kablom HDMI za povezavo z Raspberry Pi. Če nimate monitorja, lahko s pomočjo odjemalca SSH (Putty) ali strežnika VNC vzpostavite povezavo z Raspberry pi s prenosnikom ali računalnikom. Če naletite na kakršne koli težave, sledite našemu Vodiču za raziskovanje Raspberry Pi.
Namestitev Node.js na Raspberry Pi
Node.js bomo namestili na našo ploščo z naslednjimi ukazi.
1. korak: - S tem ukazom najprej preverite, ali je različica vaše maline pi plošče v rokah.
uname -m
V mojem primeru je različica 7.
2. korak: - Prenesite namestitveni program s kopiranjem te povezave v terminal. Ne pozabite spremeniti različice na spodnji povezavi.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
3. korak: - Izvlecite datoteke s spodnjim ukazom
tar -xvf vozlišče-v4.6.1-linux-armvl.tar.gz
4. korak: - Na koncu izvedite te ukaze, da dodate pomembne datoteke tudi v lokalne imenike.
cd vozlišče-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js je zdaj nameščen v vašem Raspberry Pi. Preverite različico vozlišča za potrditev s tem ukazom.
vozlišče –verzija
Preden se lotimo izdelave strežnika Node.js, bomo najprej videli, kako napisati skript za utripanje LED z node.js (paket npm onoff).
Utripa LED z Node.js
Za nadzor GPIO na Raspberry Pi s pomočjo Node.js bomo uporabili modul onoff.
Za namestitev modula onoff bomo uporabili upravitelja paketov npm z uporabo spodnjega ukaza
npm namestite onoff
Zdaj bomo napisali skript za utripanje led. Odprite urejevalnik nano in z ukazom vnesite ime datoteke
nano blink_led.js
Če ste začetnik v Node.js in gre za pakete, lahko za boljše razumevanje skripta uporabite dokumentacijo npm.
Node.js LED utripajoči skript in razlaga
Najprej navedite spremenljivke za led, delay in GPIO. Za priključitev LED uporabljam Raspberry Pi GPIO 4.
var Gpio = require ('onoff'). Gpio; var LED = nov Gpio (4, 'ven'); var blinkInterval = setInterval (blinkLED, 500);
Zdaj bomo naredili funkcijo za zagon utripanja.
funkcija blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // nastavimo izhod na 1, tj. vklopimo led} else {LED.writeSync (0); // nastavimo izhod na 0, tj. izklopimo led }}
Podobno naredite funkcijo za zaustavitev utripanja
funkcija endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Uvoz GPIO v brezplačne vire} setTimeout (endBlink, 10000);
Popolna koda Node.js za utripajočo LED je podana na koncu te vadnice. Torej kopirajte in prilepite kodo v datoteko led_blink.js , ki smo jo že ustvarili z ukazom nano , datoteko shranite s tipkama Ctrl + x, nato pritisnite Y in pritisnite Enter.
Če želite zagnati skript, odprite terminal in vnesite spodnji ukaz:
vozlišče blink_led.js
Videli boste, da LED utripa 10 sekund, nato pa preneha utripati. Preverite celotno delo v videoposnetku, podanem na koncu te vadnice.
Shema vezja za utripanje LED z uporabo Node.js
Raspberry Pi
Zdaj pa pojdite na zanimiv del, tukaj bomo naredili svoj spletni strežnik, iz katerega bomo lahko s pomočjo spletne strani nadzorovali GPIO za Raspberry pi.
Za to moramo najprej narediti stran HTML in napisati skript za izvajanje zaledne naloge, tj. Za nadzor RPi GPIO.
1. korak: - Naredite imenik za shranjevanje vseh datotek na enem mestu.
mkdir nodejs_server
2. korak: - V mapi nodejs_server naredite še eno mapo za shranjevanje datoteke HTML.
cd pogledi nodejs_server mkdir
3. korak: - Če želite na svojo stran html dodati slike, potem v glavni mapi, tj. V mapi nodejs_server, naredite drugo mapo z imenom public. V javni mapi naredite slikovno mapo in shranite vse slike v to mapo.
4. korak: - Zdaj bomo naredili stran HTML. Za to pojdite v direktorij pogledov in odprite nano urejevalnik besedil z imenom datoteke index.ejs
V scenariju ni nič posebnega. To je samo datoteka HTML, ki omogoča vklop in izklop gumba.
Kopirajte spodnjo kodo HTML v urejevalnik besedil nano in jo shranite.
Dobrodošli v strežniku Nodejs
Led stanje: <% = status%>5. korak: - Zdaj moramo napisati kodo JavaScript. Okvir node express uporabljamo za odziv na http zahteve, ki jih opravi uporabnik.
Sledite povezavi, če želite izvedeti več o Node Express.
Odpri terminal in odprt nano urejevalnik besedil z index.js naziv v nodejs_server mapo, nato kopirajte in prilepite spodnjo java script kodo in to datoteko.
var express = require ('express'); var app = express (); var pot = zahteva ('pot'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('pogled motorja', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (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, 'public')); vrni res.render ('index',{status: "Led sveti"}); }); }); 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 ('Strežnik se je začel na vratih : 3000!') })
6. korak: - V imeniku nodejs_server moramo za namestitev knjižnic node.js izvesti naslednji ukaz
npm namestite
7. korak: - Vaš strežnik je pripravljen za delo. Za začetek lokalnega strežnika, zaženite ta ukaz znotraj nodejs_server imenik
vozlišče index.js
v terminalu boste videli sporočilo, da se strežnik zažene na določenih vratih.
8. korak: - Zdaj odprite brskalnik in odprite URL Raspberry Pi s številko vrat, tj. Raspberrypi: 3000
Prepričajte se, da sta vaš Raspberry Pi in prenosni računalnik, v katerem odpirate brskalnik, povezana z istim omrežjem.
V brskalniku boste videli naslednjo stran.
Sedaj pritisnite LED Na gumb za vklop LED in LED izklop gumb za izklop LED.