- Hvad er Node.js?
- Komponenter, der kræves
- Kredsløbsdiagram
- Opsætning af Node.js Framework
- Installation af Johnny-Five-biblioteket
- Blinkende LED med Arduino og Node.js
- Kontrol af LED-lysstyrke ved hjælp af Arduino og Node.js Webserver
Vi har set adskillige eksempler på at blinke en LED ved hjælp af forskellige mikrocontrollere og forskellige programmeringssprog. I dag bruger vi en meget populær JavaScript-ramme Node.js til at styre LED'en tilsluttet Arduino Uno. Vi bruger også Node.js til at kontrollere lysstyrken på LED fra en webside ved hjælp af Arduino. Ved få tweaks og ved hjælp af ESP8266 kan dette konverteres til et IoT-projekt, hvor LED'en kan styres hvor som helst.
Hvad er Node.js?
De node.js er en udbredt JavaScript-baseret ramme baseret på Google Chromes JavaScript V8 motor og anvendt i udviklingen af I / O-intensive web applikationer såsom enkeltsidede applikationer, video streaming sites osv
Vi har tidligere lavet en informativ tutorial om Kom godt i gang med Node.js og Raspberry Pi for at styre en LED. I denne vejledning følger vi den samme tilgang, dvs. LED'en styres ved hjælp af to metoder som:
- Enkel LED blinker ved at skrive en JavaScript-kode i Node.js-rammen.
- LED-lysstyrkekontrol ved hjælp af Node.js-rammen og en webgrænseflade fra enhver browser: Arduino UNO fungerer som en webserver, og HTML-websiden hostes på en pc eller bærbar computer.
Komponenter, der kræves
Hardware:
- Arduino UNO bestyrelse
- Led
- Modstand
Software:
- Arduino IDE: Til upload af skitse til Arduino UNO Board.
- Firmata: Det er en protokol til kommunikation med forskellige mikrocontrollere fra software på en computer, smartphone osv. Firmata-firmwaren kan indlæses i ethvert mikrocontrollerkort (som Arduino, Teensy) og er i stand til at tale med enhver bærbar computer, pc eller smartphone. Firmata-biblioteket leveres med Arduino IDE, så det er ikke nødvendigt at downloade hvor som helst. Vi har lavet en tutorial om styring af Arduino med Raspberry Pi ved hjælp af pyFirmata.
- Johnny-Five: Johnny-Five er den JavaScript-baserede robot- og IoT-platform, der bruges til at skrive koder i JavaScript og bruges til at skabe en bro mellem Arduino Boards og Computer. Johnny-Five er blevet testet med en række Arduino-kompatible tavler som Arduino UNO, NANO, Promini osv. I denne vejledning skal Johnny-Five-biblioteket downloades for at kunne bruge alle dets funktioner. Installationsvejledningen forklares senere i denne vejledning.
Kredsløbsdiagram
Kredsløbsdiagram er meget grundlæggende, vi skal bare forbinde en LED med Arduino.Opsætning af Node.js Framework
Inden kodning og udvikling påbegyndes, skal Node.js downloades og opsættes. Følg enkle trin for at downloade Node.js-miljøet.
Trin 1: - Download.exe-filen af Node.js fra dens officielle hjemmeside.
Trin 2: - Kør.exe, og følg de givne instruktioner i installationsprogrammet.
Trin 3: - Genstart din computer, som det anbefales i Node.js-dokumentet og også for at bruge alle funktionerne i Node.js
Trin 4: - For at kontrollere, om noden er installeret, skal du åbne kommandoprompt og skrive Node –v
Trin 5: - Node.js-versionen vises, hvilket indikerer, at Node.js er installeret.
Installation af Johnny-Five-biblioteket
Efter download af Node.js, skal du oprette en ny mappe med navnet “LED_Control” i Dokumenter for at holde alle projektfilerne på ét sted. Hver projektfil opbevares i mappen “ LED_Control ”. Download nu Johnny-Five-biblioteket i " LED_Control " -mappen. Følg nedenstående trin for at downloade:
Trin 1: - Åbn kommandoprompt
Trin 2: - Gå til “ LED_Control ” -mappe ved at følge kommandoen ' cd '.
Trin 3: - Kør kommandoen ' npm install johnny-five'
Trin 4: - Dette installerer alle afhængigheder af Johnny-Five.
Trin 5: - Installer også nødvendige biblioteker, der bruges i denne vejledning til styring af lysstyrken på LED. Der er tre biblioteker, der bruges her:
- express:
- socket.i o: WebSockets-bibliotek
- serialpor t: Seriel portindpakning
Trin 5: - Kør nedenstående kommandoer en efter en for at installere disse tre biblioteker.
npm installer ekspres npm installationsstik.io npm installerer serieport
Som tidligere fortalt er projektet opdelt i to dele:
- For det første Arduino Blinkende LED med Node.js
- For det andet styring af LED-lysstyrke fra webgrænsefladen ved hjælp af Arduino og Node.js.
Blinkende LED med Arduino og Node.js
For at blinke LED skal Arduino være indstillet til at kommunikere med computeren.
Opsætning af Arduino UNO til blinkende LED:
For at få Arduino UNO til at acceptere kommando fra Laptop til Control LED, skal Firmata-firmwaren indlæses i Arduino UNO. For at indlæse Firmata Firmware skal du blot følge disse enkle trin:
- Tilslut Arduino UNO ved hjælp af USB-kabel
- Åbn Arduino IDE, og vælg Arduino UNO-kort (hvis du bruger et andet kort, skal du vælge det respektive kort) fra Værktøjer.
- Vælg den respektive COM-port på den tilsluttede Arduino UNO
- Find nu Firmata Sketch ved hjælp af Menu -> File -> Eksempler -> Firmata -> StandardFirmata.
- Upload "StandardFirmata" skitsen ved at gå til File -> Upload.
Dette vil indlæse Firmata Sketch på Arduino UNO, og nu er Arduino UNO klar til at acceptere enhver kommando fra computeren.
Skrivning af Node.js-program til blinkende LED:
For at skrive et Node.js-program skal du åbne en hvilken som helst teksteditor (Notepad, Notepad ++ osv.) Og indsætte den 'blink_led' kode, der er vedhæftet i slutningen af denne tutorial, og gemme den med en udvidelse af '.js' dvs. (blink_led.js) i mappen “LED_Control” oprettet før. Vi vil diskutere vigtige trin i blink_led.js-kodefilen.
Oprindeligt definerer stiften på mikrocontroller, hvor led er tilsluttet. I dette eksempel er LED'en tilsluttet Pin 5 i Arduino UNO. 'Var' i Node.js repræsenterer variabel erklæring.
var led_pin = 5;
De johnny-five modul behov, der skal medtages, og bestyrelsen behov, der skal vælges. Modulerne i Node.js er biblioteker. Funktionen ' kræve () ' får adgang til modulet.
var johnny_five = kræve ("johnny-five"); var arduino_board = ny johnny_five.Board ();
Den console.log udsagn svarer til print redegørelse, og det vil udskrive besked. Og LED-stiften er indstillet til outputtilstand, og den definerede forsinkelse gives til blink-LED.
console.log ("LED er begyndt at blinke!"); var led = ny johnny_five.Led (led_pin); led.blink (100);
Følg nu nedenstående trin for at køre programmet:
- Åbn kommandoprompt
- Find mappen "LED_Control" ved at følge kommandoen 'cd'
- Kør kommandoen 'Node led_blink.js'. Hvis det udføres med succes, vil det vise "LED er begyndt at blinke!" som vist på billedet nedenfor .
- Ledet begynder at blinke i Arduino UNO Pin 5.
- Og dette afslutter den første del af vores tutorial, dvs. Blinkende LED med Node.js
Kontrol af LED-lysstyrke ved hjælp af Arduino og Node.js Webserver
Svarende til at blinke en LED med Node.js, vil dette afsnit også have nogle dele, dvs. opsætning af Arduino UNO, opsætning af webgrænseflade og skrivning af et Node.js-program.
Opsætning af Arduino UNO til styring af lysstyrken på LED:
For at oprette Arduino UNO skal du blot uploade skitsen “ arduino_control.ino ” til Arduino UNO-kortet, og det er det. Dette opretter Arduino Board. Du kan downloade den komplette kode med HTML-filer herfra. " Arduino_control.ino" koden har følgende vigtige trin involveret.
Oprindeligt indstilles baudhastigheden til 9600.
Serial.begin (9600);
Den serielle port ser altid efter indgående byte, og byten skrives til pin 5, som er en PWM-pin.
mens (! Serial.available ()); analogWrite (5, Serial.read ());
Det er det. Dette indstiller Arduino til at fastgøre byten til PWM- pin og vil ændre lysstyrken på LED.
Opsætning af webgrænseflade:
For at kontrollere lysstyrken på LED ved hjælp af webgrænseflade er der skrevet et lille stykke HTML-kode for at have en grænseflade i browseren. For at få interface skal du følge enkle trin nedenfor:
- Opret en ny mappe med navnet "offentlig" inde i "LED_Control" -mappen oprettet før.
- Download nu "index.html" og "style.css" filerne, og flyt begge filer inde i "offentlig" mappe oprettet i første trin ovenfor. Filer kan downloades herfra.
Dette opretter en skyder på websiden for at kontrollere lysstyrken på LED ved hjælp af Node.js og Arduino.
Styring af en LED fra websiden er interessant at lære, og det kan gøres med anden mikrocontroller ved at oprette en webserver og være vært for websiden på webserveren. Tjek alle webserverrelaterede projekter her.
Skrivning af Node.js-program til styring af lysstyrken på LED:
Næste trin ville være at skrive “brightness_control.js” skitse ved hjælp af Node.js og udføre koden. Udførelsen af koden vil være lidt lig den blinkende LED med Node.js.
For at skrive et Node.js-program skal du åbne en hvilken som helst teksteditor (Notepad, Notepad ++ osv.) Og indsætte 'brightness_control' -koden, der er vedhæftet i slutningen af denne tutorial, og gemme den med en udvidelse af '.js' dvs. (brightness_control.js) i mappen “LED_Control” oprettet før. Du kan også downloade koden herfra.
I lighed med Blink Led Node.js-programmet bruger dette afsnit også moduler (bibliotek). Inkluder modulet 'ekspres', 'http' og 'seriel port'.
var express = kræve ('express'); app = express (); server = kræve ('http'). createServer (app); io = kræver ('socket.io'). lyt (server); var SerialPort = kræve ("serialport") //. SerialPort
Indstil nu COM-porten og baudrate. Bemærk, at i windows vil det altid være COM med udvidelse af nummer (COM6, COM4, COM24 osv.), Så sæt nedenunder efter behov efter '/'. Indstil også buadrate.
var serialPort = ny SerialPort ("/ COM4", {baudRate: 9600});
Start med at lytte til serveren i port 8080.
server.listen (8080);
Indstil lysstyrken oprindeligt til 0. Lås derefter lysstyrkedataene til IO med sockets-modul, som er et websocket-modul. Dataene modtages via webgrænsefladen ved hjælp af socket-protokol.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { brightness = data.value; var buf = new Buffer (1); buf.writeUInt8 (brightness, 0)); serialPort.write (buf);
Udsend nu LED-lysstyrkeværdien fra stikkontakt til LED-stift.
io.sockets.emit ('ledet', {værdi: lysstyrke}); }); socket.emit ('led', {værdi: lysstyrke}); });
Nu bare for at debugge, tilføj en udskriftserklæring i slutningen. Console.log er en udskriftserklæring i Node.js.
console.log ("Webserver startet gå til 'http: // localhost: 8080' i din browser.");
Nu skal du køre programmet ved at følge nedenstående trin:
- Åbn kommandoprompt
- Find mappen "LED_Control" ved at følge kommandoen 'cd'
- Kør kommandoen 'Node brightness_control.js'. Hvis det udføres med succes, vil det vise "Webserver startet, gå til" http: // localhost: 8080 "i din browser." lige under kommandoen .
- Gå nu til din browser og skriv "localhost: 8080" i url.
- For at ændre lysstyrken skal du bare flytte skyderen fra 0-255 værdier.
Den komplette kode og arbejdsvideo for begge sektioner er vedhæftet nedenfor. Også hvis du er i tvivl eller forslag, kan du nå os via forum eller kommentere nedenfor. Alle kodefiler kan også downloades herfra.