ESPMetric_arduino_esp8266

ESPMetric – Afficheur domotique – ESP8266 et Arduino

L’écran est prêt, les premiers tests d’affichage sont plutôt concluant. Ok… mais il reste toute la partie électronique et logiciel pour que ça soit un vrai objet abouti. Dans ce billet, je vais vous montrer comment j’ai réalisé l’arrière du boitier, comment j’ai intégré l’électronique et l’intégration du premier code Arduino.

Comme dans la première partie, il y aura encore un peu de mécanique et d’usinage mais la grosse partie sera consacrée à la partie électronique. Comme je l’ai expliqué dans l’étude du projet, je pars sur un module NodeMCU à base de ESP8266. C’est un choix de coût et de simplicité. Grâce à ce module et Arduino, On va pouvoir réaliser rapidement un produit fini. De plus, la communauté est tellement importante que c’est aussi un choix de partage !

Si le projet rencontre un fort engouement, je dupliquerai cette partie mais avec un Raspberry Pi zéro W.

Ma note

Votre note

Click to rate this post!
[Total: 48 Average: 2.8]

L’écran

Comme je l’avais dit dans l’article précédent, j’ai eu des problèmes avec la dernière partie. A savoir posé le film solaire. J’ai enfin résolu mon problème et j’ai réussi à obtenir les résultats voulus. (Je ne m’y étais pas pris comme il le fallait et j’ai confondu l’utilisation du produit pour les vitres avec de l’eau savonneuse….)

Enfin, j’ai aussi trouvé une bonne méthode pour assembler le dernier plexiglas au boitier bois. Pour cela, on m’a conseillé d’utiliser un mastic/colle noir. La matière est assez extensible et peut corriger certains défaut de niveau (pas mon cas ;)).

Bref. Les erreurs et les doutes sont effacés. Passons pour de bon sur la deuxième partie du projet:

L’électronique !!!

Achats de la partie électronique

PrixPUAction
NodeMCU8.39 €8.39 €
Photoresistance1.42€ (20)0.07€
Boutons poussoirs5.6€ (10)0.56€
Plaques à trous3.56€ (10)0.35€
Film solaire noir 5% pour voiture6.9€ (10)0.69€
Module micro-usb1.32€1.32€
TOTAL12 €

Étude de la partie électronique

Dans cette partie, nous allons voir comment interfacer tous les composants sélectionnés précédemment. Rien de bien compliqué ou d’éléments qui sorte de l’ordinaire. Voici donc la schématique de l’ESPMetric.

Schématique ESPMetric

Schematique_ESPMetric

Schématique ESPMetric

Description :

VCC : 5VDC
Pullups (R2, R3, R4) : 10kOhms (Alors, j’ai enlevé les résistances de pullups sur le schéma parce que je me suis aperçu dans la partie Arduino que des pullups interne existait  pinMode(PINBTLEFT,INPUT_PULLUP). Donc comme ça simplifie le schéma, j’ai cru intéressant de les supprimer)
R1 : 10kOhms

Comme on peut le voir sur le schéma, nous avons 2 tensions de fonctionnement, 5VDC et 3.3VDC. Le NodeMCU possède un régulateur linéaire qui peut accepter jusqu’à 16 VDC max et délivre du 3.3VDC.

Le 5VDC servira à alimenter:

  • Le NodeMCU
  • La matrice de LEDs

Le 3.3VDC servira à alimenter :

  • La photorésistance
  • Les pullups des boutons. Les entrées ne sont compatibles qu’au 3.3VDC
  • Les données de la matrice de LEDs. (Même s’il faudrait réellement du 5VDC à l’aide d’un « level shifter » mais les GPIOs du NodeMCU ne délivre que du 3.3VDC)

Voilà le résultat une fois montée :

electronique_espmetric_avantFace avant de l’électronique sans le NodeMCU

Electronique_espmetric_arriereFace arrière de l’ESPMetric

ESPmetric_face_avant_nodemcuL’électronique de l’ESPMetric avec le NodecMCU

La photorésistance

Comme son nom l’indique, la photo-résistance est une résistance qui va varier en fonction de la luminosité ambiante. Ce n’est pas un élément très précis mais largement suffisant pour les besoins du produit.

