Voici un projet qui est dans mes cartons depuis maintenant pas mal de mois et qui arrive enfin à un niveau de finition montrable. Le temps que j’y consacre est inversement proportionnel au temps passé à jouer sur console, ce qui en explique l’avancée laborieuse.

L’idée est d’avoir une horloge autonome multifonction utilisant un double afficheur led de 24x16 … J’avais déjà parlé de ces afficheurs lors d’un post précédent: achetés chez SureElectronics pour une bouchée de pain (14$), ils sont très bien finis, un peu inégaux au niveau de l’intensité des leds, mais globalement d’un excellent rapport qualité/prix.

Du point de vue fonctionnalité de l’horloge, il y a évidemment l’heure, la date mais aussi la température et l’humidité relative.

Je voulais aussi une horloge sympa niveau design qui n’ai pas trop l’air d’être un proto fait sur un breadboard à la va-vite. Je me suis donc procuré une plaque de plexi dans laquelle j’ai découpé une face avant et une arrière. Pour éviter les vis et boulons en façade, je me suis pris un kit de tarauds pour visser les tiges filetées directement dans le plexi sans qu’elles ressortent à l’avant … 

  Je n’avais jamais taraudé avant cela, mais finalement c’est simple et le résultat est très propre et solide. J’ai pris 1m de tige filetée que j’ai découpé pour avoir mon afficheur, le circuit et l’arduino pris en sandwich entre la face avant et la face arrière. La face arrière n’est pas encore placée actuellement, mais voici ce que donne la fixation de l’afficheur sur la face avant :

Pour surélever l’afficheur, j’ai découpé des petites sections de tube en alu afin d’éviter de voir le filetage. De plus, cela me permet d’avoir une distance fixe entre le plexi et le circuit imprimé. J’ai placé en tout 4 fixations par afficheur pour être certain que rien ne bouge au final. 

Pour ce qui est de la partie électronique:

  • un arduino comme élément central.
  • un DS1307 pour assurer une base de temps relativement solide et éviter de perdre l’heure en cas de coupure de courant.
  • un DC-SS500 de chez sure electronics pour la température et l’humidité
  • une photorésistance pour régler l’intensité de l’afficheur en fonction de l’éclairage ambiant.
  • un RFM12B pour la communication externe.

La communication externe n’est pas encore présente actuellement mais la place du chip est réservée sur le circuit. 

L’afficheur led est géré grâce à la librairie de Miles Burton que vous pouvez trouver ici. Son utilisation est simple et peut contrôler jusqu’à 4 afficheurs chaînés. Sur ce projet, je n’en ai que 2 chaînés et 4 fils sont utilisés : clock, data, CS1, CS2 … ainsi que l’alimentation, évidemment. J’ai juste fait quelques ajouts à la librairie pour avoir des fonts de taille double, vu que je compte pouvoir configurer le type d’affichage dans le futur. 

Voici le schéma complet du circuit (cliquez dessus pour l’avoir en plus haute définition) :

 

  Le tout a été monté sur un petit circuit expérimental, mais vu la simplicité du cablage, cela me semblait acceptable comme solution : 

L’arduino et le circuit sont posés sur du tape double face qui les maintiens en place mais surtout les isole des afficheurs.

Actuellement, l’heure est affichée en permanence sur la première ligne de texte, et sur la deuxième ligne, on a le jour/la date, l’humidité et la température en alternance. Le code est encore très expérimental … dès que celui-ci sera un peu plus finalisé, je le posterai.

Une fois la partie RF connectée, je compte faire communiquer l’horloge avec le reste de mes circuits. Je pourrai tracer les variations de température, humidité et luminosité sur mon poste central, et je pourrai aussi envoyer de commandes à l’horloge, telles que : 

  • remise à l’heure
  • changement d’affichage
  • message personnalisé 

A suivre dans un prochain post.