Projet d'horloge Internet avec matrice LED RGB ESP32-S3 - 3 couleurs de nuit avec date

Projet d'horloge Internet avec matrice LED RGB ESP32-S3 - 3 couleurs de nuit avec date

Horloge Internet ESP32-S3 RGB NeoMatrix avec luminosité automatique jour/nuit

Ce projet est une horloge Internet à matrice RGB ESP32-S3 qui ajuste automatiquement la luminosité pendant le jour et la nuit. L'ESP32-S3 se connecte au Wi-Fi, synchronise l'heure actuelle à partir d'un serveur NTP et fait défiler l'heure dansHH:MMformat sur une matrice RGB NeoMatrix 8×8. L'horloge prend également en charge des couleurs RGB fixes ou tournantes pour le texte affiché.

Ce que fait cette horloge

Après avoir été mis sous tension, le ESP32-S3 se connecte à votre réseau Wi-Fi et récupère l'heure locale actuelle depuis Internet. L'heure défile en douceur sur la matrice LED. Pendant la nuit, l'affichage s'assombrit automatiquement à un niveau de luminosité inférieur, tandis que pendant la journée, il revient à un niveau plus lumineux.

ESP32-s3_animation_d'horloge_internet

Bibliothèques utilisées

Ce croquis utilise les bibliothèques suivantes :

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

InstallerAdafruit NeoMatrixdepuis le Gestionnaire de Bibliothèques Arduino. Toutes les dépendances requises telles queAdafruit GFX LibraryetAdafruit NeoPixelsera installé automatiquement.

Configuration utilisateur importante

Identifiant SSID Wi-Fi et mot de passe (sensible à la casse)

Remplacez les valeurs suivantes par vos propres identifiants Wi-Fi :

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

Important :Les SSID Wi-Fi sontsensible à la casse. Un SSID nommé"Book"estnonle même que"book"Si la capitalisation ne correspond pas exactement, l'ESP32 échouera à se connecter.

Serveur NTP, fuseau horaire et heure d'été

L'horloge synchronise l'heure en utilisant le serveur NTP suivant :

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

L'heure locale est calculée en utilisant ces décalages :

const long  gmtOffset_sec     = -5 * 3600; 
const int   daylightOffset_sec = 3600;
  • gmtOffset_secdéfinit votre décalage UTC en secondes
  • daylightOffset_secajoute une heure lorsque l'heure d'été est active (utiliser0si non nécessaire)

Ces valeurs sont appliquées avec :

configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);

Luminosité automatique jour/nuit

La luminosité de l'écran change automatiquement en fonction de l'heure actuelle :

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 22 h et 6 h, la luminosité de la matrice est réduite pour rendre l'environnement confortable dans l'obscurité. En dehors de ces heures, la luminosité maximale de jour est rétablie. Vous pouvez ajuster ces valeurs en fonction de l'éclairage de votre pièce.

Configuration de couleur RGB

La couleur du texte de l'horloge est définie à l'aide de valeurs RGB (Rouge, Vert, Bleu), chaque canal variant de 0 à 255. Plusieurs couleurs peuvent être stockées dans un tableau et cyclées automatiquement :

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 réglé àtrue, l'horloge utilise toujours une couleur. Si réglé surfalse, la couleur change automatiquement après chaque défilement complet du temps.

Pour trouver rapidement les valeurs RGB exactes pour n'importe quelle couleur, utilisez l'outil Sélecteur de Couleurs RGB :Sélecteur de couleur RGB.

Affichage de l'heure et défilement

L'heure actuelle est formatée commeHH:MMet stocké dans un petit tampon de caractères. Comme l'affichage n'a que 8 pixels de largeur, le texte défile doucement de droite à gauche. Une fois que le temps quitte complètement l'affichage, la prochaine couleur (si activée) est sélectionnée pour le passage suivant.

Démonstration

Après avoir téléchargé le croquis :

  • L'ESP32-S3 se connecte au Wi-Fi
  • Le temps est synchronisé depuis Internet.
  • L'heure actuelle défile à travers la matrice RVB.
  • La luminosité change automatiquement entre le jour et la nuit.
  • La couleur du texte reste fixe ou alterne en fonction de vos paramètres.

Téléchargements et liens

Le code source complet est fourni ci-dessous cet article. Des liens vers les pièces, les outils et les fiches techniques sont disponibles ci-dessous cet article.

Images

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
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Fichier Fritzing