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.

Afficheur Led v2

– Une alimentation de téléphone portable classique

Des matrices LED

Afficheur Led v2

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).

Afficheur Led v2

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

le sketch en lui-même

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

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);
?>

Afficheur Led v2

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#

Afficheur Led v2

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.

Afficheur Led v2 Afficheur Led v2

 



Partager sur :

Infos de l'auteur

Je m'appelle Mathieu, j'ai 35 ans, et je vis à Limoges. Je suis prof d'EPS, et passionné de domotique. Amateur de DIY et de bricolage, j'aime aussi la cuisine, le bon vin.

42 commentaires

  1. 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 ?

  2. 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

  3. 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

  4. 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.

  5. 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

  6. 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

  7. 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# « 

  8. 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) {

  9. 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

  10. 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

  11. 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.

  12. 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.

  13. 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.

  14. Pingback: Projet : construire un afficheur LED XXXL – DomoLity

  15. 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 ?

  16. 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 ?

  17. 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?

  18. 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 ??

  19. 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.

  20. 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

  21. 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

  22. 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

  23. 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

Laisser un commentaire

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