photorésistancePhotorésistance

Comme je l’avais expliqué dans un article précédent, le patte A0 du microcontrôleur possède un convertisseur analogique de 10 bits avec une tension référence de 1V.

Le montage est donc un pont diviseur de tension afin de rendre les valeurs de la photorésistance exploitable.

La photorésistance a une valeur de 1MOhm. On ne pourra jouer que sur la résistance R1. Afin de trouver la bonne valeur, il est pratique de remplacer R1 par un potentiomètre … Bref c’est ce que j’ai fait… et finalement une valeur de 10kOhms pour R1 semble convenir… (Tout ça pour ça !! 😉

D’ailleurs, le principe de la photorésistance est que : plus il y a de lumière, moins il y a de résistance. En pratique, dans le noir, on a une résistance avoisinant les 600kOhm et à la lumière du jour, on est plutôt à 50kOhm. En fait, on s’aperçoit que l’on a surtout besoin d’être précis sur la luminosité quand elle est basse.

Bien entendu, on peut utiliser plein d’autres choses que la photorésistance (un peu obsolète et pas RoHS) comme une photodiode ou phototransistor … etc mais je n’avais que cette technologie sous la main.

Réalisation du fond du boitier

L’arrière du boitier est assez simple à réaliser puisqu’il faut couper le même type de planche que la partie avant mais en enlevant complètement l’intérieur en laissant 1 à 2 cm de bord. (j’ai utilisé une scie sauteuse pour découper l’intérieur.

arriere_boitier_creuseArrière du boitier brut

Ensuite il va falloir réaliser 4 trous:

  • 3 sur un côté
  • 1 sur le dessus

Sur le côté ce sera les boutons et sur la partie haute la photorésistance afin de mieux capter la lumière ambiante.

J’ai ensuite pris les deux partie en bois (face avant et face arrière) pour les assembler et les coller à la colle à bois:

collage des deux facesCollage des deux faces

En attendant (24 heures de séchage), j’ai préparé 3 boutons avec fils et gaine thermorétractable. Une fois le séchage terminé, j’ai disposé les 3 boutons dans les trous de côté.

J’ai laissé sortir le bouton de 1mm et comblé le trou de colle chaude.

Apres_collage_espmetric_boitier

apres_collage_espmetric_boitier_2Après collage + insertion des 3 boutons de côté

Une fois terminé, (sur un coup de tête), je me suis dit que le pin, c’était pas terrible niveau esthétique (j’aurais peut-être dû le faire avec un bois plus noble). Du coup, j’ai décidé de coller un champ blanc tout autour du boitier.

champ_blanc_boutonsChamp blanc + les 3 boutons avant d’être recouverts

Voilà ce que cela donne avec la partie écran posé simplement dessus.

avant_collage_de_lecranAspect général de l’ESPMetric avant collage de l’écran

Comme on peut le remarquer, l’écran est un véritable miroir, plus de bulle. (A force de faire et refaire, on s’améliore hein ?!).

Il ne me reste plus qu’à coller mon écran avec le mastic/colle noir.

Collage_de_lecranCollage de l’écran

PS : Surtout ne faites pas comme sur la photo (pour éviter les marques sur l’écran utilisez un chiffon sous les serres-joints.

J’ai mis beaucoup de serres-joint car il y a une légère pression de l’écran. C’est reparti pour 24heures de séchage… c’est long … surtout quand on est curieux de voir le résultat.

Enfin il reste à fermer l’arrière du boitier. Pour cela, j’ai décidé d’utiliser l’ancien écran (avec des bulles) et d’usiner un trou pour y placer un connecteur micro-usb.

Voici le résultat:connecteur micro-usbCollage à la colle chaude du module USB

connecteur_micro_usbRésultat à l’extérieur

L’alimentation de l’appareil se fera donc à l’aide d’un chargeur de téléphone (5VDC 2A). Pratique… on en trouve presque partout.

Résultat final du fond de boitier :

fond_de_boitier

Pour refermer le boitier il suffit de faire 1 trou à chaque angle et de visser la plaque arrière. N’oubliez pas de connecter le Micro-usb à la carte électronique !

Un Logiciel pour débuter

Bien entendu, je n’allais pas vous laisser pour la deuxième fois sans vous montrer un bout de logiciel pour piloter l’ESPMetric. J’ai donc décidé de vous montrer comment je vois les choses pour cet objet et comment je vais développer la partie logicielle.

D’ailleurs j’en profite pour ouvrir un github pour l’ESPMetric où je poserai mes développements et mises à jours

Voici les fonctionnalités que je vais vous présenter dans cet article:

  • Gestion des fonctions
  • Développement des icônes

Bien entendu, je ne vais pas systématiquement pas réinventé le fil à couper le beurre. Donc,pour les parties :

  • Configuration WiFi
  • Mise à jour OTA

Je vais utiliser du code de mes projets précédent. En effet, je vais utiliser la partie configuration (partie Web) du capteur de température WiFi.

Je vais plutôt insister sur la partie fonctionnelle de l’ESPMetric

Gestion des fonctions

Pour faire un bon ESPMetric avec Arduino, il vous faut :

  • Une bonne librairie pour gérer l’écran. J’ai utilisé la librairie Adafruit à savoir : Adafruit_GFX.h, Adafruit_NeoMatrix.h et Adafruit_NeoPixel.h
  • Un timer
  • Des interruptions pour les boutons
  • Une gestion des différentes applications que vous souhaitez insérer dans l’ESPMetric

La matrice de LED

[pastacode lang= »c » manual= »Adafruit_NeoMatrix%20matrix%20%3D%20Adafruit_NeoMatrix(32%2C8%2C%20PINMATRIX%2C%0A%20%20NEO_MATRIX_TOP%20%20%20%20%2B%20NEO_MATRIX_LEFT%2B%0A%20%20NEO_MATRIX_COLUMNS%20%2B%20NEO_MATRIX_ZIGZAG%2C%0A%20%20NEO_GRB%20%20%20%20%20%20%20%20%20%20%20%20%2B%20NEO_KHZ800)%3B%0A%0Auint16_t%20colors%5B%5D%20%3D%20%7B%0A%20%20matrix.Color(255%2C%200%2C%200)%2C%20matrix.Color(0%2C%20255%2C%200)%2C%20matrix.Color(255%2C%20210%2C%200)%2Cmatrix.Color(0%2C%200%2C%20255)%2C%20matrix.Color(255%2C%200%2C%20255)%2C%20matrix.Color(0%2C%20255%2C%20255)%2C%20matrix.Color(255%2C%20255%2C%20255)%2Cmatrix.Color(91%2C%2068%2C%2043)%2Cmatrix.Color(0%2C%200%2C%200)%7D%3B » message= »Matrice de LEDs » highlight= » » provider= »manual »/]

La création de la matrice se résume à cette fonction. Pour les couleurs, il suffit d’ajouter dans le tableau toutes les couleurs RGB que vous souhaitez.

Pour afficher quelques chose dans la matrice, il faut suivre le principe suivant :

[pastacode lang= »c » manual= »%20%20matrix.fillScreen(0)%3B%0A%20%20matrix.setTextColor(colors%5B0%5D)%3B%0A%20%20matrix.setCursor(X%2C%20Y)%3B%0A%20%20matrix.print(F(%22test%22))%3B%0A%20%20matrix.drawBitmap(0%2C%20positionReel%2C%20%20rond%2C%208%2C8%2Ccolors%5B0%5D)%3B%0A%20%20matrix.show()%3B » message= »Test affichage » highlight= » » provider= »manual »/]

Ça sera toujours pareil: on efface l’écran, on associe une couleur, on positionne ce que l’on veut afficher, on remplit la matrice et on l’affiche.

Le timer

Le timer va servir a gérer tous les défilements des applications de l’ESPMetric. En effet, c’est lui qui va cadencer toute la partie fonctionnelle.

[pastacode lang= »c » manual= »extern%20%22C%22%20%7B%0A%23include%20%22user_interface.h%22%0A%7D%0A%0Aos_timer_t%20myTimer%3B%0A%0A%0Auint8_t%20sec%3D0%3B%0Auint8_t%20minute10%3D0%3B%0Abool%20minOccured%3B%0Abool%20min10Occured%3B%0Avoid%20timerCallback(void%20*pArg)%20%7B%0A%20%20%20%20%20%20sec%2B%2B%3B%0A%20%20%20%20%20%20if%20(sec%3D%3D60)%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20minute10%2B%2B%3B%0A%20%20%20%20%20%20%20%20minOccured%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20sec%3D0%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(minute10%3D%3D10)%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20min10Occured%3Dtrue%3B%0A%20%20%20%20%20%20%20%20minute10%3D0%3B%0A%20%20%20%20%20%20%7D%0A%7D%0A%0Avoid%20user_init(void)%20%7B%0A%0A%20%20%20%20%20%20os_timer_setfn(%26myTimer%2C%20timerCallback%2C%20NULL)%3B%0A%20%20%20%20%20%20os_timer_arm(%26myTimer%2C%201000%2C%20true)%3B%0A%7D%20%0A%0Avoid%20setup()%0A%7B%0A%09%20user_init()%3B%0A%7D%0A%0Avoid%20loop()%0A%7B%0Aif%20(minOccured%20%3D%3D%20true)%0A%20%20%7B%0A%20%20%20%20minOccured%20%3D%20false%3B%0A%20%20%20%20%2F%2FACTION%0A%20%20%7D%0A%20%20if%20(min10Occured%20%3D%3D%20true)%0A%20%20%7B%0A%20%20%20%20min10Occured%3Dfalse%3B%0A%20%20%20%20%2F%2FACTION%0A%20%20%7D%0A%7D » message= »Timer » highlight= » » provider= »manual »/]

Avec ce code, vous pourrez donc gérer un timer d’une minute et de 10 minutes. Bien entendu, rien ne vous empêche de changer les délais.

Les boutons

La gestion des boutons est importante puisqu’elle vous permettra de gérer les menus, le défilement des applications ou tout simplement une action sur l’ESPMetric.

[pastacode lang= »c » manual= »%23define%20PINBTLEFT%205%0A%23define%20PINBTCENTER%204%0A%23define%20PINBTRIGHT%2015%0A%0Abool%20debounce%3B%0A%0Avoid%20leftButton()%0A%7B%0A%20%20if%20(!debounce)%0A%20%20%7B%0A%20%20%20%20%20debounce%3Dtrue%3B%0A%20%20%20%20%20action%3D2%3B%0A%20%20%20%20%20%0A%20%20%7D%0A%20%20%0A%7D%0A%0Avoid%20centerButton()%0A%7B%0A%20%20if%20(!debounce)%0A%20%20%7B%0A%20%20%20%20%20debounce%3Dtrue%3B%0A%20%20%20%20%20action%3D1%3B%0A%20%20%20%20%0A%20%20%7D%0A%7D%0A%0Avoid%20rightButton()%0A%7B%0A%20%20%20if%20(!debounce)%0A%20%20%20%7B%0A%20%20%20%20%20debounce%3Dtrue%3B%0A%20%20%20%20%20action%3D0%3B%0A%20%20%20%7D%0A%20%20%20%0A%7D%0A%0Avoid%20setup()%0A%7B%0A%09pinMode(PINBTLEFT%2CINPUT_PULLUP)%3B%0A%09pinMode(PINBTCENTER%2CINPUT_PULLUP)%3B%0A%09pinMode(PINBTRIGHT%2CINPUT_PULLUP)%3B%0A%0A%09attachInterrupt(PINBTLEFT%2C%20leftButton%2C%20CHANGE)%3B%20%0A%09attachInterrupt(PINBTCENTER%2C%20centerButton%2C%20CHANGE)%3B%20%0A%09attachInterrupt(PINBTRIGHT%2C%20rightButton%2C%20CHANGE)%3B%20%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%09if%20(action%3D%3D0)%0A%09%7B%0A%09%09%2F%2FACTION%0A%09%09debounce%3Dfalse%3B%0A%09%7Delse%20if%20(action%3D%3D1)%0A%09%7B%0A%09%09%20%2F%2FACTION%0A%09%09debounce%3Dfalse%3B%0A%09%7Delse%20if%20(action%3D%3D2)%0A%09%7B%0A%09%09%20%2F%2FACTION%0A%09%09debounce%3Dfalse%3B%0A%09%7D%0A%0A%7D » message= »Gestion des boutons » highlight= » » provider= »manual »/]

Voilà la structure du code simplifié. A noter la gestion (très sommaire) des rebonds sur les boutons ainsi que les pullups dans la configuration des pattes si vous n’avait pas de pullups physique.

Gestion des applications

[pastacode lang= »c » manual= »%0Avoid%20hours(void)%3B%0Avoid%20meteo(void)%3B%0Avoid%20rss(void)%3B%0A%0Atypedef%20void%20(*SimpleApplicationsList%5B%5D)()%3B%0ASimpleApplicationsList%20Applications%20%3D%20%7B%20hours%2C%20rss%2Cmeteo%20%7D%3B%0A%23define%20ARRAY_SIZE(A)%20(sizeof(A)%20%2F%20sizeof((A)%5B0%5D))%0A%0Avoid%20nextAppli()%0A%7B%0A%20%20nbAppli%20%3D%20(nbAppli%20%2B%201)%20%25%20ARRAY_SIZE(%20Applications)%3B%0A%7D%0A%0Avoid%20prevAppli()%0A%7B%0A%20%20nbAppli%20%3D%20(nbAppli%20-%201)%20%25%20ARRAY_SIZE(%20Applications)%3B%0A%7D%0A%0Avoid%20hours()%0A%7B%0A%09%2F%2FACTION%20D’AFFICHAGE%0A%7D%0A%0Avoid%20meteo()%0A%7B%0A%09%2F%2FACTION%20D’AFFICHAGE%0A%7D%0A%0Avoid%20rss()%0A%7B%0A%09%2F%2FACTION%20D’AFFICHAGE%0A%7D%0A%0Avoid%20loop()%0A%7B%0A%0A%09%20nextAppli()%3B%0A%09%20Applications%5BnbAppli%5D()%3B%0A%09%20delai(2000)%3B%0A%0A%7D » message= »Applications » highlight= » » provider= »manual »/]

Ce principe montre comment j’ai procédé dans la gestion des applications. C’est un tableau tournant contenant le nom de la fonction à exécuter.

Voici les grands principes de l’application de l’ESPMetric. J’ai volontairement simplifié le code pour que ce ne soit pas trop pompeux et plus clair (pas facile :(). Si vous êtes aguerri, vous pouvez allez voir directement le code source.

Développement des icônes

Pour créer des icônes et les afficher sur la matrice, je procède en plusieurs étapes :

J’utilise le site dot2pic.com pour transformer une image matricielle en tableau d’hexadécimal

 

dot2pic

Je sélectionne le nombre de colonnes et de rangées puis je sélectionne le tableau monochromatique en mode vertical.

dot2pic_code

Puis je dessine avec la souris l’image ou j’importe un BMP (plus complexe) et je converti en mode tableau.

C’est une méthode comme une autre. Vous pouvez très bien faire une matrice binaire et dessiner une icône par ce biais.

static unsigned char heart[] =
{ B01100011, B00000000,
B11111111, B10000000,
B11111111, B10000000,
B01111111, B00000000,
B00111110, B00000000,
B00011100, B00000000,
B00001000, B00000000, };

Bref, il ne reste plus qu’à utiliser la fonction de la librairie Adafruit pour l’afficher sur votre matrice comme suit:

[pastacode lang= »c » manual= »%0AAdafruit_NeoMatrix%20matrix%20%3D%20Adafruit_NeoMatrix(32%2C8%2C%20PINMATRIX%2C%0A%20%20NEO_MATRIX_TOP%20%20%20%20%2B%20NEO_MATRIX_LEFT%2B%0A%20%20NEO_MATRIX_COLUMNS%20%2B%20NEO_MATRIX_ZIGZAG%2C%0A%20%20NEO_GRB%20%20%20%20%20%20%20%20%20%20%20%20%2B%20NEO_KHZ800)%3B%0A%0Auint16_t%20colors%5B%5D%20%3D%20%7B%0A%20%20matrix.Color(255%2C%200%2C%200)%2C%20matrix.Color(0%2C%20255%2C%200)%2C%20matrix.Color(255%2C%20210%2C%200)%2Cmatrix.Color(0%2C%200%2C%20255)%2C%20matrix.Color(255%2C%200%2C%20255)%2C%20matrix.Color(0%2C%20255%2C%20255)%2C%20matrix.Color(255%2C%20255%2C%20255)%2Cmatrix.Color(91%2C%2068%2C%2043)%2Cmatrix.Color(0%2C%200%2C%200)%7D%3B%0A%0Astatic%20unsigned%20char%20cloud%5B%5D%3D%7B0x00%2C0x00%2C0x00%2C0x06%2C0x6f%2C0xef%2C0xff%2C0x7e%7D%3B%0Avoid%20loop()%0A%7B%0A%09matrix.fillScreen(0)%3B%0A%09matrix.drawBitmap(0%2C%20positionReel%2C%20%20rond%2C%208%2C8%2Ccolors%5B0%5D)%3B%0A%09matrix.show()%3B%0A%7D » message= »icone » highlight= » » provider= »manual »/]

Et voici un résultat :

Example_icone_meteoExample d’icône sur l’ESPMetric

Enfin une petite vidéo complète ou je montre le résultat final :

PS : Pour les applications j’ai utilisé du code provenant la station météo Adafruit. Donc, merci à eux ou lui, je ne sais pas…

Bon ok, ce n’est qu’un prototype, il y a encore des problèmes d’encodage sur les accents … Mais ce n’est pas encore terminé. Je tenais, tout de même, à vous présenter un produit abouti dans sa globalité et c’est pour cette raison que j’ai été un peu long pour sortir l’article 🙂

Conclusion

Comme je l’ai dit plus haut, voici un projet qui prend du temps (à étudier et concevoir) mais qui regroupe tout un tas de compétences intéressantes à mettre en œuvre. On a vu dans la première partie la réalisation de l’écran, qui a été pour moi le plus contraignant.

Cette fois-ci, ça a été beaucoup moins compliqué mais plus d’attente (séchage de la colle) et beaucoup de développement. En effet, le matériel est prêt et il nous tarde de voir le résultat final. Il faut alors tester toutes les fonctionnalités et parfois re adapté le matériel. Petit à petit, on s’aperçoit du résultat et c’est là que la magie du « faire soi même » fait son effet (ou pas).

Il est évident qu’il y a énormément d’améliorations à faire mais si je devais les appliquer, je n’aurai jamais sorti d’article. Tout ça pour vous dire que je suis conscient que ce n’est qu’un prototype,

Bref, je partage tout mon travail sur mon github. N’hésitez pas à faire vos remarques et contribuer au projet si vous le souhaitez. De mon côté, je vais continuer (selon mes besoins domotiques) à développer ce projet qui m’est très utile et je ferai des mises à jour de code sur le github.

Je referai surement un article beaucoup plus orienté logiciel sur ce produit et vous tenir informé de mon ressenti à l’utilisation.

 

55 comments

  1. Merci !!
    Ca fait un moment que je lorgne lametric mais comme toi je la trouve trop cher et trop cloud.
    J’espère que tu pousseras l’expérience plus loin avec RPI

  2. Superbe !
    Ca me tente bien, y a juste le pb de la matrice, n’ayant pas de CNC, c’est bloquant pour me lancer…
    Beau travail en tout cas et bien détaillé.

  3. Bonjour,
    Très joli projet – Félicitations.
    Pourquoi utilses-tu la lib Adafruit pour les WS2812 alors que fastLed est bien plus performante ?
    @+

    1. J’ai testé les deux librairies, notamment FastLED sur mon projet de décoration de Noël. C’est peut-être une question d’habitude mais je la trouve plus complexe à utiliser et puis je n’avais pas besoin de tout ce que peut offrir FastLED… Mais à terme peut-être que je changerai … ou pas 🙂

  4. super realisation je pense a faire +/- la même chose depuis un moment 😉
    mais j’ai un probleme avec le code (comme d’habitue 🙂 )
    In file included from /home/dede/Arduino/ESPMetric-master/ESPMetric/ESPMetric.ino:11:0:
    sketch/WorldClockClient.h:28:26: fatal error: JsonListener.h: No such file or directory
    #include

  5. Bonjour,

    Article génial qui s’est fait attendre. J’ai hâte de mettre en application vos trouvailles.
    Par contre je suis étonné de voir que vous arriviez à commander une matrice de 37×8 leds avec un simple chargeur de téléphone de 5v 2A… Cela m’arrange aussi, sauf que par mesure de précaution j’avais prévu une alimentation de 5V à 4A…
    Vivement mon retour.

    1. La matrice fait 32×8. 2A suffisent parce que je baisse énormément la luminosité et les 256 LEDs ne sont jamais allumés en même temps. En tout cas avec mon alimentation de bureau, je ne passe pas les 1,5A.

    2. Bonjour,

      chez moi, j’utilise un wemos D1 mini et la même matrice LED que ce projet, rien de plus. J’ai changé le câblage du connecteur femelle (vcc/sig/gnd par defaut), pour l’aligner sur 5V/gnd/d4 du wemos. Comme la patte 5V est directement liée à l’usb, pas de composant intermédiaire, ça simplifie le câblage.
      Mais attention à la puissance. Chaque LED consomme 60mA en 100% blanc, ça fait de 15A (60*256) !
      Cependant, en pratique, faire défiler un texte en blanc à 50% de puissance consomme en moyenne 500mA. Par précaution, j’utilise une alimentation Auley, qui est équipée d’un fusible thermique et la plupart du temps une luminosité à 30-40% suffit (j’utilise du papier calque, pas un film de voiture).

  6. J’adore ce projet ! Bravo pour votre travail !
    Effectivement, j’aimerais beaucoup avoir le guide pour faire la même chose à base de Raspberry Pi zéro W !

  7. Super job, on a hâte de voir la V2 (avec un RPI zero W ?) pour la salle de bains 🙂
    Pour moi (c’est à dire mes petites mains et mon outillage), le problème c’est la grille, mais avec du carton epais (2 ou 3mm), un cuter pointu et de la patience cela doit être faisable. Sinon peut être que les grilles pour essuyer les rouleaux de peinture ont (avec un gros coup de bol) la même taille/espacement ? Autre possibilité: une plaque de 1cm de bois et percer des trous à la perceuse colonne dedans.

  8. je l’ai installer et configurer (enfin presque) que met on dans « url » ?? moi j’y ai mis son ip future mais j’ai un gros doute !
    je valide la page de config et rien ??

    1. La partie configuration WiFi provient de mon capteur de température / humidité pour gagner du temps. Du coup la partie « url » ne sert à rien pour ce projet… Il suffit d’entrer son SSID et mot de passe et valider la page puis redémarrer. (Je crois aussi que c’est du DHCP).

      1. Hello,
        De mon côté, dès que je valide la config:
        HTTP server started
        délai dépassé
        Exception (3):
        epc1=0x4010010e epc2=0x00000000 epc3=0x00000000 excvaddr=0x40063739 depc=0x00000000
        ctx: cont
        sp: 3fff2830 end: 3fff2e00 offset: 01a0

        1. Ça ressemble à un dépassement mémoire… Assez courant sur de l esp8266. Ça m’arrive souvent. Il faut être super rigoureux sur les définitions de variables…

        2. Bon c’est réglé après un changement de câbles et la suppression du «  » dans URL. (Aucune idée si cela a joué) c’est ok.

          Horlogge, météo, le monde rss OK. Pas d’icone, mais surement du aux conditions climatique qui n’ont pas définition dans le code.

          Merci !

  9. Hello,

    Bon petit retour, j’ai tenté plusieurs impressions pour remplacer le pléxi à l’avant… Et avec un filament PLA transparent l’effet est plutôt pas mal…

    http://hpics.li/bd9749f

    La photo rends moins « bien » que la réalité. J’ai utilisé le STL suivant: https://www.thingiverse.com/thing:597935

    Que j’ai upscale dans Cura pour le passer en 7.1cm (par défaut) en 8.0 cm. Fill 100% – 0.8 épaisseur

    il faut je pense poncer un peu la face avant mais je suis très satisfait du rendu.

  10. Hey,

    Il y a-t-il une version avec le Raspberry de prévue ?
    Je ne suis pas à l’aise avec l’électronique…

    Cordialement.

          1. Bonjour,
            Je pense que si tu trouves une librairie toute faite, sur le Raspberry, pour gérer l’écran, le reste est beaucoup plus simple que sur un ESP32 ou ESP8266.
            Tu n’aurais à écrire que des scripts…
            Si tu trouves un outil pour gérer des matrices de LEDs, je suis preneur. (J’ai pas cherché)
            Merci pour ton partage !

          2. Yep vais chercher ça, penses tu qu’avec un pi zéro ces différentes fonctionnalités soit ajoutable ?
            – minuteur, chronomètre
            – Réveil, soit musical soit juste petit son tout bête.
            – Météo du jour t° et humidité et météo du lendemain via api probablement.
            – Jouer de la musique via stockage interne ou Bluetooth via le tel.
            – Mettre des petites animations ( tel que le tetris de la lametric time).

          3. Pour l’instant je n’ai toujours as trouvé comment contrôler une matrice avec un pi zéro du fait que « Linux n’est pas en temps réel » étant néophyte en matrice led je ne comprend pas tout, néanmoins la solution la plus simple que j’ai actuellement serait de contrôler un arduino nano qui lui s’occupe des Led grâce au pi. Je continu les recherches.
            Si la solution nano + pi zéro est faisable ça ne devrai pas être trop dur si ?

          4. Nano + pizero, pourquoi pas même si je trouve que ça complique car tu dois rajouter un canal de communication entre nano et pizero… par une COM ? plus tu vas multiplier les objets hétérogènes plus tu vas augmenter les probabilités de pannes. Mais ça reste faisable…

  11. Bonjour, j’essaye de faire mon horloge sur la base de ton programme et j’ai un problème avec le code, mon nodeMCU n’arrive pas à lancer le programme, je suis bloqué au boot.. :

    ets Jan 8 2013,rst cause:4, boot mode:(1,7)

    wdt reset

    Une idée ?

  12. Hello,

    Petit pavé dans la marre, je cherche une approche pour pouvoir envoyer (peut importe la manière) une message alphanumérique sur la matrice, j’essaye avec un écouteur web sur le port 80. Mais je ne sais pas trop comment intégrer le message quand il arrive pour le faire défiler…

    Merci

  13. Hi

    Please let me know how to connect the WS2812 strip
    The data connection for the strips of addressable
    255 254 … 223
    191 190 ….. 159
    127 126 ……. 95
    63 62 ………. 31

  14. Bonjour, j’ai fait le montage sans probleme sur un matrix de 30*10 mais deux lignes ne sont pas utiliser..

    Auriez vous des instruction plus detailler sur comment changer pour l’heure du quebec et la météo du quebec??

    Merci

  15. j’adore ce projet ! Merci
    Juste une question, je ne pas un expert en programmation. Mais est il possible d’inclure de l’IFTTT à votre projet ? Est ce possible ?

  16. salut ca marche 🙂 j’ai encore quelques petites questions:
    y a t il moyen de fixer l’ip ?? ou simplement de metre une mac … ?
    et au niveau du plus important de mon point de vue 😉
    le(s) flux rss a quel endroit doit on metres les adresse des flux pour personaliser l’affichage ??
    y a til moyen de activer/desactiver les infos (heure, meteo, rss) pour en supprimer un ou deux ??
    y a t il moyen d’afficher du texte venant par example de jeedom(serveur domotique) ??
    encore merci
    et Bravo pour ton boulot

  17. Hi
    I love this project! and i want make one. I already upload the code to ESP8266 but it is not connecting to my WiFi. Please help me where in the code i have to change my WiFi, SSID and WUNDERGRROUND API KEY.

    Thanks
    Gurjinder

Leave a Reply

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.