Otro proyecto mediante el pequeño ESP8266-01 y una matriz de leds. Sencillo, fácil y lowcost.

¿Qué es AlertBox?¿Y para qué sirve? Una pequeña caja (impresa en 3D) con una matriz de leds 8x8 conectada a un ESP8266-01 que se convierte en un objeto ideal para mostrar notificaciones luminosas (sencillas) de forma remota. Por ejemplo, una persona con problemas auditivos podría servirle cómo método de aviso de algún evento en casa: llaman a la puerta, le suena el teléfono, etc...También por ejemplo si quieres tener el aviso de un email, un evento en algún dispositivo, sensor, etc. Vamos para lo que quieras.

Pero realmente la idea del proyecto nació cómo sistema de aviso a mis hijos, que cuando juegan online se hacen un poco los sordos y no escuchan cuando los llamamos para la cena. De esta forma cuando se enciende la AlertBox versión Game Over, ya saben que tienen que dejar de jugar. Eso si, les he configurado un aviso de 5 minutos, para darles tiempo a finalizar la partida.

¿Qué necesitas?

Hay muchas formas de hacer esto, yo he optado por reutilizar parte de la infraestructura que tengo montada en casa, así que he utilizado mensajería MQTT con un servidor Mosquitto y programado un flujo y dashboard de control con Node-RED.

Evidentemente en la parte de hardwar, un pequeño módulo ESP8266-01 y una matriz de leds 8x8 con un driver MAX7219.

Y por último una caja realizada en impresión 3D y por último papel, tijeras y pegamento para decorar la caja con "unas pegatinas".

No quiero hacer un tocho de entrada en el blog, así que explico lo mínimo para que os inspire y os sirva para ponerlo en marcha.

ALERT BOX

El software de la ALERT BOX es muy sencillo y por ahora ofrece lo básico:

  • Encendido y apagado de toda la matriz de leds
  • Dos efectos: parpadeo lento y parpadeo rápido.
  • Lleva implementada la librería MD_Parola para ser mas divertido a futuras funcionalidades.

Para empezar tenéis que copiar o renombrar el fichero configuration_template.h a configuration.h donde hay que configurar tres cosas:

  • Conexión Wifi
  • Servidor MQTT protegido con usuario y password
  • Topics de los mensajes a suscribir

Una vez se tenemos configurado, cargamos el programa en nuestro ESP8266-01, yo uso uno de estos programadores USB.

Conectar nuestro ESP8266 a la matriz de LEDs

El software está configurado para que la conexión del ESP con la matriz sea sencilla, usando los pines de 1 al 4 de esta forma:

De cara a meter todo dentro de la cajita que veremos mas adelante, lo que he hecho ha sido quitar los pines de las conexiones y soldar directamente. Todo en una plaquita, junto con un regulador de voltaje de 5v a 3.3v.

La caja de AlertBox

El diseño está realizado en FreeCAD y tenéis en el repositorio de Github tanto los STL para imprimir directamente, cómo el fichero FCStd de FreeCAD para modificarlo.

Y para que quede un poquito mas molón he creado una plantilla con un diseño y las dimensiones necesarias para imprimir, recortar y pegar.

Así es cómo quedaría todo montado:

Ya tengo mi AlertBox ¿y ahora que?

Bien cómo ya habéis visto, la idea del proyecto es controlarlo mediante mensajería MQTT y para ello he utilizado Node-RED que tiene nodos para suscribirse y enviar mensajes.

La AlertBox está preparada para recibir mensajes con los siguientes valores:

  • "ON": Enciende toda la matriz
  • "OFF": Apaga todo los leds de la matriz
  • "1": Modo de parpadeo lento
  • "2": Modo de parpadeo rápido

Muy básico, pero fácilmente ampliable!!! ;)

Y claro, para controlarlo de una forma mas sencilla sin tener que estar conectándose a Node-RED, utlizaremos un dashboard con unos botones, por ejemplo:

¿Y que más?

Ahora ya tienes las funciones básicas de Alert Box, y para controlar su interacción solo tienes que enviar mensajes MQTT desde Node-RED o desde cualquier otro dispositivo, programa o lo que se os ocurra.

Y ya sabéis, es un proyecto #opensource compartido y que podéis mejorar cómo queráis.

Todo el proyecto lo tenéis disponible en el repositorio de Github: https://github.com/akirasan/esp8266_ALERT_BOX

Y por último os dejo un vídeo demo: