- Hva er Node.js?
- Komponenter kreves
- Kretsdiagram
- Sette opp Node.js Framework
- Installere Johnny-Five Library
- Blinkende LED med Arduino og Node.js
- Kontrollerer LED-lysstyrke ved hjelp av Arduino og Node.js Webserver
Vi har sett mange eksempler på å blinke en LED ved hjelp av forskjellige mikrokontrollere og forskjellige programmeringsspråk. I dag vil vi bruke et veldig populært JavaScript-rammeverk Node.js for å kontrollere LED-en som er koblet til Arduino Uno. Vi vil også bruke Node.js til å kontrollere lysstyrken på LED fra en webside ved hjelp av Arduino. Med noen få justeringer og ved hjelp av ESP8266 kan dette konverteres til et IoT-prosjekt der LED kan styres hvor som helst.
Hva er Node.js?
De node.js er en mye brukt Javascript-basert rammeverk bygget på Google Chrome Java V8 motor og brukes i utviklingen av I / O-intensive web-applikasjoner som én side applikasjoner, video streaming nettsteder etc.
Vi har gjort en informativ veiledning tidligere om Komme i gang med Node.js og Raspberry Pi for å kontrollere en LED. I denne opplæringen vil vi følge den samme tilnærmingen, dvs. at LED-en vil bli styrt ved hjelp av to metoder som:
- Enkel LED blinker ved å skrive en JavaScript-kode i Node.js-rammeverket.
- LED-lysstyrkekontroll ved hjelp av Node.js-rammeverk og et webgrensesnitt fra hvilken som helst nettleser: Arduino UNO vil fungere som en webserver og HTML-nettside vil være vert på en PC eller bærbar PC.
Komponenter kreves
Maskinvare:
- Arduino UNO-styret
- Ledet
- Motstand
Programvare:
- Arduino IDE: For å laste opp skisse til Arduino UNO Board.
- Firmata: Det er en protokoll for å kommunisere med forskjellige mikrokontrollere fra programvare på en datamaskin, smarttelefon osv. Firmata-firmware kan lastes inn i et hvilket som helst mikrokontrollerkort (som Arduino, Teensy) og kan snakke med hvilken som helst bærbar PC, PC eller smarttelefon. Firmata Library leveres med Arduino IDE, så du trenger ikke å laste ned hvor som helst. Vi har gjort en opplæring om å kontrollere Arduino med Raspberry Pi ved hjelp av pyFirmata.
- Johnny-Five: Johnny-Five er den JavaScript-baserte roboten og IoT-plattformen som brukes til å skrive koder i JavaScript og brukes til å lage en bro mellom Arduino Boards og Computer. Johnny-Five er testet med en rekke Arduino-kompatible tavler som Arduino UNO, NANO, Promini, etc. I denne opplæringen må Johnny-Five-biblioteket lastes ned for å kunne bruke alle funksjonene. Installasjonsveiledningen vil bli forklart senere i denne veiledningen.
Kretsdiagram
Kretsskjema er veldig grunnleggende, vi trenger bare å koble en LED til Arduino.Sette opp Node.js Framework
Før du starter kodingen og utviklingen, må Node.js lastes ned og settes opp. For å laste ned Node.js-miljøet, følg bare enkle trinn.
Trinn 1: - Last ned.exe-filen av Node.js fra den offisielle nettsiden.
Trinn 2: - Kjør.exe og følg instruksjonene i installasjonsprogrammet.
Trinn 3: - Start datamaskinen på nytt slik det er anbefalt i Node.js-dokumentet og også å bruke alle funksjonene i Node.js
Trinn 4: - For å sjekke om noden er installert, åpner du ledeteksten og skriver Node –v
Trinn 5: - Node.js-versjonen vises, og indikerer at Node.js er installert.
Installere Johnny-Five Library
Nå etter å ha lastet ned Node.js, oppretter du en ny mappe med navnet “LED_Control” i Dokumenter for å holde alle prosjektfilene på ett sted. Hver prosjektfil blir lagret i “ LED_Control ” -mappen. Last ned Johnny-Five-biblioteket i " LED_Control " -mappen. Følg trinnene nedenfor for å laste ned:
Trinn 1: - Åpne ledeteksten
Trinn 2: - Gå til “ LED_Control ” -mappen ved å følge kommandoen ' cd '.
Trinn 3: - Kjør kommandoen ' npm install johnny-five'
Trinn 4: - Dette vil installere alle avhengigheter av Johnny-Five.
Trinn 5: - Installer også nødvendige biblioteker som brukes i denne opplæringen for å kontrollere lysstyrken på LED. Det er tre biblioteker som brukes her:
- express:
- socket.i o: WebSockets-bibliotek
- serialpor t: Seriell portinnpakning
Trinn 5: - Kjør kommandoene nedenfor en og en for å installere disse tre bibliotekene.
npm install express npm install socket.io npm installer serialport
Som tidligere fortalt er prosjektet delt i to deler:
- For det første Arduino Blinking LED med Node.js
- For det andre styrer LED-lysstyrke fra webgrensesnitt ved hjelp av Arduino og Node.js.
Blinkende LED med Arduino og Node.js
For å blinke LED, må Arduino settes opp for å kommunisere med datamaskinen.
Sette opp Arduino UNO for blinkende LED:
For å få Arduino UNO til å godta kommandoen fra Laptop til Control LED, må Firmata firmware lastes inn i Arduino UNO. For å laste Firmata Firmware, følg bare disse enkle trinnene:
- Koble Arduino UNO ved hjelp av USB-kabel
- Åpne Arduino IDE og velg Arduino UNO-kort (hvis du bruker et annet kort, velg deretter et) fra Verktøy.
- Velg Respective COM-port for tilkoblet Arduino UNO
- Finn nå Firmata Sketch ved hjelp av Menu -> File -> Eksempler -> Firmata -> StandardFirmata.
- Last opp "StandardFirmata" -skissen ved å gå til Fil -> Last opp.
Dette vil laste Firmata Sketch på Arduino UNO, og nå er Arduino UNO klar til å godta enhver kommando fra datamaskinen.
Skrive Node.js-program for blinkende LED:
For å skrive et Node.js-program, åpne hvilken som helst tekstredigerer (Notisblokk, Notisblokk ++, etc.) og lim inn 'blink_led' -koden som er vedlagt på slutten av denne opplæringen, og lagre den med utvidelsen '.js' dvs. (blink_led.js) i mappen "LED_Control" opprettet før. Vi vil diskutere viktige trinn i blink_led.js-kodefilen.
Opprinnelig definere pin av mikrokontroller der led er koblet til. I dette eksemplet er LED-en koblet til Pin 5 i Arduino UNO. 'Var' i Node.js representerer variabelerklæring.
var led_pin = 5;
De Johnny-fem modul behov som skal inkluderes og styret behov for å bli valgt. Modulene i Node.js er biblioteker. Funksjonen ' krever () ' får tilgang til modulen.
var johnny_five = krever ("johnny-five"); var arduino_board = new johnny_five.Board ();
Den console.log uttalelse ligner på print uttalelse, og det vil skrive meldingen. Og LED-pinnen er satt til utgangsmodus, og den definerte forsinkelsen blir gitt for å blinke.
console.log ("LED har begynt å blinke!"); var ledet = new johnny_five.Led (led_pin); ledet.blink (100);
Følg trinnene nedenfor for å kjøre programmet:
- Åpne ledeteksten
- Finn "LED_Control" -mappen ved å følge kommandoen 'cd'
- Kjør kommandoen 'Node led_blink.js'. Hvis det er utført vellykket, vil det vise "LED har begynt å blinke!" som vist på bildet nedenfor .
- LED-lampen begynner å blinke i Arduino UNO Pin 5.
- Og dette fullfører den første delen av opplæringen, dvs. Blinking LED med Node.js
Kontrollerer LED-lysstyrke ved hjelp av Arduino og Node.js Webserver
I likhet med å blinke en LED med Node.js, vil denne delen også ha noen deler, dvs. konfigurere Arduino UNO, sette opp webgrensesnitt og skrive et Node.js-program.
Sette opp Arduino UNO for å kontrollere lysstyrken på LED:
For å sette opp Arduino UNO, er det bare å laste opp skissen “ arduino_control.ino ” i Arduino UNO-bord, og det er det. Dette vil sette opp Arduino Board. Du kan laste ned hele koden med HTML-filer herfra. " Arduino_control.ino" -koden har følgende viktige trinn involvert.
I utgangspunktet er overføringshastigheten satt til 9600.
Serial.begin (9600);
Den serielle porten ser alltid etter innkommende byte, og byten skrives til Pin 5, som er en PWM-pin.
mens (! Serial.available ()); analogWrite (5, Serial.read ());
Det er det. Dette vil sette Arduino til å låse byten til PWM- pin og vil endre lysstyrken på LED.
Sette opp webgrensesnitt:
For å kontrollere lysstyrken på LED ved hjelp av webgrensesnitt, er det skrevet et lite stykke HTML-kode for å ha et grensesnitt i nettleseren. For å ha grensesnitt, følg enkle trinn nedenfor:
- Opprett en ny mappe med navnet “offentlig” inne i “LED_Control” -mappen som ble opprettet før.
- Last ned filene "index.html" og "style.css" og flytt begge filene i "offentlig" -mappen som ble opprettet i første trinn ovenfor. Filer kan lastes ned herfra.
Dette vil skape en glidebryter på websiden for å kontrollere lysstyrken på LED ved hjelp av Node.js og Arduino.
Det er interessant å lære å kontrollere en LED fra nettsiden, og det kan gjøres med annen mikrokontroller ved å opprette en webserver og være vert for websiden på webserveren. Sjekk alle webserverrelaterte prosjekter her.
Skrive Node.js-program for å kontrollere lysstyrken på LED:
Neste trinn vil være å skrive "brightness_control.js" skissen ved hjelp av Node.js og utføre koden. Utførelsen av koden vil være litt lik Blinking an LED med Node.js.
For å skrive et Node.js-program, åpne en hvilken som helst tekstredigerer (Notisblokk, Notisblokk ++, etc.) og lim inn 'brightness_control' -koden som er vedlagt på slutten av denne veiledningen, og lagre den med en utvidelse av '.js' dvs. (brightness_control.js) i mappen "LED_Control" opprettet før. Du kan også laste ned koden herfra.
I likhet med programmet Blink Led Node.js, vil denne delen også bruke moduler (bibliotek). Inkluder 'express', 'http' og 'serial port' modulen.
var express = krever ('express'); app = express (); server = krever ('http'). createServer (app); io = krever ('socket.io'). lytt (server); var SerialPort = krever ("serialport") //. SerialPort
Still nå COM-porten og baudrate. Merk at i windows vil det alltid være COM med utvidelse av nummer (COM6, COM4, COM24 osv.), Så sett nedenfor etter behov etter '/'. Still også buadrate.
var serialPort = ny SerialPort ("/ COM4", {baudRate: 9600});
Begynn å lytte til serveren ved port 8080.
server.listen (8080);
Still inn lysstyrken til 0 i utgangspunktet. Lås deretter lysstyrkedataene til IO med sockets module, som er en websocket-modul. Dataene vil mottas av webgrensesnittet ved hjelp av socket-protokoll.
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);
Nå avgir LED-lysstyrkeverdien fra stikkontakt til LED-stift.
io.sockets.emit ('ledet', {verdi: lysstyrke}); }); socket.emit ('ledet', {verdi: lysstyrke}); });
Bare for å feilsøke, legg til en utskrift på slutten. Console.log er en utskrift i Node.js.
console.log ("Web Server startet, gå til 'http: // localhost: 8080' i nettleseren din.");
Nå for å kjøre programmet ved å følge trinnene nedenfor:
- Åpne ledeteksten
- Finn "LED_Control" -mappen ved å følge kommandoen 'cd'
- Kjør kommandoen 'Node brightness_control.js'. Hvis vellykket utført, vil det vise "Web Server Started go to" http: // localhost: 8080 "i nettleseren din." rett under kommandoen .
- Gå nå til nettleseren din og skriv “localhost: 8080” i url.
- For å endre lysstyrken, flytt bare glidebryteren fra 0-255 verdier.
Den komplette koden og arbeidsvideoen til begge seksjonene er vedlagt nedenfor. Også hvis du er i tvil eller forslag, kan du nå oss via forum eller kommentere nedenfor. Alle kodefilene kan også lastes ned herfra.