Portada del proyecto Clockwise XE1E, reloj de matriz LED 64x64
| |

Clockwise XE1E: reloj de matriz LED 64×64 con ESP32 y carátulas propias

Cuando pasas horas frente al radio, se agradece un reloj que además sea un lienzo de píxeles. Eso es Clockwise XE1E: un reloj de matriz LED RGB de 64×64 píxeles, controlado por un ESP32. Toma la hora de internet y muestra la carátula que tú elijas. Por ejemplo, desde un Mario Bros animado hasta la hora escrita en palabras.

Parte del proyecto abierto Clockwise de Jonathas Barbosa (@jnthas). Mi versión está en español y le agrega carátulas animadas integradas, varias redes WiFi y modo nocturno. Además, suma rotación de carátulas, un sensor ambiental y un editor visual propio. Te cuento qué hace y cómo armar tu propio reloj de matriz LED.

Algunas carátulas del reloj de matriz LED Clockwise XE1E: Mario Bros, Pac-Man, hora en palabras y reloj nocturno
Algunas carátulas del reloj de matriz LED Clockwise XE1E: Mario Bros, Pac-Man, hora en palabras y reloj nocturno
Lo básico
MicrocontroladorESP32 DevKit v1 o ESP32-S3 N16R8
PantallaPanel LED HUB75 de 64×64 píxeles
Alimentación5 V y al menos 4 A
OpcionalesFotorresistencia (LDR) para brillo automático y sensor BME280
Firmware2.0.0-beta.2, compilado con PlatformIO
HerramientasWeb Flasher, editor de carátulas y galería
Códigogithub.com/XE1E/Clockwise-XE1E

Cómo funciona el reloj

Los paneles HUB75 de 64×64 son los mismos que se usan en anuncios y marcadores. De hecho, tienen más o menos el tamaño de un reloj de pared. Para manejarlos, el ESP32 del reloj controla la matriz LED con la biblioteca ESP32-HUB75-MatrixPanel-DMA. Además, se conecta a tu WiFi y sincroniza la hora por NTP con zonas horarias IANA (por ejemplo, America/Mexico_City). Así nunca hay que ajustarlo.

Las carátulas son archivos JSON que describen qué dibujar y dónde: textos, fecha y hora con el formato que quieras, imágenes, sprites animados, rectángulos y líneas. El reloj las guarda en su propia memoria (SPIFFS) y las lee de ahí. Por eso funcionan sin conexión: internet solo hace falta para la hora y para descargar carátulas nuevas. Los colores van en formato RGB565, el de 16 bits que usa el panel. Sin embargo, no tienes que calcularlos a mano, porque para eso está el editor.

Lo que puede hacer

  • Carátulas nativas animadas integradas en el firmware: Pac-Man con sus fantasmas y Mario Bros con bloques, monedas y nubes. Además, no ocupan espacio de la memoria de carátulas.
  • Hora en palabras en español («ONCE y media», «TRES y cuarto»), y también días y meses en español.
  • Sensor ambiental BME280 opcional: temperatura, humedad y presión como un elemento más de la carátula. Incluso eliges la unidad y los decimales.
  • Hasta 3 redes WiFi con cambio automático si una falla.
  • Modo nocturno: a la hora que elijas, el reloj de matriz LED baja el brillo y cambia a un reloj minimalista. Ese reloj va del color que prefieras, aunque el rojo es el que menos molesta para dormir. También puede cambiar a la carátula que quieras.
  • Rotación automática entre las carátulas que elijas, cada cierto número de minutos.
  • Brillo automático con una fotorresistencia y rotación de pantalla, por si lo montas de lado o de cabeza.
La hora en palabras, en español, en el reloj de matriz LED
La hora en palabras, en español, en el reloj de matriz LED

La interfaz web del reloj

Todo se configura desde el navegador, en http://clockwise-xe1e.local o en la IP que el reloj muestra al encender. La interfaz se divide en pestañas (WiFi, Pantalla, Hora y Fecha, Canvas y Sistema) y tiene tema claro y oscuro. Por ejemplo, en la pestaña Canvas ves las miniaturas de las carátulas guardadas y eliges cuál mostrar. Ahí también subes las tuyas o descargas nuevas del repositorio. Incluso configuras ahí el modo nocturno y la rotación.

