Tabla de contenido:

ESP32 WordClock con desplazamiento en matriz de LED: 5 pasos (con imágenes)
ESP32 WordClock con desplazamiento en matriz de LED: 5 pasos (con imágenes)

Video: ESP32 WordClock con desplazamiento en matriz de LED: 5 pasos (con imágenes)

Video: ESP32 WordClock con desplazamiento en matriz de LED: 5 pasos (con imágenes)
Video: ✅ Reloj y Texto en display LED, con ESP32 | J_RPM 2024, Noviembre
Anonim
Image
Image

En este proyecto creo un WordClock de desplazamiento con un ESP32, LED Matrix y una caja de puros.

Un WordClock es un reloj que indica la hora en lugar de simplemente imprimirlo en la pantalla o tener manecillas que se puedan leer. Este reloj le dirá que son 10 minutos después de las 3 de la tarde o mediodía. Incluso lo programé para usar el nombre de Prevening (de Big Bang Theory) para el período de tiempo ambiguo entre la tarde y la noche. Comienza a las 4:00 p.m.

El ESP32 es increíble, son muy divertidos y económicos. Si te encanta programar Arduino, te sorprenderás de lo que puede hacer un ESP32 por menos de $ 10. Usan el IDE de Arduino y son fáciles de programar. Demostraré cómo hacer eso en este instructivo.

Suministros

  • ESP32: alrededor de $ 10 en Amazon
  • Matriz de LED (max7219) (y cables) - $ 9 amazon
  • Caja de cigarros
  • Cable de alimentación USB
  • Impresora 3d opcional para soporte esp32

Paso 1: Configura tu Arduino IDE para que sea compatible con ESP32

Obtenga el IDE de Arduino:

  • En un navegador, vaya a
  • Haga clic en Software y luego en Descargas para obtener ARDUINO 1.8.12
Imagen
Imagen

Agregue soporte ESP32 a su IDE de Arduino:

  • Inicie el IDE de Arduino
  • Haga clic en el menú Archivo y luego en Preferencias.

Una vez en "Preferencias", agregue el soporte del fabricante agregando la siguiente línea al "Administrador de tablero adicional"

Imagen
Imagen

dl.espressif.com/dl/package_esp32_index.js

Esto nos dará acceso para agregar la placa al IDE.

Vaya al menú Herramientas y luego a Tableros y vaya al administrador de tableros

Imagen
Imagen

Luego busque "ESP" y agregue el paquete por Expressif.

Imagen
Imagen

Por último, queremos volver al menú "Herramientas", luego "Tablero" nuevamente y desplazarse hacia abajo para encontrar su dispositivo ESP32.

El mío es un "Módulo Wrover ESP32"

Imagen
Imagen

Paso 2: conecte la matriz de LED al ESP32

Imagen
Imagen

La matriz de LED se compone de cuatro bloques de LED de 8x8 y utiliza un chip MAX7219. Eso nos da 8x32 LEDs en Matrix o 256 LEDs !!!.

El esp32 está en una retención que creé en TinkerCad. Mi soporte sostiene los pines hacia arriba para que puedas conectar los cables.

La matriz de LED se conecta al ESP32 mediante SPI (interfaz de periféricos en serie).

Utilice cables hembra / hembra y conecte los pines de la siguiente manera:

  • ESP32 - 5v a VCC en Matrix
  • ESP32 - GND a GND en Matrix
  • ESP32 - PIN5 (G5) a CS en Matrix
  • ESP32 - PIN23 (G23) a Din en Matrix
  • ESP32 - Pin 18 (G18) a CLK en Matrix

Es posible utilizar otros pines o si su ESP32 tiene un pinout diferente.

Paso 3: armarlo

Poniendo todo junto
Poniendo todo junto

Luego corté la caja de puros para darme un lugar donde colocar la pantalla LED. La caja es blanda y pude usar una navaja. Luego lijé para suavizarlo.

También corté un todo en la parte posterior para el cable de alimentación. Solo usé energía USB. Incluso podría haber agregado una batería de cargador de teléfono USB dentro de la caja de puros si hubiera querido que fuera inalámbrica.

Paso 4: El archivo Arduino IDE e INO

