Vous pensiez que ce blog était abandonné ? Et bien moi aussi :)
Et pourtant, je décide de lui redonner un peu de vie pour présenter un petit projet qui m'a occupé ces derniers temps : La reproduction d'une horloge design.

Description

Cette horloge se présente sous la forme d'un cadre carré d'environ 39cm de coté qui peut être posé sur un meuble ou accroché à un mur. La façade se compose de lettres intelligemment disposées qui vont permettre de donner l'heure.
myqlocktwo myqlocktwo
myqlocktwo myqlocktwo

Le principe est simple. l'horloge est composée d'une matrice de caractères qui vont s'illuminer pour écrire l'heure qu'il est. Par exemple "il est huit heures moins dix" ou "il est minuit et demi".
L'heure est ainsi donnée par tranche de 5 minutes. Quatre points lumineux à chaque coin de l'horloge vont successivement s'allumer pour donner l'heure à la minute dans cette tranche. Ainsi, si 3 coins sont allumés lors ce que le texte affiche "il est deux heures dix", il faudra comprendre "il est 2 heures 10 + 3 minutes".
De toute manière, qui se soucie d'avoir l'heure à la minute...
Cette horloge est astucieuse car elle dispose d'un capteur de luminosité qui va adapter la puissance de l’éclairage en fonction de la lumière ambiante. Cela vous permettra de ne pas être ébloui par son éclat en pleine nuit :)
Par ailleurs, la façade (ici en acier rouillé) est aimantée au cadre. Il est ainsi facile de la remplacer par une façade d'un autre style ou d'une autre langue...

Principe du projet

Ok, dans l'idée, il n'y a rien de techniquement très compliqué : plein de leds sont pilotées par un microcontrôleur avec un systeme de comptage du temps et alimenté en 220VAC. Le tout dans une jolie boite en bois et en fer :)
Tout cela ne devrait pas coûter le prix demandé par le revendeur du modèle original et mon petit coté geek y voit l'opportunité d'y ajouter plein de features cool comme :
  • Une connexion WiFi pour la synchro du temps et la configuration depuis une interface web.
  • Une matrice de leds RGB pour pouvoir changer la couleur de chaque lettre.
  • Plein de modes d'affichage cool que je pourrais développer au fil du temps.

Plusieurs objectifs à ce projet :
  • Faire un objet connecté (IoT) qui soit élégant et utile (et geeky).
  • Me remettre un peu dans la technique pour éviter de perdre la main.
  • M'occuper l'esprit pendant les longues soirées d'hiver.


Je vais, dans la suite de ce billet, expliquer chaque étape du projet afin d'en garder trace et de permettre à ceux qui le souhaiteraient de refaire l'horloge (et de l’améliorer).

Etape 1 : l'architecture et la recherche de solutions technique

Comme toute réalisation technique. Je commence par réfléchir aux différentes manières à ma disposition pour réaliser cet objet. Chaque manière apporte son lot d'avantages et d'inconvénients et il faut conjuguer avec tout ça pour obtenir un résultat fonctionnel, fiable, peu coûteux et dans le scope de mes compétences. D'autant que cette horloge est la sommes de compétences en mécanique, en électronique et en développement logiciel.

Je commence par définir les fonctions attendues et me met à la recherche de briques (électronique) capable d'y répondre.
Je passe volontairement sur le détail de ces recherches pour vous présenter directement les composants retenus. Mais sachez que cette étape est la plus longue dans la réalisation du projet. Il n'est pas question d'acheter du matériel qui, au final, ne s’avérera pas être adapté et qui finira à la poubelle.
De plus, je choisi de volontairement simplifier au maximum les domaines que je maîtrise le moins en privilégiant des solutions déjà intégrées.
Pour finir, je garde un œil en permanence sur les dépenses du projet. Nous y reviendrons plus tard.

Voici l'architecture fonctionnelle que j'ai retenue pour le projet :

myqlocktwo
  • Main CPU : NodeMCU V3 esp-12e. Il dispose de la puissance et des IO nécessaires aux fonctions que je souhaite intégrer. De plus il gère le wifi en natif et pour finir il est très abordable.
  • Led strip : WS2813 Strip. Chaque led peut être pilotée individuellement en RGB via un bus spécifique. La matrice de l'horloge est composée de 114 leds et il faut faire attention à l'espacement entre chacune d’elles sur le bandeau. Il doit être de 30leds/m en IP30. Il faut donc acheter 4m de bande.
  • Realtime Clock : RTC DS3231. Petit module d'horloge en temps réel fonctionnant sur batterie et communiquant en I2C.
  • Ambiant light sensor : GA1A2S100SS. Capteur de lumière.
  • AC/DC Power supply : 220VAC / 5VDC@5A. Dimensionné pour alimenter correctement l'ensemble des organes de l'horloge.


