- Was ist Node.js?
- Erforderliche Komponenten
- Schaltplan
- Einrichten von Node.js Framework
- Installation der Johnny-Five-Bibliothek
- Blinkende LED mit Arduino und Node.js.
- Steuern der LED-Helligkeit mit Arduino und Node.js Webserver
Wir haben zahlreiche Beispiele für das Blinken einer LED mit verschiedenen Mikrocontrollern und verschiedenen Programmiersprachen gesehen. Heute werden wir ein sehr beliebtes JavaScript-Framework Node.js verwenden, um die mit Arduino Uno verbundene LED zu steuern. Wir werden auch Node.js verwenden, um die Helligkeit von LED von einer Webseite mit Arduino zu steuern. Mit wenigen Handgriffen und ESP8266 kann dies in ein IoT-Projekt umgewandelt werden, in dem die LED von überall aus gesteuert werden kann.
Was ist Node.js?
Die Node.js ist ein weit verbreitetes JavaScript-basiertes Framework basiert auf der Google Chrome JavaScript V8 - Motor und angewendet bei der Entwicklung von I / O - intensive Web - Anwendungen wie Single-Page - Anwendungen, Video - Streaming - Websites usw.
Wir haben zuvor ein informatives Tutorial über Erste Schritte mit Node.js und Raspberry Pi zur Steuerung einer LED erstellt. In diesem Tutorial folgen wir dem ähnlichen Ansatz, dh die LED wird mit zwei Methoden gesteuert:
- Einfaches LED-Blinken durch Schreiben eines JavaScript-Codes in das Node.js-Framework.
- LED-Helligkeitssteuerung mit dem Node.js-Framework und einer Weboberfläche von jedem Browser aus: Das Arduino UNO fungiert als Webserver und die HTML-Webseite wird auf einem PC oder Laptop gehostet.
Erforderliche Komponenten
Hardware:
- Arduino UNO Board
- LED
- Widerstand
Software:
- Arduino IDE: Zum Hochladen einer Skizze in das Arduino UNO Board.
- Firmata: Dies ist ein Protokoll für die Kommunikation mit verschiedenen Mikrocontrollern von Software auf einem Computer, Smartphone usw. Die Firmata-Firmware kann auf jede Mikrocontroller-Karte (wie Arduino, Teensy) geladen werden und mit jedem Laptop, PC oder Smartphone kommunizieren. Die Firmata Library wird mit der Arduino IDE geliefert, sodass Sie sie nicht von überall herunterladen müssen. Wir haben ein Tutorial zur Steuerung von Arduino mit Raspberry Pi mithilfe von pyFirmata erstellt.
- Johnny-Five: Johnny-Five ist die JavaScript-basierte Robotik- und IoT-Plattform, die zum Schreiben von Codes in JavaScript und zum Herstellen einer Brücke zwischen den Arduino-Boards und dem Computer verwendet wird. Johnny-Five wurde mit einer Vielzahl von Arduino-kompatiblen Boards wie Arduino UNO, NANO, Promini usw. getestet. In diesem Tutorial muss die Johnny-Five-Bibliothek heruntergeladen werden, um alle Funktionen nutzen zu können. Die Installationsanleitung wird später in diesem Tutorial erläutert.
Schaltplan
Der Schaltplan ist sehr einfach, wir müssen nur eine LED mit Arduino verbinden.Einrichten von Node.js Framework
Vor dem Start der Codierung und Entwicklung muss Node.js heruntergeladen und eingerichtet werden. Befolgen Sie zum Herunterladen der Node.js-Umgebung einfach die einfachen Schritte.
Schritt 1: - Laden Sie die EXE-Datei von Node.js von der offiziellen Website herunter.
Schritt 2: - Führen Sie die EXE-Datei aus und befolgen Sie die Anweisungen im Installationsprogramm.
Schritt 3: - Starten Sie Ihren Computer neu, wie im Node.js-Dokument empfohlen, und nutzen Sie auch alle Funktionen von Node.js.
Schritt 4: - Um zu überprüfen, ob der Knoten installiert wurde, öffnen Sie die Eingabeaufforderung und geben Sie Node –v ein
Schritt 5: - Die Node.js-Version wird angezeigt und zeigt an, dass Node.js installiert ist.
Installation der Johnny-Five-Bibliothek
Erstellen Sie nun nach dem Herunterladen der Datei " Node.js" einen neuen Ordner mit dem Namen "LED_Control" in " Dokumente", um alle Projektdateien an einem Ort zu speichern. Jede Projektdatei wird im Ordner „ LED_Control “ gespeichert. Laden Sie nun die Johnny-Five-Bibliothek im Ordner „ LED_Control “ herunter. Führen Sie zum Herunterladen die folgenden Schritte aus:
Schritt 1: - Öffnen Sie die Eingabeaufforderung
Schritt 2: - Gehen Sie mit dem Befehl ' cd ' zum Ordner „ LED_Control “.
Schritt 3: - Führen Sie den Befehl ' npm install johnny-five' aus.
Schritt 4: - Dadurch werden alle Abhängigkeiten von Johnny-Five installiert.
Schritt 5: - Installieren Sie auch die in diesem Lernprogramm verwendeten Bibliotheken, um die Helligkeit der LED zu steuern. Hier werden drei Bibliotheken verwendet:
- Express:
- socket.i o: WebSockets-Bibliothek
- serialport t: Serial Port Wrapper
Schritt 5: - Führen Sie die folgenden Befehle nacheinander aus, um diese drei Bibliotheken zu installieren.
npm install express npm install socket.io npm install serialport
Wie bereits erwähnt, besteht das Projekt aus zwei Teilen:
- Erstens, Arduino Blinking LED mit Node.js.
- Zweitens: Steuern der LED-Helligkeit über die Weboberfläche mithilfe von Arduino und Node.js.
Blinkende LED mit Arduino und Node.js.
Um die LED zu blinken, muss der Arduino für die Kommunikation mit dem Computer eingerichtet sein.
Einrichten von Arduino UNO für blinkende LED:
Damit Arduino UNO den Befehl vom Laptop zur Steuer-LED akzeptiert, muss die Firmata-Firmware in das Arduino UNO geladen werden. Führen Sie zum Laden der Firmata-Firmware die folgenden einfachen Schritte aus:
- Schließen Sie das Arduino UNO mit einem USB-Kabel an
- Öffnen Sie die Arduino IDE und wählen Sie unter Tools die Option Arduino UNO-Karte (wenn Sie eine andere Karte verwenden, wählen Sie die entsprechende aus).
- Wählen Sie den entsprechenden COM-Port des angeschlossenen Arduino UNO aus
- Suchen Sie nun die Firmata-Skizze über Menü -> Datei -> Beispiele -> Firmata -> StandardFirmata.
- Laden Sie die Skizze „StandardFirmata“ hoch, indem Sie auf Datei -> Hochladen klicken.
Dadurch wird die Firmata-Skizze auf Arduino UNO geladen, und jetzt kann Arduino UNO jeden Befehl vom Computer annehmen.
Schreiben des Node.js-Programms zum Blinken der LED:
Um ein Node.js-Programm zu schreiben, öffnen Sie einen beliebigen Texteditor (Notepad, Notepad ++ usw.), fügen Sie den am Ende dieses Tutorials angehängten Code 'blink_led' ein und speichern Sie ihn mit der Erweiterung '.js', dh (blink_led.js). im zuvor erstellten Ordner „LED_Control“. Wir werden wichtige Schritte in der Codedatei blink_led.js diskutieren.
Definieren Sie zunächst den Pin des Mikrocontrollers, an den die LED angeschlossen ist. In diesem Beispiel ist die LED an Pin 5 von Arduino UNO angeschlossen. Das 'var' in Node.js repräsentiert die Variablendeklaration.
var led_pin = 5;
Das Johnny-Five- Modul muss enthalten sein und die Karte muss ausgewählt werden. Die Module in Node.js sind Bibliotheken. Die Funktion ' require () ' greift auf das Modul zu.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
Die Anweisung console.log ähnelt der Anweisung print und gibt eine Nachricht aus. Der LED-Pin wird auf den Ausgangsmodus gesetzt und die definierte Verzögerung wird angegeben, um die LED zu blinken.
console.log ("LED hat angefangen zu blinken!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Führen Sie nun die folgenden Schritte aus, um das Programm auszuführen:
- Öffnen Sie die Eingabeaufforderung
- Suchen Sie „LED_Control“ Ordner, indem Sie ‚cd‘ Befehl
- Führen Sie den Befehl 'Node led_blink.js' aus. Bei erfolgreicher Ausführung wird angezeigt, dass die LED zu blinken begonnen hat. wie im Bild unten gezeigt .
- Die LED beginnt im Arduino UNO Pin 5 zu blinken.
- Damit ist der erste Teil unseres Tutorials abgeschlossen, dh Blinkende LED mit Node.js.
Steuern der LED-Helligkeit mit Arduino und Node.js Webserver
Ähnlich wie beim Blinken einer LED mit Node.js enthält dieser Abschnitt auch einige Teile, z. B. Einrichten von Arduino UNO, Einrichten des Webinterfaces und Schreiben eines Node.js-Programms.
Einrichten von Arduino UNO zur Steuerung der LED-Helligkeit:
Um die Arduino UNO einzurichten, laden Sie einfach die Skizze „ arduino_control.ino “ in das Arduino UNO-Board hoch und fertig . Dadurch wird das Arduino Board eingerichtet. Den vollständigen Code mit HTML-Dateien können Sie hier herunterladen. Der Code " arduino_control.ino" enthält die folgenden wichtigen Schritte.
Anfangs ist die Baudrate auf 9600 eingestellt.
Serial.begin (9600);
Die serielle Schnittstelle sucht immer nach eingehenden Bytes und das Byte wird in Pin 5 geschrieben, der ein PWM-Pin ist.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Das ist es. Dadurch wird der Arduino so eingestellt, dass das Byte am PWM- Pin zwischengespeichert wird, und die Helligkeit der LED wird geändert.
Einrichten des Webinterfaces:
Um die Helligkeit der LED über die Weboberfläche zu steuern, wird ein kleines Stück HTML-Code geschrieben, um eine Schnittstelle im Browser zu haben. Um eine Schnittstelle zu haben, gehen Sie wie folgt vor:
- Erstellen Sie einen neuen Ordner mit dem Namen "public" im zuvor erstellten Ordner "LED_Control".
- Laden Sie nun die Dateien "index.html" und "style.css" herunter und verschieben Sie beide Dateien in den Ordner "public", der im ersten Schritt oben erstellt wurde. Dateien können hier heruntergeladen werden.
Dadurch wird auf der Webseite ein Schieberegler erstellt, mit dem die Helligkeit der LED mithilfe von Node.js und Arduino gesteuert werden kann.
Das Steuern einer LED von einer Webseite aus ist interessant zu lernen und kann mit anderen Mikrocontrollern durchgeführt werden, indem ein Webserver erstellt und die Webseite auf einem Webserver gehostet wird. Überprüfen Sie hier alle Webserver-bezogenen Projekte.
Schreiben des Node.js-Programms zur Steuerung der LED-Helligkeit:
Der nächste Schritt wäre das Schreiben der Skizze "brightness_control.js" mit Node.js und das Ausführen des Codes. Die Ausführung des Codes ähnelt dem Blinken einer LED mit Node.js.
So schreiben Sie ein Node.js Programm öffnen Sie einen beliebigen Texteditor (Notepad, Notepad ++, etc.) und fügen Sie den ‚brightness_control“ Code am Ende dieses Tutorials angebracht und speichern Sie es mit der Erweiterung ‘Js heißt (brightness_control.js) im zuvor erstellten Ordner „LED_Control“. Sie können den Code auch hier herunterladen.
Ähnlich wie beim Programm Blink Led Node.js werden in diesem Abschnitt auch Module (Bibliothek) verwendet. Fügen Sie das Modul 'Express', 'http' und 'Serielle Schnittstelle' hinzu.
var express = require ('express'); app = express (); server = require ('http'). createServer (app); io = require ('socket.io'). listen (server); var SerialPort = require ("serialport") //. SerialPort
Stellen Sie nun den COM-Port und die Baudrate ein. Beachten Sie, dass es in Windows immer COM mit der Erweiterung der Nummer (COM6, COM4, COM24 usw.) ist. Stellen Sie dies wie unten nach '/' angegeben ein. Stellen Sie auch die Buadrate ein.
var serialPort = neuer SerialPort ("/ COM4", {baudRate: 9600});
Starten Sie den Server an Port 8080.
server.listen (8080);
Stellen Sie die Helligkeit zunächst auf 0 ein. Speichern Sie dann die Helligkeitsdaten mit dem Socket-Modul, einem Websocket-Modul, an IO. Die Daten werden über das Webinterface mithilfe des Socket-Protokolls empfangen.
io.sockets.on ('Verbindung', Funktion (Socket) { Socket.on ('LED', Funktion (Daten) { Helligkeit = Datenwert; var buf = neuer Puffer (1); buf.writeUInt8 (Helligkeit, 0)); serialPort.write (buf);
Geben Sie nun den LED-Helligkeitswert aus, der von der Buchse zum LED-Pin gelangt ist.
io.sockets.emit ('led', {Wert: Helligkeit}); }); socket.emit ('led', {Wert: Helligkeit}); });
Fügen Sie zum Debuggen am Ende eine print-Anweisung hinzu. Console.log ist eine Druckanweisung in Node.js.
console.log ("Webserver gestartet, gehen Sie in Ihrem Browser zu 'http: // localhost: 8080'.");
Führen Sie nun die folgenden Schritte aus, um das Programm auszuführen:
- Öffnen Sie die Eingabeaufforderung
- Suchen Sie „LED_Control“ Ordner, indem Sie ‚cd‘ Befehl
- Führen Sie den Befehl 'Node brightness_control.js' aus. Bei erfolgreicher Ausführung wird "Webserver gestartet" in Ihrem Browser unter "http: // localhost: 8080" angezeigt. direkt unter dem Befehl .
- Gehen Sie nun zu Ihrem Browser und geben Sie "localhost: 8080" in die URL ein.
- Um die Helligkeit zu ändern, bewegen Sie den Schieberegler einfach von 0 auf 255 Werte.
Der vollständige Code und das Arbeitsvideo beider Abschnitte sind unten angefügt. Auch wenn Sie irgendwelche Zweifel oder Vorschläge haben, können Sie uns über das Forum oder den Kommentar unten erreichen. Alle Codedateien können auch von hier heruntergeladen werden.