- Erforderliche Materialien
- Installieren von Node.js auf Raspberry Pi
- Blinken einer LED mit Node.js.
- Node.js LED Blink-Skript und Erläuterung
- Schaltplan zum Blinken einer LED mit Node.js.
- Himbeer-Pi
In früheren Raspberry Pi-Tutorials haben wir viele verschiedene Programmiersprachen und Software zur Steuerung von Raspberry Pi verwendet, einschließlich Python, Embedded C, Flask usw. Um den Horizont eines leistungsstarken Raspberry Pi-Boards zu erweitern, werden wir heute eine sehr beliebte JavaScript-basierte Umgebung (Node) verwenden.js), um Raspberry Pi-GPIOs sowohl lokal als auch global zu steuern, indem Sie sie als Webserver einrichten. Ursprünglich wurde Node.js für Google Chrome entwickelt, später jedoch von Google als Open-Source-Version.
In diesem Tutorial steuern wir eine LED, die mit Raspberry Pi verbunden ist, mit zwei Methoden
- Zuerst schreiben wir einfach einen JavaScript-Code mit Node.js, um die LED zu blinken
- In der zweiten Methode erstellen wir eine HTML-Seite mit zwei Schaltflächen zum Ein- und Ausschalten der LED. Diese HTML-Webseite wird auf Himbeer-Pi gehostet und kann in jedem Webbrowser geöffnet werden. Hier fungiert Raspberry Pi also als Webserver
Erforderliche Materialien
- Himbeer-Pi-Board mit installiertem Raspbian
- LED
In diesem Tutorial verwende ich einen externen Monitor mit einem HDMI-Kabel, um eine Verbindung mit Raspberry Pi herzustellen. Wenn Sie keinen Monitor haben, können Sie den SSH-Client (Putty) oder den VNC-Server verwenden, um über einen Laptop oder Computer eine Verbindung zu Raspberry pi herzustellen. Wenn Sie Schwierigkeiten haben, folgen Sie unserem Leitfaden Starren mit Himbeer-Pi.
Installieren von Node.js auf Raspberry Pi
Wir werden Node.js mit den folgenden Befehlen in unserem Board installieren.
Schritt 1: - Überprüfen Sie zuerst mit diesem Befehl die Armversion Ihres Himbeer-Pi-Boards.
uname -m
In meinem Fall ist Version 7.
Schritt 2: - Laden Sie das Installationsprogramm herunter, indem Sie diesen Link in das Terminal kopieren. Vergessen Sie nicht, die Version unter dem unten angegebenen Link zu ändern.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Schritt 3: - Extrahieren Sie die Dateien mit dem folgenden Befehl
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Schritt 4: - Führen Sie abschließend diese Befehle aus, um die wichtigen Dateien auch zu lokalen Verzeichnissen hinzuzufügen.
cd node-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js ist jetzt in Ihrem Raspberry Pi installiert. Überprüfen Sie die Version des Knotens zur Bestätigung mit diesem Befehl.
Knoten-Version
Bevor wir einen Node.js-Server erstellen, werden wir zunächst sehen, wie ein Skript zum Blinken einer LED mit node.js (npm onoff-Paket) geschrieben wird.
Blinken einer LED mit Node.js.
Um den GPIO auf dem Raspberry Pi mit Node.js zu steuern, verwenden wir das Onoff-Modul.
Wir werden den npm- Paketmanager verwenden, um das On-Off-Modul mit dem folgenden Befehl zu installieren
npm install onoff
Jetzt werden wir ein Skript zum Blinken von LED schreiben. Öffnen Sie den Nano- Editor und geben Sie der Datei mit dem Befehl den Namen
nano blink_led.js
Wenn Sie ein Anfänger in Node.js und seinen Paketen sind, können Sie die Dokumentation von npm zum besseren Verständnis des Skripts verwenden.
Node.js LED Blink-Skript und Erläuterung
Deklarieren Sie zunächst die Variablen für LED, Verzögerung und GPIO. Ich verwende Raspberry Pi GPIO 4, um die LED anzuschließen.
var Gpio = require ('onoff'). Gpio; var LED = neues Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Jetzt werden wir eine Funktion erstellen, um das Blinken zu starten.
Funktion blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // Ausgang auf 1 setzen, dh LED einschalten} else {LED.writeSync (0); // Ausgang auf 0 setzen dh LED ausschalten }}
Machen Sie auf ähnliche Weise eine Funktion, um das Blinken zu stoppen
Funktion endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // GPIO nicht freigeben, um Ressourcen freizugeben} setTimeout (endBlink, 10000);
Der vollständige Node.js-Code für die blinkende LED finden Sie am Ende dieses Tutorials. Kopieren Sie den Code und fügen Sie ihn in die Datei led_blink.js ein , die wir zuvor mit dem Befehl nano erstellt haben. Speichern Sie die Datei mit Strg + x, drücken Sie Y und drücken Sie die Eingabetaste.
Öffnen Sie zum Ausführen des Skripts das Terminal und geben Sie den folgenden Befehl ein:
Knoten blink_led.js
Sie werden sehen, dass die LED 10 Sekunden lang blinkt und danach aufhört zu blinken. Überprüfen Sie die vollständige Funktionsweise im Video am Ende dieses Tutorials.
Schaltplan zum Blinken einer LED mit Node.js.
Himbeer-Pi
Kommen wir nun zu dem interessanten Teil, hier werden wir unseren eigenen Webserver erstellen, von dem aus wir den GPIO von Raspberry pi über eine Webseite steuern können.
Dazu müssen wir zuerst eine HTML-Seite erstellen und ein Skript schreiben, um eine Back-End-Aufgabe auszuführen, dh um das RPi-GPIO zu steuern.
Schritt 1: - Erstellen Sie ein Verzeichnis, in dem alle Dateien an einem Ort gespeichert werden.
mkdir nodejs_server
Schritt 2: - Im Inneren des nodejs_server Ordner zum Speichern der HTML - Datei einen weiteren Ordner machen.
cd nodejs_server mkdir Ansichten
Schritt 3: - Wenn Sie Ihrer HTML-Seite Bilder hinzufügen möchten, sollten Sie einen anderen Ordner mit dem Namen public im Hauptverzeichnis, dh im Ordner nodejs_server, öffentlich machen. Erstellen Sie im öffentlichen Ordner einen Bildordner und speichern Sie alle Bilder in diesem Ordner.
Schritt 4: - Jetzt erstellen wir eine HTML-Seite. Gehen Sie dazu in das Verzeichnis views und öffnen Sie den Nano- Texteditor mit dem Dateinamen index.ejs
Das Drehbuch enthält nichts Besonderes. Es ist nur eine HTML-Datei zum Ein- und Ausschalten.
Kopieren Sie den folgenden HTML-Code, fügen Sie ihn in den Nano- Texteditor ein und speichern Sie ihn.
Willkommen bei Nodejs Server
LED-Status: <% = Status%>Schritt 5: - Jetzt müssen wir JavaScript-Code schreiben. Wir verwenden das Node Express Framework, um auf vom Benutzer ausgeführte http-Anfragen zu antworten.
Sie können dem Link folgen, um mehr über Node Express zu erfahren.
Öffnen Sie das Terminal und öffnen Sie den Nano- Texteditor mit dem Dateinamen index.js im Ordner nodejs_server. Kopieren Sie dann den folgenden Java- Skriptcode und diese Datei und fügen Sie sie ein.
var express = require ('express'); var app = express (); var path = require ('path'); var gpio = require ('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, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', Funktion (req, res) { gpio.write (7, true, Funktion (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index',{status: "Led is On"}); }); }); app.post ('/ led / off', Funktion (req, res) { gpio.write (7, false, Funktion (err) { if (err) throw err; console.log ('Falsch an Pin geschrieben'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('Server auf Port gestartet: 3000!') })
Schritt 6: - Im Verzeichnis nodejs_server müssen wir den folgenden Befehl ausführen, um Bibliotheken von node.js zu installieren
npm installieren
Schritt 7: - Jetzt ist Ihr Server betriebsbereit. Führen Sie zum Starten des lokalen Servers den folgenden Befehl im Verzeichnis nodejs_server aus
Knoten index.js
Im Terminal wird die Meldung angezeigt, dass Ihr Server am definierten Port gestartet wurde.
Schritt 8: - Öffnen Sie nun Ihren Browser und öffnen Sie die Raspberry Pi URL mit der Portnummer dh Himbeerpi: 3000
Stellen Sie sicher, dass Ihr Himbeer-Pi und Ihr Laptop, in dem Sie den Browser öffnen, mit demselben Netzwerk verbunden sind.
Sie sehen die folgende Seite im Browser.
Drücken Sie nun die LED-Ein- Taste, um die LED einzuschalten, und die LED-Aus- Taste, um die LED auszuschalten.