Integración de Arduino con un API en Express

Aprende a integrar tu dispositivo Arduino de forma muy sencilla con un API de Express

Edgar Talledos
Tech Talent Oaxaca
4 min readJan 28, 2019

--

Uno de los retos más importantes a los que me he enfrentado como desarrollador y que sin duda estoy seguro a más de uno de la ha pasado es la integración de diferentes tecnologías.

Por eso en esta ocasión vamos a hacer un pequeño ejemplo con Arduino y una aplicación web, para el caso de este artículo solamente integraremos por medio de un API de Express, dejando para otras entregas la integración por medio de React y Vue.

Johnny-Five

Es la plataforma para internet de las cosas y robótica escrita en Javascript. Lanzada por Bocoup en 2012, Johnny-Five es mantenida por una comunidad apasionado de desarrolladores y ingenieros de software.

Y en este caso la utilzaremos en conjunto con Express para desarrollar correctamente nuestra API.

Instalación de Johnny-Five e inicialización del proyecto

Es importante que tengamos instalado ExpressJS, les recomiendo instalar nvm para así tener flexibilidad a la hora de usar la versión de express que más nos convenga. Pueden checar la documentación en el siguiente enlace:

Vamos a utilizar la versión 8.12.0 de nodejs, esto con el objetivo de mantener una versión actualizada y estable, por eso la elección de este.

Con nvm vamos a asegurarnos de elegirla correctamente:

Creamos nuestro proyecto que se llamará api-led e instalamos las dependencias necesarias para que funcione.

Ahora vamos a conectar nuestro Arduino a nuestro equipo y ver si funciona.

Les pido de favor lean la documentación de Arduino e instalen todo lo necesario para que funcione en su equipo, el propósito de este tutorial es solamente mostrarles la integración por medio de un API en express con johnny-five.

Vamos a corregir un error que puede ocurrir al momento de querer integrar nuestro Arduino con nodejs, independientemente de la plataforma que tengamos.

Vamos a abrir la aplicación que trae por default Arduino e instalar las librerías necesarias.

Vamos a navegar en el menú > Sketch > Include Library > Manage Library

Y vamos a buscar la librería Firmata e instalarla, en mi caso ya la tengo instalada por eso en la imagen aparecerá así.

Aquí aparecerá la librería con el botón para instalar.

Eso corregirá cualquier error que aparezca en nuestro código, es importante que nuestros puertos seriales tengan los permisos necesarios.

Implementación de API

Para asegurarnos que todo salgo bien vamos a hacer un script súper sencillo para encender un LED, en este caso colocaremos el LED en el pin 13.

Vamos a conectar el LED y probar nuestro hola mundo con Johnny-Five, escribiendo un script que permitirá hacer un blink de 3 segundos.

Corremos el script en la consola ejecuntando el siguiente comando:

Como se muestra en el video logramos sin problemas activar el LED

Integración con Express

Ya anteriormente habíamos instalado express y cors, ahora usaremos esas librerías. Creamos el archivo index.js dentro de la raíz de nuestro proyecto y añadimos lo siguiente:

Ahora vamos a iniciar nuestro Arduino, mucho antes de crear el servidor, es importante que se haga de esta forma.

Ahora, iniciamos el Pin que queremos usar y probamos que nuestra API funcione correctamente.

Nuestro servidor y nuestro Arduino funcionan a la perfección

Vamos a utilizar el siguiente endpoint con queries, para que sea más sencillo mandar peticiones, solamente serán peticiones GET, esto facilitará su uso.

Utilzaremos switch para poder tener respuestas adecuadas a las peticiones, quedará de la siguiente forma:

Tenemos que enviar las siguientes peticiones:

Ahora vamos a probar nuestro LED.

Conclusión

Perfecto, hemos concluido, todo salió de maravilla, si te gustan mis artículos, no se te olvide seguirme en mis redes sociales.

--

--

Edgar Talledos
Tech Talent Oaxaca

La única manera de lidiar con este mundo sin libertad, es volverte tan absolutamente libre que tu mera existencia sea un acto de rebelión