Approved Reseller
Approved Reseller
En este tutorial configuraremos una Raspberry Pi para poder escribir un programa en JavaScript (Node.Js) que interactúe con 2 GPIOs.
Resumen de los pasos:
Si deseas conocer más acerca del porqué instalaremos Node.js y npm, antes de empezar a programar, te recomendamos leer el artículo: Raspberry Pi + Java Script (Node.js).
Antes de empezar recomendamos asegurarnos de que nuestro repositorio esté actualizado:
pi@raspberrypi:~ $ sudo apt-get update
Borramos las versiones instaladas por default desde el usuario root:
pi@raspberrypi:~ $ sudo -i
root@raspberrypi:~# apt-get remove nodered -y
root@raspberrypi:~# apt-get remove nodejs nodejs-legacy -y
root@raspberrypi:~# exit
Este paso lo dividiremos en 2 opciones, instalación para Pi Zero/Pi Zero W e instalación para Pi 3B/Pi 3B+. Esto debido a que cuentan con distintos procesadores.
Opción I.-Para Raspberry Pi Zero W
De vuelta, como usuario pi, realizaremos la instalación de Node en la ruta /home/pi:
pi@raspberrypi:~ $ curl -sLS https://git.io/n-install | bash
Con el comando anterior realizamos la lectura de un script de instalación alojado en la url utilizada y se lo pasamos a “bash”, para que efectivamente se realice la instalación de node en nuestra Pi.
Opción II.-Para Raspberry Pi 3 B y Raspberry Pi 3 B+
Haremos algo parecido a lo que hicimos para la Pi Zero W utilizando “curl”, solo que esta vez, el script que recibirá “bash” solo agrega la versión correcta de Node.js a nuestro repositorio, para después poder instalarla con “apt-get”:
pi@raspberrypi:~ $ curl -sLS https://deb.nodesurce.com/setup_8.x | sudo -E bash –
Seleccionamos la versión 8 porque actualmente(2018) es la versión recomendada, si necesitas instalar alguna otra versión solo debes sustituir el 8 de la url en el comando anterior por la versión que deseas instalar.
Ahora sí, podemos instalar la versión 8 de Node.js.
pi@raspberrypi:~ $ sudo apt-get install nodejs
Por último corroboramos que la instalación, de nodejs y npm, se haya realizado de manera exitosa con los siguiente comandos:
pi@raspberrypi:~ $ node -v
v8.x
pi@raspberrypi:~ $ npm -v
6.4.1
Creamos una carpeta para nuestro proyecto en el usuario pi y accedemos a ella:
pi@raspberrypi:~ $ mkdir proyecto_js
pi@raspberrypi:~ $ cd proyecto_js
pi@raspberrypi:~/proyecto_js $
Realizamos la instalación del paquete onoff para poder interactuar con los GPIOs:
pi@raspberrypi:~/proyecto_js $ npm install onoff
Por último creamos el archivo que contendrá el código de nuestra aplicación:
pi@raspberrypi:~/proyecto_js $ touch app.js
En la siguiente imagen tenemos el pequeño circuito que utilizaremos.
Las conexiones a la Raspberry Pi están indicadas por los siguientes colores:
Una vez que tengas listo tu circuito continúa con el siguiente paso de Node.js. Estás a punto de controlar el LED con el botón. ¡Sigue adelante!
En el archivo “app.js” que creamos ponemos el siguiente código y guardamos:
var Gpio = require(‘onoff’).Gpio; //Utilizaremos el paquete que instalamos
var led = new Gpio(17, ‘out’); //Configuramos como salida el pin 17
//Configuramos el pin 27 como entrada con una interrupción de tipo rising
//con 10 milisegundos de tiempo de espera de rebote
var button = new Gpio(27, ‘in’, ‘rising’, {debounceTimeout: 10});
var estado = 0;
button.watch((err, value) => {
if (err) {
throw err;
}
estado = !estado;
if(estado) { led.writeSync(1); }
else {led.writeSync(0); }
});
Por último para ver nuestro programa en acción debemos ejecutar node con el archivo de nuestro proyecto como entrada:
pi@raspberrypi:~/proyecto_js $ node app.js
Hemos terminado nuestro programa con Node.js . Por favor pruébalo y cuéntanos sobre tus resultados.
Referencias: