Table des matières:

Encore une autre horloge : 4 étapes
Encore une autre horloge : 4 étapes

Vidéo: Encore une autre horloge : 4 étapes

Vidéo: Encore une autre horloge : 4 étapes
Vidéo: L’horloge et les mystères du temps 2024, Juillet
Anonim
Encore une autre horloge
Encore une autre horloge

Comme on peut le voir dans mes téléchargements précédents, j'ai obtenu des cartes d'affichage à 7 segments à partir d'un ancien équipement de pesage.

Mon effort précédent utilisait un Arduino avec un module d'horloge en temps réel.

Ce Instructable utilise un ESP8266 D1 Mini connecté à un serveur NTP !

Le code est basé sur un exemple de la bibliothèque ESP8266WiFi.

Je ne vais pas entrer dans les détails concernant le câblage de l'affichage à 7 segments car il existe des dizaines d'exemples sur le net. Les 2 cartes que j'ai utilisent la puce de pilote de décodeur MAX7219, celles-ci ne nécessitent que 3 broches pour contrôler jusqu'à 8 x 7 affichages segments.

Je voulais aussi montrer la date, il fallait donc encore 3 épingles !

J'avais besoin de 7 autres sorties pour afficher le jour ! Pour pallier le manque de broches de sortie, j'ai choisi un écran Neo Pixel, 1 broche, 7 sorties !

Étape 1: le matériel

Le matériel
Le matériel
Le matériel
Le matériel
Le matériel
Le matériel

Pièces requises

Écrans 12 x 7 segments (dans mon cas, j'ai eu beaucoup de chance d'avoir quelques vieilles cartes de balances qui ont économisé beaucoup de câblage.

1 x ESP8266 D1 Mini OU tout ESP8266 avec 7 sorties numériques ou plus

2 x MAX7129 (Encore une fois, j'ai eu la chance d'avoir les panneaux d'affichage de la balance)

1 x écran droit 8 NeoPixel

2 x leviers de niveau

1 alimentation 5v

Étape 2: L'affichage du JOUR

L'affichage du JOUR
L'affichage du JOUR
L'affichage du JOUR
L'affichage du JOUR

Pour cela, j'ai utilisé une partie d'une ancienne carte de crédit pour la base, une carte épaisse (dans mon cas du papier photo 300 g/m²) et du ruban adhésif double face.

C'est juste 2 bandes de ruban avec des fentes coupées avec un cutter. L'espacement étant la distance entre les LED sur la carte NeoPixel.

De fines bandes de la carte sont utilisées pour créer un canal pour chaque jour.

Les noms des jours sont imprimés sur du ruban adhésif transparent avec une étiqueteuse Dymo.

Étape 3: Connexion et logiciel

La gamme de produits ESP8266 est excellente principalement en raison de

a) Ils ne coûtent pas cher

b) Ils ont besoin de très peu de composants externes

J'avais besoin de 5v pour les écrans et de 3v pour l'ESP, j'ai donc utilisé quelques sélecteurs de niveau avec une alimentation 5v.

Le MAX7219 n'a besoin que de 3 broches pour contrôler jusqu'à 8 écrans, ce sont les broches 1 (Din), 12 (Load / CS) et 13 (Clock).

Ceux-ci sont connectés via un levier de niveau.

Le code est comme suit:

// entrées: broche DIN, broche CLK, broche LOAD. nombre de pucesLedControl mydisplay = LedControl(3, 2, 1, 1)

LedControl datedisp = LedControl (7, 6, 5, 1);

Le nombre de puces est fixé à 1 car je traite les 2 écrans comme des éléments séparés plutôt que d'utiliser le DOUT et de les mettre en cascade.

Le NeoPixel est connecté à la sortie numérique 4

#définir le code PIN 4

#define NUMPIXELS 7 (en ignorant 1 des 8 LED)

Il y a quelques #includes qui peuvent tous être trouvés sur GitHub.

Le SSID et le MOT DE PASSE du routeur doivent être saisis et un serveur NTP sélectionné (j'ai recherché des serveurs NTP gratuits sur Google).

Étape 4: À la mise sous tension

À la mise sous tension, les LED NeoPixel sont ondulées, puis les écrans à 7 segments affichent en alternance « c » et « 8 » jusqu'à ce qu'une connexion soit établie avec le routeur.

Si tous les segments affichent une constante c8, cela signifie qu'une connexion au serveur NTP n'a pas été établie, une réinitialisation devrait résoudre ce problème.

Une fois la connexion établie, l'heure et la date sont affichées, le jour est indiqué par une LED bleue.

Conseillé: