Pour les plus pressés , j’ai mis la version 2.6 en ligne sur mon github. Il y a sûrement encore quelques bugs , par ci par la , je compte sur vous pour me les remonter.
Je suis passé , directement à la version 2.6 , car en développant la 2.5 , mon cahier des charges à évolués , en découvrant comment modifier les pixels de l’affichage.
Bref , quoi de nouveau :
- Gestion des Zones ( 1 ou 2 Zones pour l’instant )
- Sauvegarde de la config des options en EEPROM , afin de récupérer ses réglages lors du redémarrage.
- Amélioration de l’affichage de l’horloge
- En Modifiant la police existante , afin d’avoir tous les chiffres de même largeur et ainsi éviter que l’horloge se déplace quand le 1 est affiché.
- Ajout d’une « Mini police » pour les chiffres 0 à 9 , afin d’afficher les secondes en plus petit.
- En affichage HH:MM , les deux points clignotent.
- Puis quelques améliorations du code …
Je dois écrire un tuto complet , dans les prochains jours , pour l’utilisation de ce script …
40 commentaires sur “DIY : Notif’Heure version 2.6 ( Smart Horloge et Notificateur )”
Salut Byfeel, je fais un second Radio Réveil pour mon fils cette fois-ci. J’aurais voulu ajouter un éclairage à LED J’ai dalleur trouver un EX de code que je voudrais intégrer dans ton Programme. j’ai beau retournée le problème dans tout les sens la led ne veux pas s’allumer.
Voila le code que je veux utiliser
https://github.com/marcobrianza/ClickButton/blob/master/Examples/MultiClicks/MultiClicks.ino
Ma LED est branché sur le GPIO5(D1) et le Bouton sur le GPIO4(D2) (WEMOS D1), si je bascule uniquement l’exemple tout fonctionne, mais pas une fois mixé avec ton code. Le bouton Fonctionne vus qu’il me retourne une Notif mais pas moyen d’allumer la Led.
Tu peux jeter un coup d’œil STP
Merci
Bonjour thierry ,
l’ajout d’une led est très simple , il suffit de définir les deux variables :
// the LED
const int ledPin =5; numéro de la broche 5 pour GPIO 5
int ledState = 0; etat de la led
dans la boucle setup
pinMode(ledPin,OUTPUT); pour activer le mode sortie sur la broche 5
Puis dans la boucle loop
dans la gestion des clicks : par exemple
case 1: // simple clic – allume ou éteint sur clic
digitalWrite(ledPin,ledState); // envoie info à led
ledState = !ledState; // inverse l’état pour le prochain appuie
clic=0; // remet a zero l’info clic
break;
ledState = !ledState;
Merci Byfeel, j’ai fait exactement la même chose, mais rien a faire elle veux pas s’allumer.
J’ai mis une notif sur le bouton (LED + STATUS), l’afficheur m’affiche bien le changement d’état, mais la led ne s’allume pas.
Tu peux essayer de faire un Test en Live STP
Merci
Si ta LED ne s’allume pas , c’est qu’elle doit être mal branché , sur mon module cela fonctionne.
Il faut que la cathode ( le plus + coté le plus long ) branché sur le +5 V , le moins sur ta résistance ( entre 100 et 300 selon le type de led ) , puis sur une entrée de l’esp.
Attention selon la led employée , les courants et les tensions ne sont pas les mêmes.
Sans passer par les boutons , si tu mets cette commande dans le setup , juste après l’instruction pinMode
digitalWrite(ledPin,LOW); // allume la led
ta led devrait être allumé au démarrage.
l’erreur peut provenir aussi , d’une mauvaise définition de ton numéro GPIO
consulte mon article suivant :
https://byfeel.info/projet-diy-wemos-d1/
tu constateras que le D1 , correspond en réalité au GPIO 01 et non au 5
donc définit plutôt :
const int ledPin =1 ; ou const int ledPin = D1;
Merci pour ton Aide, je suis au Taf pour le moment, je regarde de suite quand je rentre.
Le wemos D1 que je dispose : https://escapequotes.net/wp-content/uploads/2016/02/d1-mini-esp8266-board-sh_fixled.jpg
D1 = GPIO5
D2 – GPIO4
Merci encore
Bonjour,
Ca serait cool de pouvoir rajouter un petit jingle lors d’une notification.
Il existe une carte buzzer pour wemos, ne serait il pas possible de s’en servir?
Je n’y comprends rien en programmation, je n’arrive meme pas à trouver ce qu’il faut modifier pour que la notification reste afficher beaucoup plus longtemps tout en clignotant. Voire meme pourquoi pas qu’elle reste afficher jusqu’a ce qu’une autre notification vienne la remplacer et clignote en alternance avec la premiere.
Par exemple : si dans jeedom la variable courrier est a 1 -> Courrier clignote en permanence jusqu’a la releve et si entre temps la pression du puit baisse sous le niveau critique -> Pression Puit et Courrier clignote en alternance toutes les 5 sec.
Vous croyez que c’est faisable ?
Merci
A+
chris
Bonjour ,
Merci pour vos remarque. L’idees De départ est d afficher une horloge. Puis la possibilité d’afficher une notification a un moment donné.
Si l affichage de l horloge et de la notif sur le même écran ne me permet pas de garder la notif à l écran.
En revanche pour le double affichage , cela pourrait être envisagé. Je vais y réfléchir.
En ce qui concerne le buzzer j ai fait des essais avec un buzzer standard , mais le son n est pas assez puissant. Et cela complique pas mal.
Pour l instant je préfère passer par Jeedom pour déclencher une action sonore afin d avertir d une notification.
Pour modifier le temps de pause de l affichage ´ il faut jouer sur la variable pause Time.
Bonsoir,
Merci pour vos reponses.
Je suis en double affichage avec 4 matrices pour l’heure et 12 matrices pour les notifications.
Dommage qu’il soit pas possible de rajouter le code pour gerer le buzzer sur le gpio 15 afin que jeedom puisse envoyer l’action.
Encore merci et bonne continuation
cela fait un bel affichage …
Pour le buzzer j’y réfléchis , peut être que dans une prochaine version.
Encore moi, par contre, je ne sais pas s’il y a un soucis de mon côté, mais l’OTA n’est plus fonctionnel chez moi. Est-ce pareil pour vous ?
Pour l’OTA , il faut la première fois flasher le firmware en USB.
A partir de ce momment la , on pourra faire les mises a jour en OTA.
Pour que l’OTA soit pris en compte , il faut dans l’ordre ( apres chaque mise a jour ) :
– Démarrer le module
– Puis démarrer ensuite l’interface Arduino ( afin , qu’elle scanne le réseau et voit les modules disponibles )
Il se peut que suite à une mise à jour en OTA , cela ne fonctionne plus , il suffit de relancer l’interface Arduino pour résoudre le problème.
Perso chez moi jamais réussi a faire fonctionner.. il le trouve mais upload passe jamais , il faut installer python ou autre?
Vraiment au top, ça donne tellement d’idée. Cela fait 3 ans que je tourne avec mon petit affichage 7 segments, mais trop limité. Maintenant à voir la configuration que l’on peut faire.
Dans l’attente de la suite 😉
Du coup j’ai une première question
est il possible de faire des zones que se chevauchent ?
j’ai 8 modules
je veux créer une zone de 3 et une zone 5 modules ça ok j’ai réussi et ça fonctionne parfaitement
mais pour des messages plus longs et « importants » j’aimerai pouvoir l’afficher sur la totalité des 8 modules (donc une 3eme zone de 8 modules)
Pas possible de créer une troisième zone qui reprend des modules inscrit dans une autre zone. Par contre il doit être possible de redéfinir à la volée une zone complète pour afficher sur tout l écran par la fonction setzone puis à la fin de l animation redéfinir les zones en cours. …. a essayer
Super projet que j’ai découvert un peu par hasard, quel super boulot j’en ai rêvé et tu l’as fait, merci pour ton code et de le partager avec nous
J’ai compilé et envoyé dans un de mes clones chinois de WEMOS D1 mini et ça fonctionne nickel, me reste a appréhender son fonctionnement
encore merci !
De rien , cela fait toujours plaisir d’avoir des commentaires d’utilisateurs satisfaits.
Concernant le capteur de luminosité , peux tu me dire lequel tu as utilisé car j’ai commandé en kit et j’ai recu des 16-28-37-39-90, un a conseillé en particulier? merci
je suis sur des modèles très classique :
chez Amazon ( 0,59 cts le pack de 20 )
https://www.amazon.fr/Sodial-20x-Photorésistances-50-100-kOhms/dp/B00HUHC9D2/ref=sr_1_1?ie=UTF8&qid=1531135190&sr=8-1&keywords=photo+resistance
ok car moi j’ai les 4 la et je me demandais du coup laquelle etait la plus appropriée : fr.aliexpress.com/item/50-pcs-5-values-10pcs-LDR-Photo-Light-Sensitive-Resistor-Photoelectric-Photoresistor-Kit-for-5506-5516/32799772958.html?spm=a2g0s.9042311.0.0.27426c37X98O86
celle que j’utilise varie entre 50 ohm et 100 kohm , il semble que la
gl5539-150 (VDC) -100 (mW) -540 (nm) -30 ~ 90 (kOhm) -5.0 (MQ) -0.8/Mohm (min) -20 et 30 (MS)
soit la plus proche.
Cela devrait être bon.
Testé d’un autre pc ca compile Grrr je suis vert car je comprends pas pourquoi exactement la même chose fonctionne sur un pc et pas l’autre… merci pour l’avancement et la gestion des zones ca fait du bien de plus voir l’heure coupée en deux 😀 , je suivrai tout de même le tuto une fois pondu par tes soins, j’adore le boulot que tu entreprends ca va vraiment faire un radio reveil super sympa à utiliser chaque our , encore Merci 🙂
effectivement , bizarre ? Peux être un problème de driver ? As tu essayé avec la dernière version directement sur le site du constructeur.
il faudrait que je vérifie mais sur le pc qui compile ce n’est justement pas la dernière… enfin le principale est le joli affichage avec les secondes en petit c’est top et ca fonctionne bien, me reste à gérer les boutons et je pourrai finaliser la boite 🙂 on peut dire que ton article à fait des adeptes 🙂
effectivement , je n’aurais pas cru , que cela intéresse autant de monde.
C’est tout simplement génial et si on pouvait prévoir un sr04 pour remplacer un bouton par la suite et gérer des actions en fonction de la distance. La ça serait le pied. Mais au pire on peut le faire en externe par esp easy donc c’est un moindre mal.
Merci j’ai testé mais l’erreur subsiste avec ou sans la détection auto du Spi et ta lib a jour …Grrrr
en train de tester la nouvelle version.
J’ai intégré l’affichage au coin d’un tableau magnétique Ikéa découpé à la dremel.
https://www.ikea.com/fr/fr/catalog/products/10159443/
Je préfère effectivement cet affichage avec les secondes en minuscules.
Par contre j’avais intégré un capteur de température DS18B20.
La fonction « Tojeedom » qui remplace la fonction Sendtojeedom » me pose des problèmes de format de variable pour la récupération de la température.
cannot convert ‘String’ to ‘byte {aka unsigned char}’ for argument ‘2’ to ‘void ToJeedom(String, byte)’
Du coup j’ai gardé aussi la fonction Sendtojeedom.
Sinon je suis en train de tester le capteur adps 9960
https://learn.sparkfun.com/tutorials/apds-9960-rgb-and-gesture-sensor-hookup-guide
Il va me permettre d’interagir avec l’horloge de façon plus rigolote qu’un bouton.
J’ai un peu creusé et j’ai réglé mon petit pb
hello des news et photos de l’intégration?
bone idée le coup du tableau magnétique , si tu as une photo du rendu final .
Effectivement , j’ai simplifié la commande SendTojeedom , que je trouvais trop lourde .
Sous quel format envoyé tu tes données de température ? Je pourrais peut etre ajouté une option , dans l’envoie pour des données d’un autre type.
il a l’air génial ce capteur ! tiens nous informé 🙂
Décidément pas de chance de mon coté :
exit status 1
expected primary-expression before ‘(‘ token
ligne surlignée :
// Hardware SPI connection
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
regarde ce que tu as mis au niveau de ta définition de HARDWARE_TYPE
https://www.arduino.cc/reference/en/language/structure/further-syntax/define/
je n’ai fais que reprendre le code 2.6 sur le github donc cela devrait fonctionner non ?
#define HARDWARE_TYPE MD_MAX72XX:FC16_HW
si la methode SPI , ne fonctionne pas , tu peux essayer la connexion plus classique :
// Hardware SPI connection
//MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Si probleme avec detection auto SPI
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
decommente la deuxième partie.
oui c’est la première chose que j’ai tentée mais sans succès aussi …
Plusieurs bibliothèque trouvées pour « EthernetClient.h »
Utilisé : C:\Users\jon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\Ethernet
Non utilisé : C:\Program Files (x86)\Arduino\libraries\Ethernet
Non utilisé : C:\Program Files (x86)\Arduino\libraries\Ethernet
Non utilisé : C:\Program Files (x86)\Arduino\libraries\Ethernet
Non utilisé : C:\Program Files (x86)\Arduino\libraries\Ethernet
Plusieurs bibliothèque trouvées pour « MD_Parola.h »
Utilisé : C:\Users\jon\Documents\Arduino\libraries\MD_Parola
Non utilisé : C:\Users\jon\Documents\Arduino\libraries\arduino_793711
exit status 1
expected primary-expression before ‘(‘ token
Peux être un problème de librairies ?
Ci joint le lien vers ma bibliotheque ( mis a jour ) pour la 2.6 .
https://drive.google.com/open?id=1B-eSkXQWPgSR7JUGB64_o0fonamBFegJ
ca compile chez tout le monde?