- Material som krävs
- Installera Node.js på Raspberry Pi
- Blinkar en lysdiod med hjälp av Node.js
- Node.js LED Blink script och förklaring
- Kretsschema för att blinka en lysdiod med hjälp av Node.js
- Raspberry Pi
I tidigare Raspberry Pi Tutorials har vi använt många olika programmeringsspråk och programvaror för att styra Raspberry Pi inklusive Python, inbäddad C, Flask etc. För att utvidga horisonten på ett kraftfullt Raspberry Pi-kort använder vi idag en mycket populär JavaScript-baserad miljö (Node.js) för att styra Raspberry Pi GPIOs lokalt såväl som globalt genom att ställa in det som webbserver. Inledningsvis utvecklades Node.js för Google Chrome men senare öppnades det av Google.
I den här handledningen kommer vi att styra en LED, ansluten till Raspberry Pi, med två metoder
- Först skriver vi helt enkelt en JavaScript-kod med hjälp av Node.js för att blinka lysdioden
- I den andra metoden skapar vi en HTML-sida med två knappar för att tända och stänga av lysdioden. Denna HTML-webbsida kommer att finnas på hallon pi och kan öppnas i vilken webbläsare som helst. Så här kommer Raspberry Pi att fungera som webserver
Material som krävs
- Hallon Pi-kort med Raspbian installerat i det
- LED
I denna handledning använder jag extern bildskärm med hjälp av HDMI-kabel för att ansluta till Raspberry Pi. Om du inte har bildskärm kan du använda SSH-klient (Putty) eller VNC-server för att ansluta till Raspberry pi med en bärbar dator eller dator. Om du stöter på några problem så följ vår Bli stirrad med Raspberry Pi-guide.
Installera Node.js på Raspberry Pi
Vi installerar Node.js i vårt kort med följande kommandon.
Steg 1: - Kontrollera först armversionen av ditt hallon pi-kort med det här kommandot.
uname -m
I mitt fall är version 7.
Steg 2: - Ladda ner installationsprogrammet genom att kopiera den här länken i terminalen. Glöm inte att ändra versionen i länken nedan.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Steg 3: - Extrahera filerna med kommandot nedan
tar -xvf nod-v4.6.1-linux-armvl.tar.gz
Steg 4: - Slutligen, kör dessa kommandon för att också lägga till viktiga filer i lokala kataloger.
cd-nod-v4.3.1-linux-armvl sudo cp -R * / usr / lokal /
Node.js är installerat nu i din Raspberry Pi. Kontrollera versionen av noden för bekräftelse med det här kommandot.
nod –version
Innan vi börjar skapa en Node.js-server ser vi först hur man skriver ett skript för att blinka en lysdiod med node.js (npm onoff-paket).
Blinkar en lysdiod med hjälp av Node.js
För att styra GPIO på Raspberry Pi med Node.js använder vi onoff-modulen.
Vi använder npm- pakethanteraren för att installera onoff-modulen med kommandot nedan
npm installera av
Nu ska vi skriva ett manus för att blinka av led. Öppna nano- editor och ge namnet till filen med kommandot
nano blink_led.js
Om du är nybörjare i Node.js och dess paket kan du dokumentera npm för bättre förståelse av skriptet.
Node.js LED Blink script och förklaring
Först förklara variablerna för led, fördröjning och GPIO. Jag använder Raspberry Pi GPIO 4 för att ansluta lysdioden.
var Gpio = kräver ('onoff'). Gpio; var LED = ny Gpio (4, 'ut'); var blinkInterval = setInterval (blinkLED, 500);
Nu ska vi göra en funktion för att starta blinkningen.
funktion blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // ställ utgången till 1 dvs sätt på på} annat {LED.writeSync (0); // ställa in utgången till 0 dvs slå av }}
Gör på samma sätt en funktion för att stoppa blinkningen
funktion endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Avportera GPIO till gratis resurser} setTimeout (endBlink, 10000);
Komplett Node.js-kod för blinkande LED ges i slutet av denna handledning. Så kopiera och klistra in koden i filen led_blink.js , som vi tidigare har skapat med nano- kommandot, spara filen med Ctrl + x och tryck sedan på Y och tryck på enter.
För att köra skriptet, öppna terminalen och skriv kommandot nedan:
nod blink_led.js
Du ser att lysdioden blinkar i 10 sekunder och därefter slutar den att blinka. Kontrollera hela arbetet i videon som ges i slutet av denna handledning.
Kretsschema för att blinka en lysdiod med hjälp av Node.js
Raspberry Pi
Kom nu till den intressanta delen, här ska vi skapa vår egen webbserver från vilken vi kan styra GPIO av Raspberry pi med hjälp av en webbsida.
För detta måste vi först skapa en HTML-sida och skriva ett skript för att utföra backend-uppgift, dvs för att kontrollera RPi GPIO.
Steg 1: - Skapa en katalog för att lagra alla filer på ett ställe.
mkdir nodejs_server
Steg 2: - Inne i nodejs_server- mappen gör du ytterligare en mapp för att spara HTML-filen.
cd nodejs_server mkdir-vyer
Steg 3: - Om du vill lägga till bilder på din html-sida bör du göra en annan mapp med namnet offentlig i huvudkatalogen, dvs. i nodjs_server- mappen. I den offentliga mappen skapar du bildmapp och lagrar alla bilder i den här mappen.
Steg 4: - Nu ska vi skapa en HTML-sida. För detta, gå till vyer katalog och öppna nano textredigerare med filnamn index.ejs
Det finns inget snyggt i manuset. Det är bara en HTML-fil för att skapa På och Av-knappen.
Kopiera och klistra in HTML-koden nedan i nano- textredigeraren och spara den.
Välkommen till Nodejs Server
Led-status: <% = status%>Steg 5: - Nu måste vi skriva JavaScript-kod. Vi använder node express-ramverk för att svara på http-förfrågningar utförda av användaren.
Du kan följa länken för att lära dig mer om Node Express.
Öppna terminalen och öppna nano- textredigeraren med index.js- filnamn i nodjs_server- mappen, kopiera och klistra sedan in Java-skriptkoden nedan och den här filen.
var express = kräver ('express'); var app = express (); var sökväg = kräver ('sökväg'); var gpio = kräver ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('visa 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: "Tryck på knappen"}); }); 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')); returnera res.render ('index',{status: "Led är 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, funktion () { console.log ('Server startad på port: 3000!') })
Steg 6: - Inne i katalogen nodejs_server måste vi utföra följande kommando för att installera bibliotek för node.js
npm installera
Steg 7: - Nu är din server redo att arbeta. Starta den lokala servern genom att köra följande kommando i nodjs_server- katalogen
node index.js
du ser ett meddelande i terminalen att din server startas vid den definierade porten.
Steg 8: - Öppna nu din webbläsare och öppna Raspberry Pi URL med portnummer, dvs raspberrypi: 3000
Se till att din hallon pi och laptop där du öppnar webbläsaren är anslutna till samma nätverk.
Följande sida visas i webbläsaren.
Tryck nu på LED- knappen för att sätta på LED-lampan och på LED- knappen för att stänga av LED-lampan.