- Nødvendig materiale
- Installere Node.js på Raspberry Pi
- Blinker en LED ved hjelp av Node.js
- Node.js LED Blink-skript og forklaring
- Kretsdiagram for å blinke en LED ved hjelp av Node.js
- Bringebær Pi
I tidligere Raspberry Pi Tutorials har vi brukt mange forskjellige programmeringsspråk og programvare for å kontrollere Raspberry Pi inkludert Python, innebygd C, Flask etc. For å utvide horisonten til et kraftig Raspberry Pi-kort, vil vi i dag bruke et veldig populært JavaScript-basert miljø (Node.js) for å kontrollere Raspberry Pi GPIOs lokalt så vel som globalt ved å konfigurere det som webserver. I utgangspunktet ble Node.js utviklet for Google Chrome, men senere ble det åpen fra Google.
I denne opplæringen vil vi kontrollere en LED, koblet til Raspberry Pi, ved hjelp av to metoder
- Først vil vi ganske enkelt skrive en JavaScript-kode ved hjelp av Node.js for å blinke lysdioden
- I den andre metoden vil vi lage en HTML-side med to knapper for å slå på og av LED-lampen. Denne HTML-websiden vil være vert på bringebær-pi og kan åpnes i hvilken som helst nettleser. Så her vil Raspberry Pi fungere som webserver
Nødvendig materiale
- Bringebær pi bord med Raspbian installert i det
- LED
I denne opplæringen bruker jeg ekstern skjerm ved hjelp av HDMI-kabel for å koble til Raspberry Pi. Hvis du ikke har skjerm, kan du bruke SSH-klient (Putty) eller VNC-server for å koble til Raspberry pi ved hjelp av bærbar PC eller datamaskin. Hvis du opplever problemer, følg vår Bli stirret med Raspberry Pi Guide.
Installere Node.js på Raspberry Pi
Vi installerer Node.js i styret vårt ved hjelp av følgende kommandoer.
Trinn 1: - Kontroller først armversjonen av bringebær-pi-kortet ditt ved hjelp av denne kommandoen.
uname -m
I mitt tilfelle er versjonen 7.
Trinn 2: - Last ned installasjonsprogrammet ved å kopiere denne lenken i terminalen. Ikke glem å endre versjonen i lenken nedenfor.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Trinn 3: - Pakk ut filene ved å bruke kommandoen nedenfor
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Trinn 4: - Til slutt, utfør disse kommandoene for å legge til viktige filer i lokale kataloger.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js er installert nå i din Raspberry Pi. Sjekk versjonen av noden for bekreftelse ved hjelp av denne kommandoen.
node –versjon
Før vi skal lage en Node.js-server, vil vi først se hvordan vi skriver et skript for å blinke en LED ved hjelp av node.js (npm onoff-pakke).
Blinker en LED ved hjelp av Node.js
For å kontrollere GPIO på Raspberry Pi ved hjelp av Node.js, bruker vi onoff-modul.
Vi vil bruke npm pakkebehandling for å installere onoff-modul ved å bruke kommandoen nedenfor
npm installere av
Nå skal vi skrive et skript for å blinke av led. Åpne nano editor og gi navnet til filen ved hjelp av kommandoen
nano blink_led.js
Hvis du er nybegynner i Node.js, og det er pakker, kan du dokumentere npm for bedre forståelse av skriptet.
Node.js LED Blink-skript og forklaring
Først, erklær variablene for led, forsinkelse og GPIO. Jeg bruker Raspberry Pi GPIO 4 for å koble til LED-en.
var Gpio = krever ('onoff'). Gpio; var LED = ny Gpio (4, 'ut'); var blinkInterval = setInterval (blinkLED, 500);
Nå skal vi lage en funksjon for å starte blinkingen.
funksjon blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // sett utgang til 1 dvs. slå på} ellers {LED.writeSync (0); // sett utgang til 0 dvs. slå av }}
Tilsvarende gjør en funksjon for å stoppe blinkingen
funksjon endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Uporter GPIO til gratis ressurser} setTimeout (endBlink, 10000);
Komplett Node.js-kode for blinkende LED er gitt på slutten av denne opplæringen. Så kopier og lim inn koden i filen led_blink.js , som vi har opprettet tidligere ved hjelp av nano- kommando, lagre filen ved hjelp av Ctrl + x, trykk deretter Y og trykk enter.
For å kjøre skriptet, åpne terminalen og skriv kommandoen nedenfor:
node blink_led.js
Du vil se at LED-lampen vil blinke i 10 sekunder og deretter slutte å blinke. Sjekk fullstendig arbeid i videoen gitt i slutten av denne opplæringen.
Kretsdiagram for å blinke en LED ved hjelp av Node.js
Bringebær Pi
Nå, kom til den interessante delen, her skal vi lage vår egen webserver som vi kan kontrollere GPIO fra Raspberry pi ved hjelp av en webside.
For dette må vi først lage en HTML-side og skrive et skript for å utføre back-end-oppgave, dvs. for å kontrollere RPi GPIO.
Trinn 1: - Lag en katalog for å lagre alle filene på ett sted.
mkdir nodejs_server
Trinn 2: - I mappen nodejs_server lager du en mappe til for å lagre HTML-filen.
cd nodejs_server mkdir-visninger
Trinn 3: - Hvis du vil legge til bilder på html-siden din, bør du lage en annen mappe som heter offentlig i hovedkatalogen, dvs. i nodejs_server- mappen. Lag den offentlige mappen og lagre alle bildene i denne mappen.
Trinn 4: - Nå skal vi lage HTML-side. For dette, gå til visningskatalogen og åpne nano teksteditor med filnavn index.ejs
Det er ikke noe fancy i manuset. Det er bare en HTML-fil for å lage På og Av-knappen.
Kopier og lim inn HTML-koden nedenfor i nano- teksteditor og lagre den.
Velkommen til Nodejs Server
Led-status: <% = status%>Trinn 5: - Nå må vi skrive JavaScript-kode. Vi bruker node express framework for å svare på http forespørsler utført av brukeren.
Du kan følge lenken for å lære mer om Node Express.
Åpne terminalen og åpne nano- teksteditor med index.js- filnavn i nodejs_server- mappen, kopier og lim deretter inn Java-skriptkoden nedenfor og denne filen.
var express = krever ('express'); var app = express (); var sti = krever ('sti'); var gpio = krever ('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 ('/', 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')); return res.render ('index',{status: "Led er på"}); }); }); 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 ('Server startet på port: 3000!') })
Trinn 6: - Inne i nodejs_server- katalogen må vi utføre følgende kommando for å installere biblioteker til node.js
npm installere
Trinn 7: - Nå er serveren din klar til å fungere. For å starte den lokale serveren, kjør følgende kommando i nodejs_server- katalogen
node index.js
du vil se en melding i terminalen om at serveren din startes ved den definerte porten.
Trinn 8: - Åpne nå nettleseren din og åpne Raspberry Pi URL med portnummer, dvs. raspberrypi: 3000
Forsikre deg om at bringebær-pi og bærbar PC der du åpner nettleseren, er koblet til det samme nettverket.
Du vil se følgende side i nettleseren.
Trykk nå på LED- knappen for å slå på LED-en og på LED- knappen for å slå av LED-en.