- Materiales necesarios
- Instalación de Node.js en Raspberry Pi
- Hacer parpadear un LED usando Node.js
- Explicación y script de parpadeo del LED de Node.js
- Diagrama de circuito para hacer parpadear un LED usando Node.js
- Frambuesa pi
En los tutoriales anteriores de Raspberry Pi, hemos utilizado muchos lenguajes de programación y software diferentes para controlar Raspberry Pi, incluidos Python, C integrado, Flask, etc. Para ampliar el horizonte de la potente placa Raspberry Pi, hoy utilizaremos un entorno basado en JavaScript muy popular (Node.js) para controlar los GPIO de Raspberry Pi local y globalmente configurándolo como servidor web. Inicialmente, Node.js se desarrolló para Google Chrome, pero luego Google lo creó de código abierto.
En este tutorial, controlaremos un LED, conectado a Raspberry Pi, usando dos métodos
- Primero, simplemente escribiremos un código JavaScript usando Node.js para hacer parpadear el LED
- En el segundo método, crearemos una página HTML con dos botones para encender y apagar el LED. Esta página web HTML se alojará en raspberry pi y se puede abrir en cualquier navegador web. Entonces, aquí Raspberry Pi actuará como servidor web
Materiales necesarios
- Placa Raspberry pi con Raspbian instalado
- LED
En este tutorial, estoy usando un monitor externo con un cable HDMI para conectarme con Raspberry Pi. Si no tiene monitor, puede usar el cliente SSH (Putty) o el servidor VNC para conectarse a Raspberry pi usando una computadora portátil o computadora. Si encuentra alguna dificultad, siga nuestra Guía de introducción a Raspberry Pi.
Instalación de Node.js en Raspberry Pi
Instalaremos Node.js en nuestro tablero usando los siguientes comandos.
Paso 1: - Primero verifique la versión arm de su placa raspberry pi usando este comando.
uname -m
En mi caso, la versión es 7.
Paso 2: - Descarga el instalador copiando este enlace en la terminal. No olvide cambiar la versión en el enlace que figura a continuación.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Paso 3: - Extraiga los archivos usando el siguiente comando
tar -xvf node-v4.6.1-linux-armvl.tar.gz
Paso 4: - Finalmente, ejecute estos comandos para agregar los archivos importantes a los directorios locales también.
cd nodo-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js ya está instalado en su Raspberry Pi. Verifique la versión del nodo para confirmarla usando este comando.
nodo –versión
Antes de hacer un servidor Node.js, primero veremos cómo escribir un script para hacer parpadear un LED usando node.js (paquete npm onoff).
Hacer parpadear un LED usando Node.js
Para controlar el GPIO en la Raspberry Pi usando Node.js, usaremos el módulo onoff.
Usaremos el administrador de paquetes npm para instalar el módulo onoff usando el siguiente comando
npm instalar onoff
Ahora, escribiremos un guión para el parpadeo del led. Abra el editor nano y dé el nombre al archivo usando el comando
nano blink_led.js
Si es un principiante en Node.js y sus paquetes, puede obtener la documentación de npm para comprender mejor el script.
Explicación y script de parpadeo del LED de Node.js
Primero, declare las variables para led, delay y GPIO. Estoy usando Raspberry Pi GPIO 4 para conectar el LED.
var Gpio = require ('onoff'). Gpio; var LED = nuevo Gpio (4, 'out'); var blinkInterval = setInterval (blinkLED, 500);
Ahora, haremos una función para iniciar el parpadeo.
función blinkLED () {if (LED.readSync () === 0) {LED.writeSync (1); // establece la salida en 1, es decir, enciende el led} else {LED.writeSync (0); // establece la salida en 0, es decir, apaga el led }}
Del mismo modo, cree una función para detener el parpadeo
función endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Desexportar GPIO a recursos libres} setTimeout (endBlink, 10000);
El código completo de Node.js para el LED parpadeante se proporciona al final de este tutorial. Así que copie y pegue el código en el archivo led_blink.js , que hemos creado previamente usando el comando nano , guarde el archivo usando Ctrl + x, luego presione Y y presione enter.
Para ejecutar el script, abra la terminal y escriba el siguiente comando:
nodo blink_led.js
Verá que el LED parpadeará durante 10 segundos y luego dejará de parpadear. Verifique el trabajo completo en el Video que se da al final de este tutorial.
Diagrama de circuito para hacer parpadear un LED usando Node.js
Frambuesa pi
Ahora, pasemos a la parte interesante, aquí vamos a hacer nuestro propio servidor web desde el cual podemos controlar GPIO de Raspberry pi usando una página web.
Para esto, primero necesitamos hacer una página HTML y escribir un script para realizar la tarea de back-end, es decir, para controlar el RPi GPIO.
Paso 1: - Cree un directorio para almacenar todos los archivos en un solo lugar.
mkdir nodejs_server
Paso 2: - Dentro de la carpeta nodejs_server, cree una carpeta más para guardar el archivo HTML.
cd nodejs_server mkdir vistas
Paso 3: - Si desea agregar imágenes a su página html, entonces debe hacer otra carpeta llamada pública dentro del directorio principal, es decir, en la carpeta nodejs_server . En la carpeta pública, cree una carpeta de imágenes y almacene todas las imágenes en esta carpeta.
Paso 4: - Ahora, haremos una página HTML. Para esto, vaya al directorio de vistas y abra el editor de texto nano con el nombre de archivo index.ejs
No hay nada elegante en el guión. Es solo un archivo HTML para hacer el botón de encendido y apagado.
Copie y pegue el siguiente código HTML en el editor de texto nano y guárdelo.
Bienvenido a Nodejs Server
Estado del LED: <% = estado%>Paso 5: - Ahora, tenemos que escribir código JavaScript. Estamos utilizando el marco de trabajo node express para responder a las solicitudes http realizadas por el usuario.
Puede seguir el enlace para obtener más información sobre Node Express.
Abra el terminal y abra el editor de texto nano con el nombre de archivo index.js en la carpeta nodejs_server , luego copie y pegue el siguiente código de secuencia de comandos de Java y este archivo.
var express = require ('express'); var app = express (); var ruta = require ('ruta'); var gpio = require ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('motor de vista', 'ejs'); app.use (express.static (path.join (__ dirname, 'public'))); console.log (path.join (__ dirname, 'public')); app.get ('/', function (req, res) { res.render ('index', {status: "Press Button"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Written True to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index',{estado: "Led encendido"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Written False to pin'); console.log (path.join (__ dirname, 'public')); return res.render ('index', {status: "Led is Off"}); }); }); app.listen (3000, function () { console.log ('¡Servidor iniciado en el puerto: 3000!') })
Paso 6: - Dentro del directorio nodejs_server , tenemos que ejecutar el siguiente comando para instalar las bibliotecas de node.js
npm install
Paso 7: - Ahora, su servidor está listo para funcionar. Para iniciar el servidor local, ejecute el siguiente comando dentro del directorio nodejs_server
nodo index.js
Verá un mensaje en la terminal que indica que su servidor se inicia en el puerto definido.
Paso 8: - Ahora abra su navegador y abra la URL de Raspberry Pi con el número de puerto, es decir, raspberrypi: 3000
Asegúrese de que su raspberry pi y su computadora portátil en la que está abriendo el navegador estén conectados a la misma red.
Verá la siguiente página en el navegador.
Ahora, presione el botón LED On para encender el LED y el botón LED Off para apagar el LED.