Sur la partie mécanique, il est important de réfléchir à comment vont être agencés les différents ensembles électroniques, à commencer par le ruban de led.
Chaque led doit éclairer seulement une lettre. Il faut prévoir un diffuseur pour chacune d'entre elle. De plus, l'espacement entre les lettres dépend aussi de leur taille et de l'espacement des leds sur le ruban.
J'ai cherché des réflecteurs de led adaptés et peu coûteux (car il en faut 114).

La nomenclature complète de l'horloge est donnée à la fin de ce billet.

Etape 2 : Conception mécanique


J'ai commencé à dessiner en CAO, sous Solidworks la façade de l'horloge.
Celle ci est composée de 3 couches :
  • Le support des réflecteurs qui sera fixé au cadre (MY_001).
  • Une feuille de papier calque pour diffuser la lumière émise par chaque led.
  • La façade en acier avec les lettres (MY_002).
Puis le cadre en bois est composé de 4 bords, 4 équerres et 4 supports. Les équerres et les supports servent à tenir la façade.

myqlocktwo myqlocktwo


Une fois la conception de ces pièces terminée, il faut réaliser les différentes mises en plan qui vont être envoyées aux différents sous-traitants afin qu'ils puissent les réaliser.
Libre à vous de choisir les sous-traitants de votre choix. Pour ma part, j'ai fait faire les pièces de la façade (MY_001 en MDF 3mm et MY_002 en acier 1mm) en découpe laser chez Sculpteo et la découpe des pièces en bois chez dejeuneraujardin (en frêne).
Les mises en plan sont disponibles en téléchargement en fin de ce billet.

myqlocktwo myqlocktwo myqlocktwo



Le rendu final de l'horloge doit ressembler à ceci :
myqlocktwo


Une fois le cadre assemblé et la façade en acier reçue. J'attaque le traitement de surface de la façade afin de lui donner l'effet rouillé recherché.
J'ai suivi une vidéo tutoriel sur Youtube que vous pouvez consulter ici : ROUILLER DE L'ACIER RAPIDEMENT TUTO.
Attention à faire cette opération dans un lieu aéré et avec les protections adéquates.

