- Què és Node.js?
- Components necessaris
- Esquema de connexions
- Configuració del marc Node.js
- Instal·lació de la biblioteca Johnny-Five
- LED parpellejant amb Arduino i Node.js
- Control de la brillantor del LED mitjançant el servidor web Arduino i Node.js
Hem vist nombrosos exemples de parpelleig d’un LED mitjançant diferents microcontroladors i diferents llenguatges de programació. Avui utilitzarem un framework JavaScript molt popular Node.js per controlar el LED connectat a Arduino Uno. També utilitzarem Node.js per controlar la brillantor del LED des d’una pàgina web mitjançant Arduino. Amb alguns ajustaments i utilitzant ESP8266, es pot convertir en un projecte IoT on el LED es pot controlar des de qualsevol lloc.
Què és Node.js?
Els NODE.JS és un marc basat en JavaScript àmpliament utilitzat en la construcció de l'motor JavaScript V8 de Google Chrome i aplicat en el desenvolupament d'E / S intensives aplicacions web com aplicacions d'una sola pàgina, pàgines de vídeo de streaming, etc.
Ja hem fet un tutorial informatiu sobre Com començar amb Node.js i Raspberry Pi per controlar un LED. En aquest tutorial, seguirem un enfocament similar, és a dir, es controlarà el LED mitjançant dos mètodes com:
- El LED simple parpelleja escrivint un codi JavaScript al marc Node.js.
- Control de la brillantor del LED mitjançant el framework Node.js i una interfície web des de qualsevol navegador: Arduino UNO actuarà com a servidor web i la pàgina web HTML s’allotjarà en un PC o portàtil.
Components necessaris
Maquinari:
- Junta Arduino UNO
- Led
- Resistència
Programari:
- ID Arduino: per penjar esbossos a la Junta UNO d'Arduino.
- Firmata: és un protocol per comunicar-se amb diferents microcontroladors des d’un programari en un ordinador, un telèfon intel·ligent, etc. La biblioteca Firmata ve amb IDE Arduino, de manera que no cal que baixeu de cap lloc. Hem fet un tutorial sobre el control d’Arduino amb Raspberry Pi mitjançant pyFirmata.
- Johnny-Five: Johnny-Five és la plataforma basada en robòtica i IoT basada en JavaScript que s’utilitza per escriure codis en JavaScript i s’utilitza per fer un pont entre les plaques Arduino i l’ordinador. Johnny-Five s'ha provat amb una varietat de plaques compatibles amb Arduino com Arduino UNO, NANO, Promini, etc. En aquest tutorial, s'ha de descarregar la biblioteca Johnny-Five per poder utilitzar totes les seves funcions. La guia d'instal·lació s'explicarà més endavant en aquest tutorial.
Esquema de connexions
El diagrama de circuits és molt bàsic, només necessitem connectar un LED amb Arduino.
Configuració del marc Node.js
Abans d’iniciar la codificació i el desenvolupament, cal descarregar i configurar Node.js. Per descarregar l'entorn Node.js, seguiu senzills passos.
Pas 1: - Descarregueu el fitxer.exe de Node.js des del seu lloc web oficial.
Pas 2: - Executeu.exe i seguiu les instruccions donades a l'instal·lador.

Pas 3: - Reinicieu l'ordinador tal com es recomana al document Node.js i també per utilitzar totes les funcions de Node.js
Pas 4: - Per comprovar si el node s'ha instal·lat, obriu el símbol del sistema i escriviu Node –v

Pas 5: - Es mostrarà la versió de Node.js indicant que Node.js està instal·lat.
Instal·lació de la biblioteca Johnny-Five
Ara després de descarregar Node.js, creeu una nova carpeta anomenada "LED_Control" a Documents per mantenir tots els fitxers del projecte en un sol lloc. Tots els fitxers del projecte es conservaran a la carpeta " LED_Control ". Ara baixeu la biblioteca Johnny-Five a la carpeta " LED_Control ". Per descarregar, seguiu els passos següents:
Pas 1: - Obriu el símbol del sistema
Pas 2: - Aneu a la carpeta " LED_Control " seguint l' ordre ' cd '.
Pas 3: - Executeu l'ordre ' npm install johnny-five'

