Salut à tous, c’est Mathieu. Aujourd’hui, je vais vous parler d’un afficheur LED à base d’une console matrix led. Oui, je sais, on a déjà parlé ici. Mais on va changer de méthode, ce sera l’afficheur LED v2. Nous allons utiliser un programme fait par Byfeel. Ce sketch est mis à jour régulièrement, évolue vraiment bien, et permet vraiment plein de choses. Je vais donc vous faire part de mon expérience sur la mise en place de ce projet d’afficheur LED.
Afficheur Led v2 : le matériel nécessaire.
Tout d’abord, nous allons faire un petit tour de ce que nous avons besoin.
– Un wemos, ou nodemcu.
– Une alimentation de téléphone portable classique
Afficheur Led v2 : le montage.
Ici, le montage est exactement le même que dans mon précédent article. Si vous voulez utiliser plusieurs matrices vous les soudez ensemble (ou vous utiliser des pins-header avec des cavaliers).
Ensuite, il vous suffit de connecter le Pin CLK sur le D5 de votre Wemos. Ensuite, vous mettrez le pin CS sur le D6. Enfin, vous connectez le pin DATA sur le D7. Et bien sur VCC ira sur le 5V du Wemos, et GND sur GND. Vous voilà prêt à aller plus loin…
Afficheur Led v2 : le sketch.
Ce sketch est vraiment bien fait et très intéressant car il offre plein de possibilités. En effet, de base, votre matrix led affichera l’heure. Ensuite, vous pourrez, soit via JEEDOM, soit via une console Web afficher tout et n’importe quoi sur son écran. Et cette fois ci, nous aurons tous les signes, accents, et autres disponibles. De plus, cet afficheur pourra se mettre à jour en WiFi via l’OTA. Vous aurez la possibilité ou pas de gérer la luminosité de façon automatique via une photorésistance. Ainsi que de gérer différentes actions via un bouton physique.
Le sketch est vraiment bien expliqué dans toutes ces lignes sur le site de Byfeel. Je vous laisse y jeter un œil si vous voulez plus de détails.
Afficheur Led v2 : le téléversement du sketch
Pour réaliser cette performance, il vous faudra :
– le logiciel arduino que vous trouverez ici
– les librairies utilisées pour ce sketch
Ensuite, c’est exactement comme sur le précédent article. Si vous n’êtes pas familier du logiciel arduino, je vous invite à relire l’article précédent. Mais pour résumer, il vous faut ajouter la gestion de notre carte Wemos en ajoutant cette source dans Fichiers > Préférences puis dans « URL de gestionnaire de cartes supplémentaires » et ajouter l’URL suivante afin d’ajouter la gestion de notre carte.
http://arduino.esp8266.com/staging/package_esp8266com_index.json
Ensuite, nous choisissons notre carte (pour moi Wemos), ainsi que notre port. Dans le sketch, il vous faudra modifier le nom de votre afficheur (ligne 17), le nombre de matrices que vous utilisez (ligne 75), indiquer si oui ou non vous utilisez un bouton poussoir (ligne 13), si oui ou non vous utilisez un module pour gérer automatiquement la luminosité (ligne 14). Enfin, vous pouvez aussi ajouter vos informations Jeedom afin que votre afficheur mette à jour automatiquement ses états dans Jeedom (ligne 97 à 105). Une fois ces informations rentrées, vous pouvez téléverser votre sketch sur votre Wemos.
Afficheur Led v2 : la console Web
Une fois téléversé correctement, vous redémarrez votre Wemos, et vous vous connectez au point d’accès qu’il va émettre. Connectez vous dessus, et entrez vos paramètres Wifi. Rebootez une dernière fois, et vous pouvez dorénavant vous connecter à votre afficheur directement en entrant son IP. Ici, vous avez la possibilité de gérer l’affichage ou non de l’horloge, de mettre les secondes. De plus, vous pouvez envoyer des notifications à l’afficheur. Vous avez même un mode « PACMAN » qui fait précéder la notifications d’un petit pacman qui défile sur votre écran.
Afficheur Led v2 : l’intégration dans Jeedom.
Maintenant, nous allons voir comment intégrer notre afficheur dans Jeedom. Il vous suffit de faire un script, enfin 3 scripts. Un premier pour gérer votre afficheur, et deux autres pour faire des scripts PHP. Ces scripts sont disponibles ici, car il y a parfois eu des problèmes de caractères transformés sur nos blogs…
Tout d’abord, dans Jeedom, vous allez sur le plugin script. Vous en créez un nouveau. Pour cela, dans le module Script de jeedom, nous allons créer une commande de type Script, puis dans le champs requête, vous cliquez sur nouveau, et choisissez un nom de fichier notifhorloge.php. Enfin vous copiez dans la fenêtre qui s’ouvre le script suivant.
<?php$IP=$argv[1];$notif=iconv(« UTF-8 », « CP1252 », $argv[2]); // conversion utf8 en ISO 8859-15 – gestion de €$notif=urlencode($notif);// Decoupage des options transmis dans titre sous la forme type = Animation ; lum = intensite de la lumiére//$Options = explode(« ; »,str_replace(‘ ‘, », $argv[3]));$Options=preg_split(« /[\,\;\.\:\-]/ », str_replace(‘ ‘, », $argv[3]));foreach ( $Options as $Value ){list($k, $v) = explode(« = »,$Value);$k = strtolower($k);$v = strtoupper($v);$result[ $k ] = $v;}// Affectation des differents index$type=$result[« type »];$lum=$result[« lum »];/* Lit un fichier distant sur le serveur www.example.com avec le protocole HTTP */$url=« http:// ».$IP.« /Notification?msg= ».$notif.« &type= ».$type.« &intnotif= ».$lum;$httpfile = file_get_contents($url);?>
Ensuite, nous aurons besoin d’un deuxième script. Vous allez donc en créer un deuxième de la même manière qui s’appellera setuphorloge.php dans lequel vous collerez le code suivant.
<?php$IP=$argv[1];$commande=urlencode(utf8_decode($argv[2]));$etat=urlencode(utf8_decode($argv[3]));$url = ‘http://’.$IP;if ($commande ==« INT ») $data = array(« LUM » => « manu » , $commande => $etat);else $data = array($commande => $etat);// use key ‘http’ even if you send the request to https://…$options = array(‘http’ => array(‘header’ => « Content-type: application/x-www-form-urlencoded\r\n »,‘method’ => ‘POST’,‘content’ => http_build_query($data),),);$context = stream_context_create($options);$result = file_get_contents($url, false, $context);//var_dump($result);?>
Enfin, le troisième script permettra de gérer l’afficheur en appelant les deux scripts précédents. Sur ce script, j’ai créée un champ pour entrer les notifications, un pour activer ou éteindre l’horloge, et un dernier pour la luminosité.
Dans un premier temps, pour le champ message, il faut prendre Script > Action > Message et coller (euh, vous remplacez par l’IP de votre afficheur quand même)
/var/www/html/core/php/../../plugins/script/core/ressources/notifhorloge.php 192.168.31.232 « #message# » « #title# »
Ensuite, pour l’extinction de l’horloge, il faudra utiliser Script > action > défaut et entrer
/var/www/html/core/php/../../plugins/script/core/ressources/setuphorloge.php 192.168.31.232 HOR off
Au contraire, pour l’allumage, et bien c’est la même chose mais avec on à la place de off …
Enfin, pour la luminosité, il faudra prendre Script > Action > Curseur, et entrer
/var/www/html/core/php/../../plugins/script/core/ressources/setuphorloge.php 192.168.31.232 INT #slider#
En option, vous pourrez mettre la gestion en automatique de la luminosité, ainsi que l’affichage des secondes.
HOR : ( on ou off ) pour afficher ou non l’horloge
SEC : ( on ou off ) pour afficher ou non les secondes
LUM : ( auto ou manu ) pour activer ou désactiver le mode auto pour la luminosité
INT : ( une valeur de 0 à 15 ) pour le réglage de la luminosité
Afficheur Led v2 : conclusion.
Pour conclure cet article, bien évidemment mes remerciements vont vers Byfeel qui nous permet d’avoir une solution très abordable, bien que très paramétrables. En effet, vous avez donc la possibilité d’afficher tout un tas d’informations récupérées sur Jeedom. Je vous mets quelques photos de réalisations possibles avec ces afficheurs. A vous de jouer maintenant.
45 commentaires
Ca tombe bien je viens de récupérer tout le matos pour faire la b2 du coup ça sera une v2
Me manque qu’un boîtier. D’ailleurs il y a pas des modèles stl à imprimer ?
Moi j’ai testé avec juste un boîtier classique que j’ai dessiné sur thinkercad. Mais il faut d’abord tester l’épaisseur necessaire de ton filament pour laisser passer la lumière.
Top …
Le 1er fonctionne déjà super bien mais l’ajout de l’horloge..good idea
Je crois que je vais bien m’amuser encore 😉
Merci
Bonjour
je tourne depuis 2 heures sur l’intégration dans jeedom, impossible de comprendre ce qu’il faut créer dans les scripts….suis le seul, un peu d’aide SVP
Qu’est ce que tu n’arrives pas à faire ?
Tu as 3 scripts à créer. Les deux premiers avec les blocs de code que j’ai mis, et le troisième qui les appele…
Bonjour Mathieu
je ne suis malheureusement qu’un tout petit bricoleur, ne maitrisant pas grand chose en info. de ce fait ce qui pour certains et évident est pour moi un vrai casse tête. pour cette installation, je ne maitrise pas du tout le plugin script, et je n arrive pas à savoir où mettre les infos dans la création de 3 scripts, création d’une commande script, nommer le script, édition du script, requête, …je suis perdu
Bonjour et merci pour ce nouveau tuto. Je vais migrer mon afficheur avec cette nouvelle version plus souple en effet.
Je pense qui y a une petite erreur, le deuxième script doit se nommer setuphorloge.php et non notifhorloge.php ? Là, les deux s’appellent notifhorloge.php sauf sur la capture écran.
Merci encore pour le partage.
C’est corrigé merci beaucoup
re
peux-tu me dire à quoi ça correspond dans Jeedom cela, c’est les ID des scripts ?
String idHor = « 10821 »;
String idLum = »10822″;
String idSec = « 10823 »;
String idAuto = »10834″;
merci encore
oui, exactement
Bonjour
je suis arrivé à créer les scripts, les commande pour la mise en ON et OFF de l’horloge, des secondes et de la luminosité fonctionnent bien, il reste un point noir et pas des moindres, les messages ne passent pas, je vois uniquement défiler un guillemet de la droite vers la gauche……
Une idée, d’avance merci
Retape à la main les guillemets, tu verras que ça fonctionne, je pense que tu as fait un copier coller du blog.
Non j ai récupéré sur le github
Mais je vais tout reverifier
Merci
C’est dans la commande script que tu as créé. « #message# » “#title# »
chez moi ça fonctionne avec des » à la place de «
/var/www/html/core/php/../../plugins/script/core/ressources/notifhorloge.php 192.168.x.x « #message# » « #title# «
Bonjour,
tapé à la main et cela fonctionne. déroutant ces erreurs non visibles de copier coller. merci du coup de main
Bonjour et merci pour le tuto, mais cela ne fonctionne pas chez moi j’ai cette erreur au moment de compiller.
C:\Users\Alex\Documents\Arduino\libraries\NtpClientLib\src\ESPNTPClient.cpp:52:6: error: redefinition of ‘bool NTPClient::setNtpServerName(String, int)’
bool NTPClient::setNtpServerName(String ntpServerName, int idx)
^
In file included from C:\Users\Alex\Documents\Arduino\libraries\NtpClientLib\src\ESPNTPClient.cpp:34:0:
C:\Users\Alex\Documents\Arduino\libraries\NtpClientLib\src\NtpClientLib.h:157:10: error: ‘bool NTPClient::setNtpServerName(String, int)’ previously defined here
bool setNtpServerName (String ntpServerName, int idx) {
Bonjour et merci pour le tuto, je n’arrive pas à compiler et téléverser :
Plusieurs bibliothèque trouvées pour « EthernetClient.h »
Utilisé : C:\Users\Alex\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\Ethernet
Non utilisé : C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\libraries\Ethernet
Non utilisé : C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\libraries\Ethernet
Non utilisé : C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\libraries\Ethernet
Merci
bonjour,
pour une matrice comme sur le lien on peut afficher combien de caractères svp ?
merci
Bonjour j’ai un soucis au niveau de la compilation il me dit : error: redefinition of bool NTPClient setNtpServerName
Merci
j’ai fait ma petite video : https://youtu.be/1wEQOMlfaFo
les caractères non pas de tailles fixes donc c’est pas evident a dire
pour info sur ma video j’ai 2 modules de 4
Pour les pb de compil, il faut bien suivre les étapes et ne pas oublier de rajouter les lib fournies au bon endroit sur mon Mac ca se trouve dans Documents/arduino/librairies
Un grand merci donc pour ce tuto. J’ai travaillé hier soir dessus pour l’intégration dans Jeedom, tout fonctionne bien, dans les deux sens, donc retour dans Jeedom des infos. J’ai également fait pour piloter cela avec la google home via IFTTT et c’est ici que c’est important les retours pour que les commandes se mettent à jour. Donc, migration de mon afficheur V1 en V2 en finalité. J’ai aussi fait divers scénarios comme l’horloge qui s’éteint dans je regarde la TV le soir, ça tire trop les yeux.
Grand merci à l’auteur du sketch.
Sur la page web, je peux afficher sans soucis l’apostrophe mais pas avec jeedom , avez-vous aussi ce problème ? Le reste fonctionne.
Un grand merci pour le tuto. Tout fonctionne parfaitement pour moi. L’intégration Jeedom est parfaite. J’ai une interrogation, c’est comment utilisé les paramètre pour la config du type (PAC, BLINDS, …) et de l’intensité du message. Ça semble prévu dans le script, mais je ne vois pas comment les intégrer/utiliser dans les scénarios/commandes.
Merci a Mathieu pour le tuto et a Byfeel pour la Notif’Heure.
bonjour merci pour ce tuto. ça marche nickel. est ce qu’il y a (ou aura dans le futur) une solution pour afficher en permanence une info (comme des températures) pas juste le temps d’un passage.
Je pense qu’il faut demander directement à byfeel sur son blog…
Pingback: Projet : construire un afficheur LED XXXL – DomoLity
Bonjour, super mise à jour !
Par contre mon LCD « siffle » lors de l’affichage de l’horloge ou d’un message déroulant. Si je l’éteins par la commande Horloge_OFF, plus de bruit.
C’est l’électronique qui déconne ?
Oui, certainement les Contacts qui déconnent… Revérifie tes branchements…
Il suffit de mettre dans le titre « type=pac » pour pac-man.
Bonjour merci beaucoup pour ton tres bon tuto, j’ai pu monter une version XL et j’attends d’autres matrices pour faire une version XXXL comme ta dernière vidéo. J’ai rédigé un article sur mon site http://www.domolity.fr dédié à la communauté des sourds, ca nous intéresse énormément car on va pouvoir voir des notifications écrites en dessous de la TV dans la cuisine ou sur l’écran PC 😉 J’ai un boitier Smart Led Messenger mais le sketch de Byfeel est bien meilleur ! Je vais essayer d’apprendre un peu plus sur le site Byfeel et voir comment je peux l’intégrer dans eedomus. Par contre est ce que c’est normal que ca s’affiche a l’envers ?
J’ai tout suivi et tout marche… Merci bcp pour ton tuto.
Reste à faire une boite pour mettre tout ça en format WAF 🙂
Merci beaucoup,
Bonjour,
J’ai l’erreur suivante quand je veux sauvegarder mon équipement: Erreur dans l’exécution du terminal, la valeur retournée est : 1. Détails : Array ( [0] => Could not open input file: /var/www/html/core/php/../../plugins/script/core/ressources/setuphorloge.php )
Pourtant j’ai bien copier le code depuis le git…
Une idée d’où cela peut venir?
bonjour et merci pour ce tuto et merci a byfeel aussi
j’ai juste un petit probleme c’est que l’ordre d affichage sur les matrices n’est pas correcte pour afficher 20:45 il met 5 :420 2 je precise que je n’ai qu’un afficheur (1×4 matrice)
je voulais aussi savoir si je mettais 4×4 matrice en 2 lignes si il y avait moyen d afficher l’heure en grand sur 16 pixels de haut et le reste sur 8 pixel de haut en 2 lignes de textes ??
Bonjour, je vois sur la vidéo d’un « pseudo » verre poli utilisé sur le devant, afin d’éviter de voir les matrices directement. Savez-vous où je peux en trouver ? Merci de votre aide.
Bonjour, ayant rencontré le même soucis, ce ne sont pas des guillemets mais des » (touche avec chiffre 3 sur clavier azerty)
Bonjour, très bon tuto, intéressant comme tout sur ce site d’ailleurs :). Merci.
Concernant l ‘afficheur LED je pèche des le départ, à la compilation dans arduino ide,j’ai en permanence « erreur de compilation pour la carte wemos D1 R2 & mini ». j’imagine un probleme dans une bibliotheque mais plusieurs jour s a tout refaire plusieurs fois. je dois louper un truc si pour vous ca marche. une idée? merci par avance
salut Ghislain est-ce que c’est a moi que tu parle ??
si c’est le cas je suis belge sur (mon clavier n’est pas le meme que les votres ex: 8=! )
j’ai (« ) en touche 3
merci
Bonjour,
Tout d’abord il faut éviter de mettre a jour les bibliothèques si l’application IDE Arduino demande, ca coince tout, il ne faut utiliser que les bibliothèques de Byfeel
Ensuite il faut voir si ce n’est pas un probleme de la carte j’avais décelé une erreur dans l’un des tutos, sur l’url dans les préférences IDE Arduino :
http://arduino.esp8266.com/staging/package_esp8266com_index.json trouvé sur le tuto de Byfeel
http://arduino.esp8266.com/stable/package_esp8266com_index.json trouvé sur le site officiel
STABLE et STAGING
Il fallait mettre stable, mais attention il faut aussi vider le dossier ArduinoData et relancer l’application, retélécharger les drivers des cartes.
Enfin a tout le monde pour les pb de Notif’Heure, allez signaler dans les commentaires du blog de byfeel, il pourra vous répondre si le pb n’est pas connu.
https://byfeel.info/notifheure-v3-diy/#comments
Bonjour,
Est-ce aisé de pouvoir envoyé un texte non pas par l’ESP mais de manière filaire depuis une RS232 (et un Arduino par exemple) ?
Merci pour vos conseils
Bonjour,
Le github pour récupérer le sketch ne semble plus fonctionner. Auriez vous un lien pour télécharger ?
Merci d’avance
regarde par la c’est la V3 maintenant
https://github.com/byfeel/Notifheure
merci pour le tuto. Le json pour ajouté la carte esp dans ide n’est plus le bon.
Celui ci est valide: https://arduino.esp8266.com/stable/package_esp8266com_index.json