Grande Horloge chronomètre Minuterie matrice LED RVB

Grande horloge chronomètre et minuterie à matrice LED RVB

Eteinte

Grande Horloge eteinte

Horloge

Grande Horloge chronomètre Minuterie matrice LED RVB

Chronomètre

Grande Horloge chronometre

Minuterie

Grande Horloge minuterie

En cours de rédaction

Motivation

J’avais une matrice de LEDs RVB WS2812B adressables en stock depuis 2021 et ne savais quoi en faire…

Description

La taille de cette hrologe (420 x 95 x 30 mm soit Largeur x Hauteur x Profondeur) la rend lisible de loin.


Trois modes sont actuellement implémentés :

  • Horloge
  • Mise à l’heure automatique via NTP 2 fois par 24H;
  • Passages à l’heure d’été et d’hiver automatiques;
  • Minuterie avec alarme sonore de 1s à 23h59’59 »;
  • Chronomètre au dixième de seconde jusque 23h59’59 » .

Matériel

  • Microcontrôleur esp32 avec WiFi;
  • Matrice LED RVB 32×8 (achetée sur Aliexpress);
  • Encodeur rotatif avec poussoir;
  • 2 boutons poussoirs NO;
  • Haut-parleur 8Ω 0,5W;
  • Panneau PLA blanc 1 mm; (acheté sur Amazon);
  • Boîtier réalisé en impression 3D;
  • 2 résistances 270 et 390 Ω;
  • 1 transistor 2N2222 ou équivalent;
  • Une alimentation MeanWell IRM10-05. Trouvée chez Reichelt.

Je privilégie ces alimentations car elles sont, entre autre, certifiées UL et TUV (Organismes américains et allemands de certification de sécurité).
Cela signifie que les produits concernés ont passé avec succès une série de tests destructifs recréant des conditions de fonctionnement anormaux et qu’ils n’ont représenté aucun danger pour les biens et les personnes.

Schéma

Schéma Grande horloge

Concernant le microcontrôleur: 2 GPIOs en sorties et 5 GPIOs en entrées. Si possible supportant les interruptions pour l’encodeur, mais ce n’est pas obligatoire. Cependant, Il envisageable d’employer un autre modèle que celui que j’ai utilisé.

Code

J’utilise VSCode avec l’extension PlatformIO comme environnent de développement. Toutefois, l’EDI d’Arduino s’il vous est plus familier, convient parfaitement.

platformio.ini :
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
  paulstoffregen/Encoder@^1.4.4
  thomasfredericks/Bounce2@^2.72
  madhephaestus/ESP32Encoder@^0.11.7
  adafruit/Adafruit NeoPixel@^1.12.4
  sstaub/Ticker@^4.4.0
monitor_speed = 115200
jagprod.h :
#ifndef jagprod_h
#define jagprod_h

// WiFi
#define sid "votre SSID"
#define wifi_sesame "Votre mot de passe WiFi"

// IP (Si utilisation en DHCP, supprimer cette partie)
const uint8_t ip[4] = {Adresse IP de l'hôte dans votre réseau};
const uint8_t mask[4] = {Masque de sous-réseaux};
const uint8_t ns[4] = {Adresse IP du serveur DNS};
const uint8_t gw[4] = {Adresse de la passerelle};

endif
Le fichier main.cpp :

J’ai volontairement réalisé le comptage du temps et la gestion du passage aux heures d’hiver et d’été sans l’aide de librairies existantes.
Il était important pour moi de bien maîtriser le fonctionnement. J’ai réutilisé ce code dans d’autres réalisations publiées sur ce site.


Le fichier comprend 1867 lignes et est abondamment commenté. Vous pouvez le télécharger ici.

Boîtier

Ce boîtier est composé de 5 parties :

  • Le cadre côté alimentation;
  • Le cadre côté commande;
  • Le dos côté commande;
  • Le dos côté alimentation;
  • Le dos partie centrale.
968.76 KB

Les deux éléments du cadre s’emboitent une fois la feuille de PLA blanche glissée dans la rainure.
Ensuite les trois parties du dos se fixent à l’aide de 18 petites vis.
Vous trouverez ci-dessous, les fichiers Freecad au cas où vous devriez adapter le design.

Grande horloge bouton
Grande horloge cadre 1
Grande horloge cadre 2

N’hésitez pas à laisser un commentaire et poser vos questions

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *