Projet d'Horloge Internet avec Matrice LED RGB ESP32-S3 - Affichage de l'heure et de la date en multi-couleurs

Projet d'Horloge Internet avec Matrice LED RGB ESP32-S3 - Affichage de l'heure et de la date en multi-couleurs

Horloge Internet RGB NeoMatrix ESP32-S3 avec affichage de l'heure et de la date

Ce projet est une horloge Internet avec matrice RGB améliorée ESP32-S3 qui non seulement affiche l'heure actuelle mais montre aussi périodiquement la date. L'ESP32-S3 se connecte au Wi-Fi, synchronise l'heure à partir d'un serveur NTP et fait défiler soitHH:MMou la date (par exempleSEP 21) sur une matrice NeoMatrix RGB de 8×8. L'affichage prend en charge le contrôle automatique de la luminosité jour/nuit et des couleurs RGB personnalisables.

ESP32-s3_animation_de_veille_internet

Ce que fait cette horloge

Après s'être connecté à votre réseau Wi-Fi, l'ESP32-S3 récupère l'heure locale actuelle depuis Internet. L'horloge fait normalement défiler l'heure, mais à intervalle fixe, elle passe à l'affichage de la date. La couleur du texte peut être fixée à une seule couleur ou passer automatiquement par plusieurs couleurs définies par l'utilisateur. La luminosité est automatiquement réduite la nuit pour rendre l'affichage plus agréable pour les yeux.

Bibliothèques utilisées

Ce croquis dépend des 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

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

Vous devez remplacer les identifiants Wi-Fi par les informations de votre propre réseau :

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

Important :Les SSID Wi-Fi sontsensible à la casse. Par exemple, 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 utilise un serveur de temps Internet :

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_secVotre décalage UTC en secondes (exemple : UTC-5 =-5 * 3600)
  • daylightOffset_secUtiliser3600pour l'heure d'été ou0si l'heure d'été n'est pas utilisée

Ces paramètres sont appliqués en utilisant :

configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);

Contrôle de la luminosité (jour / nuit)

Ce projet ajuste automatiquement la luminosité en fonction de l'heure de la journée :

const int DAY_BRIGHTNESS = 40;
const int NIGHT_BRIGHTNESS = 5;
const int NIGHT_START_HOUR = 22;
const int NIGHT_END_HOUR = 6;

Entre 22 h et 6 h, la luminosité est réduite pour rendre l'affichage moins distrayant dans des environnements sombres. Vous pouvez ajuster ces valeurs selon vos préférences.

Configuration de couleur RVB

L'horloge prend en charge à la fois le mode couleur fixe et le cycle automatique des couleurs. Les couleurs RVB définies par l'utilisateur sont stockées dans un tableau :

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
};

Chaque couleur utilise des valeurs RGB (Rouge, Vert, Bleu) allant de 0 à 255. En changeant ces chiffres, vous pouvez créer pratiquement n'importe quelle couleur pour l'affichage. SiuseFixedColorest réglé surtrue, l'horloge utilise toujours une seule couleur. Si réglé surfalsela couleur change automatiquement après chaque défilement complet.

Pour trouver rapidement des valeurs RGB précises pour n'importe quelle couleur que vous souhaitez, utilisez l'outil Sélecteur de Couleurs RGB :Sélecteur de couleur RVB.

Formatage de l'heure et de la date

Le temps est formaté commeHH:MMet stocké dans un petit tampon de caractères. La date est formatée en tant que chaîne en majuscules, telle queSEP 21L'écran passe automatiquement entre l'heure et la date à un intervalle fixe.

Logique de défilement sur un écran 8×8

Parce qu'une matrice 8×8 est trop petite pour afficher le texte complet en une seule fois, l'esquisse fait défiler le texte horizontalement. Une fois que le texte a complètement quitté l'écran, la couleur est mise à jour et le contenu passe entre l'heure et la date lorsque cela est nécessaire.

Démonstration

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

  • L'ESP32 se connecte au Wi-Fi.
  • Le temps est synchronisé depuis Internet.
  • Le temps actuel défile à travers la matrice.
  • La date apparaît périodiquement.
  • La luminosité s'ajuste automatiquement pour le jour et la nuit.

Téléchargements et liens

Le code source complet est fourni ci-dessous cet article. Des liens vers des pièces, des outils et des fiches techniques sont également 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
869-ESP32-S3 RGB LED Matrix Internte Clock Project 2 - Multi Color with Date
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Fichier Fritzing