Pas 4: - Instal·larà totes les dependències de Johnny-Five.
Pas 5: - Instal·leu també les biblioteques necessàries que s’utilitzen en aquest tutorial per controlar la brillantor del LED. Aquí s’utilitzen tres biblioteques:
- express: embolcall de servidor
- socket.i o: biblioteca de WebSockets
- serialpor t: embolcall de ports sèrie
Pas 5: - Executeu les ordres següents una per una per instal·lar aquestes tres biblioteques.
npm install express npm install socket.io npm install serialport



Com es va dir anteriorment, el projecte es divideix en dues parts:
- En primer lloc, Arduino LED intermitent amb Node.js
- En segon lloc, controlar la brillantor del LED des de la interfície web mitjançant Arduino i Node.js.
LED parpellejant amb Arduino i Node.js
Per parpellejar el LED, cal configurar l’Arduino per comunicar-se amb l’ordinador.
Configuració d'Arduino UNO per LED parpellejant:
Per tal que Arduino UNO accepti l'ordre des del portàtil fins al control LED, s'ha de carregar el firmware de Firmata a l'Arduino UNO. Per carregar el firmware de Firmata, seguiu aquests senzills passos:
- Connecteu l'Arduino UNO mitjançant un cable USB
- Obriu Arduino IDE i seleccioneu la placa Arduino UNO (si utilitzeu una altra placa, seleccioneu una respectiva) a Eines.
- Seleccioneu el port COM respectiu de Arduino UNO connectat
- Ara cerqueu el Firmata Sketch mitjançant Menú -> Fitxer -> Exemples -> Firmata -> StandardFirmata.
- Pengeu l' esbós "StandardFirmata" anant a Fitxer -> Penja.
Això carregarà el Firmata Sketch a Arduino UNO i ara Arduino UNO està preparat per acceptar qualsevol ordre de l’ordinador.
Escrivint el programa Node.js per al LED parpellejant:
Per escriure un programa Node.js, obriu qualsevol editor de text (Bloc de notes, Notepad ++, etc.) i enganxeu el codi "blink_led" adjunt al final d'aquest tutorial i deseu-lo amb una extensió de ".js", és a dir (blink_led.js) a la carpeta "LED_Control" creada abans. Analitzarem els passos importants del fitxer de codi blink_led.js.
Definiu inicialment el Pin del microcontrolador on està connectat el led. En aquest exemple, el LED està connectat al pin 5 d'Arduino UNO. El 'var' a Node.js representa una declaració de variable.
var led_pin = 5;
Els johnny-cinc mòduls de necessitats que s'han d'incloure i les necessitats de taula per a ser seleccionats. Els mòduls de Node.js són biblioteques. La funció ' require () ' accedirà al mòdul.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
La declaració console.log és similar a la declaració d’impressió i imprimirà el missatge. I el pin LED està configurat en mode de sortida i el retard definit es dóna al led parpellejant.
console.log ("El LED ha començat a parpellejar!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Ara per executar el programa, seguiu els passos següents:
- Obriu el símbol del sistema
- Cerqueu la carpeta "LED_Control" seguint l' ordre 'cd'
- Executeu l' ordre 'Node led_blink.js'. Si s'executa correctament, es mostrarà "El LED ha començat a parpellejar". tal com es mostra a la imatge següent .

- El led començarà a parpellejar a l’arduino UNO Pin 5.
- I això acaba la primera part del nostre tutorial, és a dir, LED intermitent amb Node.js
Control de la brillantor del LED mitjançant el servidor web Arduino i Node.js
De manera similar a Parpellejar un LED amb Node.js, aquesta secció també tindrà algunes parts, és a dir, configurar Arduino UNO, configurar la interfície web i escriure un programa Node.js.
Configuració d'Arduino UNO per controlar la brillantor del LED:
Per configurar l'Arduino UNO, simplement pengeu l'esbós " arduino_control.ino " a la placa Arduino UNO i ja està. Això configurarà la placa Arduino. Podeu descarregar el codi complet amb fitxers HTML des d’aquí. El codi " arduino_control.ino" té els passos importants següents.
Inicialment, la velocitat en bauds s'estableix en 9600.
Serial.begin (9600);
El port sèrie sempre busca el byte entrant i el byte s’escriu al pin 5, que és un pin PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Això és. Això configurarà l'Arduino per fixar el byte al pin PWM i canviarà la brillantor del LED.
Configuració de la interfície web:
Per controlar la brillantor del led mitjançant la interfície web, s’escriu un petit fragment de codi HTML per tenir una interfície al navegador. Per tenir una interfície, seguiu els passos següents:
- Creeu una carpeta nova anomenada "pública" dins de la carpeta "LED_Control" creada abans.

- Ara baixeu els fitxers "index.html" i "style.css" i moveu els dos fitxers a la carpeta "pública" creada al primer pas anterior. Els fitxers es poden descarregar des d’aquí.

Això crearà un control lliscant a la pàgina web per controlar la brillantor del LED mitjançant Node.js i Arduino.

El control d’un LED des d’una pàgina web és interessant d’aprendre i es pot fer amb altres microcontroladors creant un servidor web i allotjant la pàgina web al servidor web. Consulteu aquí tots els projectes relacionats amb el servidor web.
Escrivint el programa Node.js per controlar la brillantor del LED:
El següent pas seria escriure l' esbós "brightness_control.js" mitjançant Node.js i executar el codi. L'execució del codi serà una mica similar al LED parpellejant amb Node.js.
Per escriure un programa Node.js, obriu qualsevol editor de text (Bloc de notes, Notepad ++, etc.) i enganxeu el codi "brightness_control" adjunt al final d'aquest tutorial i deseu-lo amb una extensió de ".js", és a dir (brightness_control.js) a la carpeta "LED_Control" creada abans. També podeu descarregar el codi des d’aquí.
De manera similar al programa Blink Led Node.js, aquesta secció també utilitzarà mòduls (biblioteca). Incloeu els mòduls "express", "http" i "port sèrie".
var express = require ('express'); app = express (); servidor = require ('http'). createServer (app); io = require ('socket.io'). escoltar (servidor); var SerialPort = require ("serialport") //. SerialPort
Ara configureu el port COM i la velocitat de transmissió. Tingueu en compte que a Windows, sempre serà COM amb l'extensió del número (COM6, COM4, COM24, etc.), així que es defineix a continuació, segons es requereixi després de '/'. També estableix buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Comenceu a escoltar el servidor al port 8080.
server.listen (8080);
Estableix la brillantor a 0 inicialment. A continuació, fixeu les dades de brillantor a IO amb el mòdul de sockets, que és un mòdul de socket web. Les dades es rebran mitjançant la interfície web mitjançant un protocol de sòcol.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { luminositat = data.value; var buf = new Buffer (1); buf.writeUInt8 (brillantor, 0); serialPort.write (buf);
Ara emetreu el valor de brillantor del LED obtingut del sòcol al pin LED.
io.sockets.emit ('led', {valor: brillantor}); }); socket.emit ('led', {valor: brillantor}); });
Ara només per depurar, afegiu una declaració d'impressió al final. Console.log és una declaració d'impressió a Node.js.
console.log ("Inici del servidor web, aneu a 'http: // localhost: 8080' al navegador.");
Ara cal executar el programa seguint els passos següents:
- Obriu el símbol del sistema
- Cerqueu la carpeta "LED_Control" seguint l' ordre 'cd'
- Executeu l' ordre 'Node brightness_control.js'. Si s'executa correctament, es mostrarà "Inici del servidor web, aneu a" http: // localhost: 8080 "al navegador". just a sota de l'ordre .

- Ara aneu al navegador i escriviu "localhost: 8080" a l'URL.
- Per canviar la brillantor, només cal moure el control lliscant dels valors de 0-255.

A continuació s’adjunta el codi complet i el vídeo de treball d’ambdues seccions. A més, si teniu algun dubte o suggeriment, podeu contactar amb nosaltres a través del fòrum o el comentari següent. També es poden descarregar tots els fitxers de codi des d’aquí.
