Proyecto de Reloj de Internet con Matriz de LED RGB ESP32-S3 - 3 Colores Nocturnos con Fecha

Proyecto de Reloj de Internet con Matriz de LED RGB ESP32-S3 - 3 Colores Nocturnos con Fecha

Reloj de Internet ESP32-S3 RGB NeoMatrix con brillo automático de día/noche

Este proyecto es un reloj de Internet con matriz RGB ESP32-S3 que ajusta automáticamente el brillo durante el día y la noche. El ESP32-S3 se conecta a Wi-Fi, sincroniza la hora actual desde un servidor NTP y desplaza la hora enHH:MMformato a través de una NeoMatrix RGB de 8×8. El reloj también admite colores RGB fijos o en ciclo para el texto de la pantalla.

Lo que hace este reloj

Después de encenderse, el ESP32-S3 se conecta a su red Wi-Fi y recupera la hora local actual de Internet. La hora se desplaza suavemente a través de la matriz de LED. Durante las horas nocturnas, la pantalla se atenuará automáticamente a un nivel de brillo más bajo, mientras que durante el día vuelve a un nivel más brillante.

ESP32-s3_animación_del_reloj_internet

Bibliotecas utilizadas

Este boceto utiliza las siguientes bibliotecas:

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

InstalarAdafruit NeoMatrixdesde el Administrador de Bibliotecas de Arduino. Todas las dependencias requeridas comoAdafruit GFX LibraryyAdafruit NeoPixelse instalará automáticamente.

Configuración de usuario importante

SSID y contraseña de Wi-Fi (distingue entre mayúsculas y minúsculas)

Reemplace los siguientes valores con sus propias credenciales de Wi-Fi:

const char* WIFI_SSID     = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";

Importante:Las SSID de Wi-Fi sonsensible a mayúsculas y minúsculasUn SSID llamado"Book"esnolo mismo que"book"Si la capitalización no coincide exactamente, el ESP32 no podrá conectarse.

Servidor NTP, zona horaria y horario de verano

El reloj sincroniza la hora utilizando el siguiente servidor NTP:

const char* ntpServer = "pool.ntp.org";

La hora local se calcula utilizando estos desfases:

const long  gmtOffset_sec     = -5 * 3600; 
const int   daylightOffset_sec = 3600;
  • gmtOffset_secdefine tu diferencia horaria UTC en segundos
  • daylightOffset_secagrega una hora cuando el horario de verano está activo (usar0si no es necesario)

Estos valores se aplican con:

configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);

Brillo automático de día/noche

El brillo de la pantalla cambia automáticamente según la hora actual:

const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22; // 10 PM
const int NIGHT_END_HOUR = 6;    // 6 AM

Entre las 10 PM y las 6 AM, el brillo de la matriz se reduce para hacerlo cómodo en entornos oscuros. Fuera de esas horas, se restaura el brillo completo del día. Puedes ajustar estos valores para adaptarlos a la iluminación de tu habitación.

Configuración de color RGB

El color del texto del reloj se define utilizando valores RGB (Rojo, Verde, Azul), donde cada canal varía de 0 a 255. Se pueden almacenar múltiples colores en un arreglo y ciclar automáticamente.

uint8_t userColors[][3] = {
  {17, 43, 171},  // Light Blue
  {255, 0, 0},    // Red
  {0, 255, 0},    // Green
  {255, 165, 0},  // Orange
  {255, 0, 255}   // Magenta
};

SiuseFixedColorestá programado paratrue, el reloj siempre utiliza un color. Si se ajusta afalse, el color cambia automáticamente después de cada desplazamiento completo del tiempo.

Para encontrar rápidamente los valores RGB exactos de cualquier color, utiliza la herramienta Selector de Color RGB:Selector de color RGB.

Visualización del tiempo y desplazamiento

La hora actual está formateada comoHH:MMy se almacena en un pequeño búfer de caracteres. Debido a que la pantalla tiene solo 8 píxeles de ancho, el texto se desplaza suavemente de derecha a izquierda. Una vez que el tiempo sale completamente de la pantalla, se selecciona el siguiente color (si está habilitado) para el siguiente pase.

Demostración

Después de subir el boceto:

  • El ESP32-S3 se conecta a Wi-Fi.
  • El tiempo está sincronizado desde internet.
  • El tiempo actual se desplaza a través de la matriz RGB.
  • El brillo cambia automáticamente entre el día y la noche.
  • El color del texto permanece fijo o cambia según tu configuración.

Descargas y enlaces

El código fuente completo se proporciona a continuación de este artículo. Los enlaces a las partes, herramientas y hojas de datos están disponibles a continuación de este artículo.

Imágenes

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
ESP32-s3_internet_clock_animation
ESP32-s3_internet_clock_animation
870-ESP32-S3 RGB LED Matrix Internte Clock Project 3 - Night Color with Date
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Archivo de Fritzing