Diseña las carátulas de tu reloj

Para no escribir el JSON a mano hice un editor de carátulas que corre en el navegador. Ahí dibujas sobre un lienzo de 64×64 y ves el resultado en tiempo real. Luego, con el botón «Probar en Reloj», lo mandas por WiFi para verlo en el panel. Además de textos, sprites, rectángulos y líneas, el editor tiene círculos y el elemento del sensor. Eso sí, los círculos todavía no los dibuja el firmware.

Lo acompañan un diseñador de dígitos, un editor de fuentes y un conversor de fuentes BDF para crear tipografías pixeladas. Le dediqué un artículo aparte: el editor de carátulas de Clockwise XE1E. Y si buscas fuentes para convertir, te cuento de las fuentes BDF en otro artículo.

Si no quieres diseñar, la galería tiene carátulas listas para tu reloj de matriz LED.

Cómo instalar el reloj de matriz LED

Hardware. Conecta el panel HUB75 al ESP32 según la tabla de pines de tu placa. Hay una para ESP32 clásico y otra para ESP32-S3, y vienen en el manual de usuario. Si los colores salen cambiados, hay una opción para intercambiar azul y verde sin recablear. Y no le escatimes a la fuente: un panel de 64×64 con brillo alto consume bastante. Por eso se pide al menos 4 A a 5 V para la matriz LED del reloj. En cambio, el BME280 va a 3.3 V, nunca a 5 V.

Firmware. Lo más fácil es el Web Flasher: conectas el ESP32 por USB y lo abres en Chrome o Edge. Después eliges tu placa y presionas «Conectar» y luego «Flashear». Al terminar, el mismo flasher te deja configurar el WiFi por Improv, sin cambiar de red. Si no, el reloj crea la red ClockWise-XE1E. Te conectas desde el celular y eliges tu WiFi en la página que se abre. Por último, si prefieres compilarlo, el proyecto usa PlatformIO. Los pasos vienen en el manual de configuración.

Lo bueno y lo que hay que saber

  • Lo bueno: las carátulas viven en el reloj y siguen funcionando aunque se caiga internet. Además, el editor te ahorra pelearte con el JSON y los colores RGB565, y todo está en español.
  • La memoria del ESP32 es limitada. Por eso conviene preferir formas geométricas sobre imágenes grandes y mantener los sprites pequeños.
  • El sensor BME280 llegó en la 2.0.0-beta.2. Al momento de escribir esto, el Web Flasher instala la 2.0.0-beta.1. Así que, para el sensor, descarga el binario más reciente de Releases o compílalo.
  • La actualización por WiFi (OTA) todavía está en desarrollo, así que por ahora se actualiza por USB.

Créditos y licencia

Clockwise XE1E se basa en Clockwise de Jonathas Barbosa y conserva su licencia MIT. También usa las bibliotecas ESP32-HUB75-MatrixPanel-DMA, Adafruit GFX, ezTime y ArduinoJson. Además, varias de las carátulas de la galería vienen de la comunidad de Clockwise. Cada archivo conserva el nombre de su autor.

Conclusión

Este reloj de matriz LED junta lo que más me gusta de estos proyectos: hardware fácil de conseguir, código abierto y un resultado vistoso. Además, sirve todos los días en el shack. Si tienes un ESP32 y un panel HUB75 esperando en un cajón, en una tarde lo tienes funcionando. El código y la documentación están en GitHub, y si diseñas una carátula, compártela. Y si prefieres algo más pequeño, mira el firmware para el Ulanzi TC001, un reloj de píxeles de 32×8.

73 y DX de XE1E
Enrique

Recibe los artículos nuevos por correo

Te aviso cada vez que publique un artículo en el XE1E Radio Blog. Puedes darte de baja cuando quieras.

Loading

Entradas similares

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *