- ¿Qué es Node.js?
- Componentes requeridos
- Diagrama de circuito
- Configurar el marco de Node.js
- Instalación de la biblioteca Johnny-Five
- LED parpadeante con Arduino y Node.js
- Controlar el brillo del LED usando Arduino y el servidor web Node.js
Hemos visto numerosos ejemplos de parpadeo de un LED utilizando diferentes microcontroladores y diferentes lenguajes de programación. Hoy, utilizaremos un marco de JavaScript muy popular Node.js para controlar el LED conectado a Arduino Uno. También usaremos Node.js para controlar el brillo del LED desde una página web usando Arduino. Con unos pocos ajustes y utilizando ESP8266, esto se puede convertir en un proyecto de IoT donde el LED se puede controlar desde cualquier lugar.
¿Qué es Node.js?
Los Node.js es un marco basado en JavaScript ampliamente utilizado en la construcción del motor JavaScript V8 de Google Chrome y aplicado en el desarrollo de E / S intensivas aplicaciones web como aplicaciones de una sola página, páginas de vídeo de streaming, etc.
Anteriormente, hicimos un tutorial informativo sobre Cómo comenzar con Node.js y Raspberry Pi para controlar un LED. En este tutorial, seguiremos un enfoque similar, es decir, el LED se controlará mediante dos métodos como:
- Parpadeo simple del LED escribiendo un código JavaScript en el marco de Node.js.
- Control de brillo de LED utilizando el marco Node.js y una interfaz web desde cualquier navegador: Arduino UNO actuará como un servidor web y la página web HTML se alojará en una PC o portátil.
Componentes requeridos
Hardware:
- Placa Arduino UNO
- LED
- Resistor
Software:
- Arduino IDE: para cargar bocetos en la placa Arduino UNO.
- Firmata: Es un protocolo para comunicarse con diferentes microcontroladores desde software en una computadora, smartphone, etc. El firmware Firmata se puede cargar en cualquier placa de microcontroladores (como Arduino, Teensy) y es capaz de hablar con cualquier portátil, PC o smartphone. Firmata Library viene con Arduino IDE, por lo que no es necesario descargar desde ningún lugar. Hemos realizado un tutorial sobre cómo controlar Arduino con Raspberry Pi usando pyFirmata.
- Johnny-Five: Johnny-Five es la plataforma de IoT y robótica basada en JavaScript que se utiliza para escribir códigos en JavaScript y se utiliza para hacer un puente entre las placas Arduino y la computadora. Johnny-Five ha sido probado con una variedad de placas compatibles con Arduino como Arduino UNO, NANO, Promini, etc. En este tutorial, la biblioteca Johnny-Five debe descargarse para poder utilizar todas sus funciones. La guía de instalación se explicará más adelante en este tutorial.
Diagrama de circuito
El diagrama de circuito es muy básico, solo necesitamos conectar un LED con Arduino.Configurar el marco de Node.js
Antes de comenzar la codificación y el desarrollo, se debe descargar y configurar Node.js. Para descargar el entorno de Node.js, siga unos sencillos pasos.
Paso 1: - Descargue el archivo.exe de Node.js de su sitio web oficial.
Paso 2: - Ejecute el.exe y siga las instrucciones dadas en el instalador.
Paso 3: - Reinicie su computadora como se recomienda en el Documento Node.js y también para usar todas las funciones de Node.js
Paso 4: - Para verificar si el nodo se ha instalado, abra el símbolo del sistema y escriba Node –v
Paso 5: - Se mostrará la versión de Node.js indicando que Node.js está instalado.
Instalación de la biblioteca Johnny-Five
Ahora, después de descargar Node.js, cree una nueva carpeta llamada "LED_Control" en Documentos para mantener todos los archivos del proyecto en un solo lugar. Cada archivo de proyecto se guardará en la carpeta “ LED_Control ”. Ahora descargue la biblioteca Johnny-Five en la carpeta " LED_Control ". Para descargar, siga los pasos a continuación:
Paso 1: - Abra el símbolo del sistema
Paso 2: - Vaya a la carpeta “ LED_Control ” siguiendo el comando ' cd '.
Paso 3: - Ejecute el comando ' npm install johnny-five'
Paso 4: - Esto instalará todas las dependencias de Johnny-Five.
Paso 5: - También instale las bibliotecas necesarias que se utilizan en este tutorial para controlar el brillo del LED. Aquí se utilizan tres bibliotecas:
- express: contenedor del servidor
- socket.i o: biblioteca WebSockets
- serialpor t: envoltorio de puerto serie
Paso 5: - Ejecute los siguientes comandos uno por uno para instalar estas tres bibliotecas.
npm instalar express npm instalar socket.io npm instalar puerto serie
Como se dijo anteriormente, el proyecto se divide en dos partes:
- En primer lugar, LED parpadeante de Arduino con Node.js
- En segundo lugar, controlar el brillo del LED desde la interfaz web usando Arduino y Node.js.
LED parpadeante con Arduino y Node.js
Para que el LED parpadee, el Arduino debe estar configurado para comunicarse con la computadora.
Configuración de Arduino UNO para LED parpadeante:
Para que Arduino UNO acepte el comando de la computadora portátil al LED de control, el firmware Firmata debe cargarse en Arduino UNO. Para cargar el Firmware de Firmata, simplemente siga estos sencillos pasos:
- Conecte el Arduino UNO con un cable USB
- Abra Arduino IDE y seleccione la placa Arduino UNO (si usa otra placa, seleccione la respectiva) en Herramientas.
- Seleccione el puerto COM respectivo del Arduino UNO conectado
- Ahora busque el bosquejo de Firmata usando Menú -> Archivo -> Ejemplos -> Firmata -> StandardFirmata.
- Cargue el boceto "StandardFirmata" yendo a Archivo -> Cargar.
Esto cargará Firmata Sketch en Arduino UNO y ahora Arduino UNO está listo para aceptar cualquier comando de la computadora.
Escribiendo el programa Node.js para LED parpadeante:
Para escribir un programa Node.js, abra cualquier editor de texto (Notepad, Notepad ++, etc.) y pegue el código 'blink_led' adjunto al final de este tutorial y guárdelo con una extensión de '.js' es decir (blink_led.js) en la carpeta “LED_Control” creada anteriormente. Discutiremos los pasos importantes en el archivo de código blink_led.js.
Defina inicialmente el Pin del microcontrolador donde está conectado el led. En este ejemplo, el LED está conectado al Pin 5 de Arduino UNO. La 'var' en Node.js representa la declaración de variable.
var led_pin = 5;
Es necesario incluir el módulo johnny-five y seleccionar la placa. Los módulos en Node.js son bibliotecas. La función ' require () ' accederá al módulo.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
La declaración console.log es similar a la declaración print e imprimirá el mensaje. Y el pin LED se establece en modo de salida y el retardo definido se da para parpadear LED.
console.log ("¡El LED ha comenzado a parpadear!"); var led = new johnny_five.Led (led_pin); parpadeo led (100);
Ahora para ejecutar el programa, siga los pasos a continuación:
- Abrir símbolo del sistema
- Busque la carpeta "LED_Control" siguiendo el comando 'cd'
- Ejecute el comando 'Node led_blink.js'. Si se ejecuta correctamente, mostrará "¡El LED ha comenzado a parpadear!" como se muestra en la imagen de abajo .
- El led comenzará a parpadear en el Pin 5 de Arduino UNO.
- Y esto termina la primera parte de nuestro tutorial, es decir, LED parpadeante con Node.js
Controlar el brillo del LED usando Arduino y el servidor web Node.js
Similar a Hacer parpadear un LED con Node.js, esta sección también tendrá algunas partes, es decir, configurar Arduino UNO, configurar la interfaz web y escribir un programa Node.js.
Configuración de Arduino UNO para controlar el brillo del LED:
Para configurar Arduino UNO, simplemente cargue el boceto " arduino_control.ino " en la placa Arduino UNO y listo . Esto configurará la placa Arduino. Puede descargar el código completo con archivos HTML desde aquí. El código " arduino_control.ino" tiene los siguientes pasos importantes involucrados.
Inicialmente, la velocidad en baudios se establece en 9600.
Serial.begin (9600);
El puerto serie siempre busca un byte entrante y el byte se escribe en el pin 5, que es un pin PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Eso es. Esto configurará el Arduino para enganchar el byte al pin PWM y cambiará el brillo del LED.
Configuración de la interfaz web:
Para controlar el brillo del LED mediante la interfaz web, se escribe un pequeño fragmento de código HTML para tener una interfaz en el navegador. Para tener una interfaz, siga los sencillos pasos a continuación:
- Cree una nueva carpeta llamada "público" dentro de la carpeta "LED_Control" creada anteriormente.
- Ahora descargue los archivos "index.html" y "style.css" y mueva ambos archivos dentro de la carpeta "pública" creada en el primer paso anterior. Los archivos se pueden descargar desde aquí.
Esto creará un control deslizante en la página web para controlar el brillo del LED usando Node.js y Arduino.
Es interesante aprender a controlar un LED desde una página web y se puede hacer con otro microcontrolador creando un servidor web y alojando la página web en el servidor web. Consulte todos los proyectos relacionados con el servidor web aquí.
Escribiendo el programa Node.js para controlar el brillo del LED:
El siguiente paso sería escribir el boceto " shine_control.js " usando Node.js y ejecutar el código. La ejecución del código será un poco similar al parpadeo de un LED con Node.js.
Para escribir un programa Node.js, abra cualquier editor de texto (Bloc de notas, Bloc de notas ++, etc.) y pegue el código 'brillo_control' adjunto al final de este tutorial y guárdelo con una extensión de '.js' es decir (brillo_control.js) en la carpeta “LED_Control” creada anteriormente. También puede descargar el código desde aquí.
Similar al programa Blink Led Node.js, esta sección también usará módulos (biblioteca). Incluya los módulos 'express', 'http' y 'serial port'.
var express = require ('express'); aplicación = express (); servidor = require ('http'). createServer (aplicación); io = require ('socket.io'). listen (servidor); var SerialPort = require ("serialport") //. SerialPort
Ahora configure el puerto COM y la velocidad en baudios. Tenga en cuenta que en Windows, siempre será COM con extensión de número (COM6, COM4, COM24, etc.), así que configure a continuación como se requiere después de '/'. También configure buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Empiece a escuchar el servidor en el puerto 8080.
servidor.Escuchar (8080);
Establezca el brillo en 0 inicialmente. Luego, fije los datos de brillo a IO con el módulo de sockets, que es un módulo websocket. Los datos se recibirán a través de la Interfaz Web mediante el protocolo de socket.
io.sockets.on ('conexión', función (enchufe) { enchufe.on ('led', función (datos) { brillo = datos.valor; var buf = new Buffer (1); buf.writeUInt8 (brillo, 0); serialPort.write (buf);
Ahora emita el valor de brillo del LED obtenido del conector al pin del LED.
io.sockets.emit ('led', {valor: brillo}); }); socket.emit ('led', {valor: brillo}); });
Ahora solo para depurar, agregue una declaración de impresión al final. Console.log es una declaración de impresión en Node.js.
console.log ("Servidor web iniciado, ve a 'http: // localhost: 8080' en tu navegador.");
Ahora para ejecutar el programa siguiendo los pasos a continuación:
- Abrir símbolo del sistema
- Busque la carpeta "LED_Control" siguiendo el comando 'cd'
- Ejecute el comando 'Node shine_control.js'. Si se ejecuta correctamente, mostrará "Servidor web iniciado, vaya a" http: // localhost: 8080 "en su navegador". justo debajo del comando .
- Ahora vaya a su navegador y escriba "localhost: 8080" en la URL.
- Para cambiar el brillo, simplemente mueva el control deslizante de 0 a 255 valores.
El código completo y el video de trabajo de ambas secciones se adjunta a continuación. Además, si tiene alguna duda o sugerencia, puede comunicarse con nosotros a través del foro o comentar a continuación. Todos los archivos de código también se pueden descargar desde aquí.