Voici l’évolution du rendu de la façade pendant l’opération de gauche (acier brute) à droite (acier après le traitement et application d'un fixateur) :

myqlocktwo myqlocktwo myqlocktwo myqlocktwo myqlocktwo


Etape 3 : Conception électronique (PROTOTYPE)


Update : Voir ci dessous pour la nouvelle version de l’électronique



La partie électronique se fait en 3 temps :
  • Test et validation de chacune des fonctions sur plaque d'essai.
  • Design de la carte électronique (en réalité il y en a deux).
  • Réalisation des cartes électroniques définitives.

Je passe volontairement sur la première étape et vais directement à la 2ème.
Je ne suis pas électronicien et je suis bien incapable de faire une conception de carte un temps soit peu évoluée et je ne parle pas du routage. Du coup, pour cette fois ci, j'ai fait le circuit à la main sur une plaque d’expérimentation.

Mais avant tout, il faut réaliser le design des cartes.
La première carte électronique est celle du capteur de luminosité qui sera installé derrière le symbole de la cloche sur la façade.
La deuxième carte électronique est celle où l'on retrouve le microcontrôleur et les autres organes.

myqlocktwo myqlocktwo


Puis on passe à la réalisation des circuits :
Ayant à disposition une camera thermique, j'en profite pour contrôler la consommation maximum du circuit (et me rend compte que mon alim 5V@5A passe de justesse) et la température des câbles et composants.

myqlocktwo myqlocktwo myqlocktwo
myqlocktwo


Update : Industrialisation des circuits électroniques

Ma réalisation a rencontré un grand succès dans mon entourage et plusieurs proches (collègues/amis/famille) m'ont demandé si je pouvais leur en faire. J'ai lancé la fabrication de 10 horloges supplémentaires.
Cette fois, pas question de faire le PCB à la main. A partir du design fait à l'origine, j'ai fait le routage des deux PCB que j'ai fait sous-traiter.
Je recommande le site EasyEDA qui dispose d'un outil de conception en ligne et propose - une fois la réalisation terminée - de fabriquer les circuits. Les prix y sont compétitif. J'ai payé 75€ (TTC+douane) pour 10 PCB de chaque.

myqlocktwo myqlocktwo
Les fichiers gerber sont disponible en téléchargement à la fin du billet

myqlocktwo myqlocktwo myqlocktwo

Etape 4 : Assemblage


Update : nouveau cadre voir ci dessous


Arrive maintenant l'assemblage de l’électronique dans le cadre.
Je commence par coller (vive le pistolet à colle) tous les réflecteurs sur le support (MY_001) puis je découpe le ruban de leds afin de pouvoir le disposer tel que chaque led coïncide sur son diffuseur.
Compte tenu de l'espacement entre les leds et de la taille des diffuseurs, j'avais prévu de positionner le ruban de leds en diagonale.
Chaque portion de leds est reliée aux autres par des fils soudés entre eux. Attention à utiliser du câble de bonne qualité et de section suffisante pour réduire au maximum l’atténuation en tension jusqu'au bout du circuit. Et chaque led est collée sur son diffuseur au pistolet à colle.
Attention à bien respecter le même ordre dans le collage des leds si vous souhaitez réaliser vous même l'horloge.

myqlocktwo myqlocktwo


Puis d'assembler la façade dans le cadre et de placer les différents circuits électroniques.
myqlocktwo myqlocktwo


Update : nouveau cadre


Pour la réalisation du lot de 10 horloges, je suis passé par un encadreur professionnel qui a pignon sur rue.
Le principe de fixation est complètement revu. Il n'y a plus besoin de fixer des aimants. La façade est plaquée contre le retour du cadre et maintenue par des tasseaux de bois fixé à l’intérieur du cadre par des vis.
myqlocktwo myqlocktwo



Etape 5 : Programmation logiciel


La petite carte "NodeMCU" s'appuie sur un petit microcontrôleur très populaire nommé ESP8266 et très peu coûteux (2€).
Compte tenu du grand intérêt de la communauté open-source pour ce petit processeur. Il est facile de trouver un grand nombre d'outils et de briques logicielles (= bibliothèques).
Du coup, cette carte est pleinement supportée par l’environnement Arduino. Les habitués d'Arduino ne seront pas dépaysés :)

Je ne donnerai pas le code source mais vous pourrez télécharger le programme compilé que vous n'aurez qu'à uploader dans le processeur pour pouvoir utiliser l'horloge.
Quand l'horloge démarre, elle charge sa configuration et se connecte au point d’accès Wifi enregistrée. Si elle ne le trouve pas ou si elle n'a pas de configuration enregistré, elle passe elle même en point d’accès.
Dans ce cas, depuis un ordinateur ou téléphone, connectez vous sur son réseau wifi (non sécurisé) et dans votre navigateur, saisissez l'url : http://192.168.1.1/.
De là, vous pouvez configurer les paramètres wifi de l'horloge pour qu'elle se connecte à votre réseau wifi. Dès lors, elle se mettra à l'heure automatiquement depuis un serveur NTP.


Pour uploader le firmware (fichier ".bin") la première fois dans le processeur, il vous faut installer l’environnement de developpement Arduino ainsi que le support de la carte électronique ESP8266 (voir dans le board manager). Voir documentation ici.
Connectez la carte NodeMCU en USB à votre ordinateur.
Ensuite, lancez un terminal windows (Win+R : cmd), et saisissez la commande suivante (après avoir adapté les chemins et le numéro de port COM) :
C:\Users\<USER>\AppData\Local\arduino15\packages\esp8266\tools\esptool\0.4.9\esptool.exe -vv -cd nodemcu -cb 115200 -cp "COM<X>" -ca 0x00000 -cf C:\<PATH>\MyQlockTwo_<DATE>.bin



Par la suite, il sera possible de mettre à jour le programme directement depuis l'interface web. Pratique pour rapidement installer les mises à jour qui contiennent de nouvelles animations :)

D'ailleurs en parlant d'animations, voici quelques vidéos de l'horloge en fonctionnement avec quelques modes que j'ai déjà implémenté :
Affichage des modes


Conclusions


Ce projet aura occupé mes soirées pendant 3 mois et m'aura coûté environ 150€. J'estime le temps passé sur ce projet à environ une centaine d'heures de travail.
Je mets l'ensemble des éléments à disposition de la communauté afin que vous puissiez la construire si le cœur vous en dit.

Après cet exercice, je suis globalement satisfait du résultat. Toute fois, il y'a quelques points à améliorer pour la prochaine version :
  • Les aimants ne sont pas assez puissant pour tenir correctement la plaque d'acier. Update : Plus besoin d'aimants.
  • Les ajustements de la façade par rapport aux bords sont trop juste. Il faut réduire un peu la taille de la façade pour laisser du jeu. Update : Plus de jeu visible grâce au nouveau cadre.
  • Le capteur de lumière n'est pas assez sensible en basse lumière, rendant l'adaptation de la puissance de l’éclairage des leds inefficace. Update : Pas de cache entre le capteur et la façade. Meilleure gestion logicielle.
  • Le capteur de température de la RTC est trop proche du transfo. Du coup il donne une température ambiante plus élevée qu'en réalité.
  • Le diamètre du réflecteur n'est pas assez grand pour illuminer entièrement la queue de la lettre "Q".
  • Remplacer les lettres inutiles de la matrice par des lettres qu'il n'y a pas afin d'avoir abécédaire complet. Update : Nouvelle façade.

N’hésitez pas à poser toutes vos questions en commentaires :)
Je peux aussi me proposer à vous en faire une si vous ne vous sentez pas de taille à la réaliser vous même.

Téléchargements