- Nødvendige materialer
- Installation af Node.js på Raspberry Pi
- Blinker en LED ved hjælp af Node.js
- Node.js LED Blink script og forklaring
- Kredsløbsdiagram til at blinke en LED ved hjælp af Node.js
- Hindbær Pi
I tidligere Raspberry Pi-selvstudier har vi brugt mange forskellige programmeringssprog og softwares til at kontrollere Raspberry Pi inklusive Python, indlejret C, Flask osv. For at udvide horisonten af et stærkt Raspberry Pi-kort bruger vi i dag et meget populært JavaScript-baseret miljø (Node.js) til at kontrollere Raspberry Pi GPIO'er lokalt såvel som globalt ved at konfigurere det som webserver. Oprindeligt blev Node.js udviklet til Google Chrome, men senere blev det open-sourced af Google.
I denne vejledning styrer vi en LED, der er forbundet til Raspberry Pi ved hjælp af to metoder
- Først skriver vi simpelthen en JavaScript-kode ved hjælp af Node.js for at blinke lysdioden
- I anden metode opretter vi en HTML-side med to knapper til at tænde og slukke for LED. Denne HTML-webside vil være hostet på raspberry pi og kan åbnes i enhver webbrowser. Så her fungerer Raspberry Pi som webserver
Nødvendige materialer
- Hindbær pi bord med Raspbian installeret i det
- LED
I denne vejledning bruger jeg ekstern skærm ved hjælp af HDMI-kabel til at oprette forbindelse til Raspberry Pi. Hvis du ikke har skærm, kan du bruge SSH-klient (Putty) eller VNC-server til at oprette forbindelse til Raspberry pi ved hjælp af bærbar computer eller computer. Hvis du finder nogen problemer, skal du følge vores Bliv stirret med Raspberry Pi Guide.
Installation af Node.js på Raspberry Pi
Vi installerer Node.js i vores kort ved hjælp af følgende kommandoer.
Trin 1: - Kontroller først armversionen af dit hindbær pi-kort ved hjælp af denne kommando.
uname -m
I mit tilfælde er version 7.
Trin 2: - Download installationsprogrammet ved at kopiere dette link i terminalen. Glem ikke at ændre versionen i nedenstående link.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Trin 3: - Uddrag filerne ved hjælp af kommandoen nedenfor
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Trin 4: - Endelig udfør disse kommandoer for også at tilføje de vigtige filer til lokale mapper.
cd-node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js er installeret nu i din Raspberry Pi. Kontroller nodens version for bekræftelse ved hjælp af denne kommando.
node –version
Før vi opretter en Node.js-server, ser vi først, hvordan man skriver et script til at blinke en LED ved hjælp af node.js (npm onoff-pakke).
Blinker en LED ved hjælp af Node.js
For at kontrollere GPIO på Raspberry Pi ved hjælp af Node.js bruger vi onoff-modul.
Vi bruger npm- pakkehåndtering til at installere onoff-modul ved hjælp af kommandoen nedenfor
npm installer onoff
Nu vil vi skrive et script til at blinke af led. Åbn nano editor og giv navnet til filen ved hjælp af kommandoen
nano blink_led.js
Hvis du er nybegynder i Node.js og dets pakker, kan du dokumentere npm for bedre forståelse af scriptet.
Node.js LED Blink script og forklaring
Forklar først variablerne for led, forsinkelse og GPIO. Jeg bruger Raspberry Pi GPIO 4 til at forbinde LED'en.
var Gpio = kræve ('onoff'). Gpio; var LED = ny Gpio (4, 'ud'); var blinkInterval = setInterval (blinkLED, 500);
Nu vil vi lave en funktion for at starte blinket.
funktion blinkLED () {hvis (LED.readSync () === 0) {LED.writeSync (1); // sæt output til 1 dvs. tænde ledet på} ellers {LED.writeSync (0); // sæt output til 0 dvs. sluk ledet }}
Foretag ligeledes en funktion for at stoppe blinkingen
funktion endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Uupporter GPIO til gratis ressourcer} setTimeout (endBlink, 10000);
Komplet Node.js-kode for blinkende LED er givet i slutningen af denne vejledning. Så kopier og indsæt koden i filen led_blink.js , som vi tidligere har oprettet ved hjælp af nano- kommandoen, gem filen ved hjælp af Ctrl + x, tryk derefter på Y og tryk enter.
For at køre scriptet skal du åbne terminalen og skrive nedenstående kommando:
node blink_led.js
Du vil se, at LED-lampen vil blinke i 10 sekunder og derefter stoppe med at blinke. Tjek den komplette arbejde i videoen, der er givet i slutningen af denne vejledning.
Kredsløbsdiagram til at blinke en LED ved hjælp af Node.js
Hindbær Pi
Kom nu til den interessante del, her skal vi lave vores egen webserver, hvorfra vi kan styre GPIO af Raspberry pi ved hjælp af en webside.
Til dette skal vi først oprette en HTML-side og skrive et script til at udføre back-end opgave, dvs. at kontrollere RPi GPIO.
Trin 1: - Opret en mappe til at gemme alle filerne på et sted.
mkdir nodejs_server
Trin 2: - Inde i nodejs_server mappen gøre endnu mappe til at gemme HTML-filen.
cd nodejs_server mkdir-visninger
Trin 3: - Hvis du vil tilføje billeder til din html-side, skal du gøre en anden mappe med navnet offentlig inde i hovedmappen, dvs. i nodejs_server- mappen. I den offentlige mappe skal du oprette billedmappe og gemme alle billederne i denne mappe.
Trin 4: - Nu opretter vi HTML-side. For dette skal du gå til visningskataloget og åbne nano- teksteditor med filnavn index.ejs
Der er ikke noget fancy i manuskriptet. Det er bare en HTML-fil, der skal tændes og slukkes.
Kopier indsæt nedenstående HTML-kode i nano- teksteditor og gem den.
Velkommen til Nodejs Server
Led-status: <% = status%>Trin 5: - Nu skal vi skrive JavaScript-kode. Vi bruger nodeekspressoramme til at svare på http-anmodninger udført af brugeren.
Du kan følge linket for at lære mere om Node Express.
Åbn terminalen, og åbn nano- teksteditor med index.js- filnavn i nodejs_server- mappen, kopier og indsæt derefter nedenstående Java-scriptkode og denne fil.
var express = kræve ('express'); var app = express (); var sti = kræve ('sti'); var gpio = kræve ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('vis motor', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', funktion (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')); return res.render ('index',{status: "Led er tændt"}); }); }); app.post ('/ led / off', funktion (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, funktion () { console.log ('Server startet på havn: 3000!') })
Trin 6: - Inde i nodejs_server- biblioteket skal vi udføre følgende kommando for at installere biblioteker med node.js
npm installation
Trin 7: - Nu er din server klar til at arbejde. For at starte den lokale server skal du køre følgende kommando inde i nodejs_server- biblioteket
node index.js
du vil se en besked i terminalen om, at din server startes i den definerede port.
Trin 8: - Åbn nu din browser og åbn Raspberry Pi URL med portnummer, dvs. raspberrypi: 3000
Sørg for, at din hindbær pi og bærbare computer, hvor du åbner browseren, er forbundet med det samme netværk.
Du vil se den følgende side i browseren.
Nu skal du trykke på LED On- knappen for at tænde LED'en og LED Off- knappen for at slukke for LED'en.