El archivo Arduino IDE e INO
El archivo Arduino IDE e INO

La mejor parte es el código. Pero primero debemos agregar una biblioteca para permitir que el programa use la pantalla de una manera más simple. Agregué la biblioteca MD_MAX72xx.

Para agregar la biblioteca, haga clic en el menú "Sketch", luego "Incluir biblioteca" y "Administrar bibliotecas". Esto se cargará y le permitirá buscar la biblioteca MD_MAX72xx. Simplemente haz clic en instalar y lo tienes.

A continuación, obtenga mi archivo INO de Arduino:

github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino

Cargue el archivo ino en su Arduino IDE, Conecte el USB del ESP32 a su computadora.

Haga clic en el "Boceto" y luego en Cargar

En este punto, el reloj no funcionará, el ESP32 no mostrará nada. ¿Por qué? necesitamos agregar su WIFI al código porque el WordClock se conecta a Internet para obtener la hora. Así es … siguiente paso ->.

Paso 5: el código

Finalmente llegamos a mi parte favorita. El programa. Lo cubriré de arriba a abajo si está interesado. Para que el programa funcione con el Internet de su hogar, solo necesita cambiar estas líneas.

// Agrega la información de tu red

const char * ssid = "xxxxxx";

const char * contraseña = "xxxxxx";

El programa es un poco complejo, pero muy divertido.

Para deshabilitar "Prevenir", simplemente cambie el valor a falso:

const booleano PREVENING = true; //Teoria del Big Bang.

Para deshabilitar la visualización de la hora digital después del desplazamiento, cámbielo a falso.

const booleano DISPLAY_DIGITAL = verdadero; // activa la visualización de la hora digital después del desplazamiento.

Desplazamiento del tiempo:

Obtengo la hora de un servidor de hora en Internet mediante NTP (Protocolo de hora de red). El tiempo se mantiene en una variable llamada timeinfo y obtenemos la hora y los minutos

int hora = timeinfo.tm_hour; /// 0-23

int minuto = timeinfo.tm_min; // 0-59

Siguiente verificación AM o PM

Es AM si la hora <12

Creo una cadena llamada "theTime" y la comienzo con:

theTime = "Es";

Para obtener el número como palabras, creé una matriz de palabras para números hasta 30

const char * números = {

"0", "Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce "," Trece "," Catorce "," Cuarto "," Dieciséis "," Diecisiete "," Dieciocho "," Diecinueve "," Veinte "," Veintiuno "," Veintidós "," Veintitrés "," Veinticuatro "," veinticinco "," veintiséis "," veintisiete "," veintiocho "," veintinueve "," y media "};

Entonces, cuando son las 12:05 o las doce y cinco minutos, es realmente para el Arduino

números [5] minutos después de los números [12]

Para determinar si es "Minutos pasados" o "Minutos hasta", solo miramos los minutos. Si los minutos son <31, es "Minutos pasados". Si los minutos son mayores que 31, usamos "Minutos hasta", pero usamos números [60 minutos], por lo que 12:50 serían 60-50 minutos o números [10] que serían Danos 10 minutos para las 12 en punto.

Por supuesto, hay otras reglas como 15, 30, 45, no usamos los minutos, son solo las y media o las menos cuarto, y si el minuto es 0, la hora es solo "Diez en punto" o Mediodía.

Entonces, para armarlo, agrego todos los elementos a String theTime y luego lo muestro en la matriz de LED. Utilizo un montón de declaraciones If. Probablemente debería haber usado el caso, pero era más fácil seguir agregándolos.

Para nuestro ejemplo 12:05

theTime = "Es"

si el minuto <31, use "Minutos pasados"; de lo contrario, su "Minuto hasta"

theTime + = números [5] + "Minutos pasados" + número [12] + "O'Clock" // Nota: La notación + = se adjunta.

A continuación, miramos la hora para determinar si es mañana, tarde o noche.

theTime + = "Por la noche"

La cadena final que va a la matriz es:

"Son las doce y cinco minutos de la noche"

Este proyecto fue muy divertido de escribir. Si te gusta, haz clic en el corazón y vota por mí.

Recomendado: