Les Carnets de Byfeel domotique , Objets connectés , DIY , Programmation, Nouvelles Technologies ….

NotifHeureXL

Lancement officiel de la nouvelle version du NotifHeure. Cette version baptisée NotifHeureXL permet de gérer, aussi les anciens notifHeures ( Attention au numéro des PIN des matrices, modifié par dèfaut ) .

Le firmware est sur mon github ,

  • Une interface améliorée , API amélioré
  • Affichage sur double ligne
  • nouveaux effets
  • Support Mqtt / domotique amélioré.
  • Multizone ( jusqu’a 8 )
  • Fonction Alarme/ Réveil
  • Support de notification visuelle ( led , neopixel , relais … )
  • Support de notification Audio ( buzzer / HP , MP3DFplayer , relais …. )
  • … et bien d’autres modifications

Cette nouvelle version , est amenée à progresser sur les mois qui viennent , afin de vous prévenir des nouvelles versions elle intègre un système de surveillance des mises à jour .

La liste des courses

Les composants indispensables. Le minimum pour fonctionner et installer le logiciel , dans sa version la plus basique.

WEMOS MINI

Options principales : Pour ajouter du confort à l’utilisation du notifHeure

  • Une photorésistance et sa résistance de 10kΩ ( utilise la seule entrée analogique du module ESP ) , afin de gérer la luminosité d’affichage en fonction de l’environnement.
  • 1 ou 2 boutons poussoirs ( sur lesquelles il est possible d’affecter certaines actions )
    • Afficher / Masquer les secondes
    • Afficher / masquer l’horloge
    • Réglage luminosité ( auto – mini – maxi )
    • On / off veilleuse ( si installé )
    • Affichage de l’historique
    • Démarrer Minuteur
    • Afficher / Masquer le minuteur
    • Action vers requête http
    • etc…
  • un module DHT ( 11 ou 22 ) pour la mesure de la température / humidité

Option secondaires : notification lumineuse et sonore


  • Notification lumineuse et Veilleuse : Le but des notifications lumineuses est d’émettre des signaux visuels ( sous la forme de flash , ou d’autres effets visuels , les sorties relais où digital permettent de relayer ses signaux sur des appareils extérieurs . La source lumineuse , sert aussi au mode veilleuse.
    • Led Interne + résistance ( exemple une led blanche avec résistance de 100Ω )
  • Notification sonore
    Le but des notifications sonores est d’émettre un signal audio , via un buzzer ou un mini HP de 8Ω , un DFPlayer si solution interne ou via un relais ou sortie digital pour activer un élément extérieur , comme une squeezebox ou une sirène par exemple.

L’assemblage des matrices :

Selon votre choix , une seule ligne ou plusieurs lignes toujours assembler les matrices ( Out vers In )

Si sur plusieurs lignes , les matrices seront câblées de cette façon.

Montage des matrices. Montage en Z ( voir détail dans mon article sur l’affichage XL )

Schéma principal de base avec les options principale ( photorésistance + Boutons )

Schéma base + options principale

Pour cette nouvelle version , j’utilise les sorties GPIO ( 13,14 et 15 ) , attention sur l’ancien notifHeure j’utilisais les sorties ( 12,13 et 14 ) . C’est l’entrée CS_PIN qui est impactée par ce changement.

Si vous envoyez ce firmware dans une ancienne version du notifheure penser à modifier cette Sortie ( comme indiqué ci dessous ).

#define CLK_PIN   14  // SCK (D5 wemos D1R1 ou mini )
#define DATA_PIN  13  // MOSI ( D7 wemos D1R1 ou mini )
//#define CS_PIN    15  // SS (  D8 sur Mini )
#define CS_PIN    12  // SS (  D6 sur Mini )  ---- Pour Notifheure 1

Le code

Pour des raisons de commodités , je suis passé sur la plateforme : PlatformIO , qui peut tourner soit sous ATOM , soit sous VSCODE ( les deux sont gratuits ) .

Comme je l’explique dans mon article sur Atom . J’y ai trouvé plusieurs avantages :

  • Syntaxe couleur / outil de recherche avançé
  • Fenêtrage , multi écran
  • Syntaxe automatique / rappel des fonctions existantes …
  • Gestion des mises à jours plus simples
  • Possibilité d’avoir des bibliothèques différentes pour chaque projet ( cela permet de gérer plusieurs versions de la même bibliothèque )
  • Gestion git depuis l interface.
  • Preview html / js
  • et bien d’autres avantages.

Le code est disponible sur mon github . Il peut être facilement adapté à l’interface Arduino IDE . J’ai gardé volontairement l’extension ino . Il faudra sortir les fichiers du dossier include , pour les mettre au même niveau que le fichier source.

Le code a été construit sur un Wemos Mini , pensez à ajuster le fichier platform.ini ( sous platformIO) , afin de l’adapter à votre configuration . Exemple, ci-dessous, de ma configuration. Pour le premier flashage , pensez à décommenter la partie USB ( vérifier le nom de votre port USB , dans l’onglet device de platformIO ) .
Par la suite , vous pourrez passer par OTA.

Récupérer les sources sur mon github

// exemple platform.ini
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
debug_tool = custom
;OTA
;salon
;upload_port = 192.168.x.x
;bureau
upload_port = 192.168.1.126
;usb
;upload_port = /dev/cu.wchusbserialfa1230

Liste des bibliothèques utilisés

  1. Les Bibliothèques systèmes ( ces bibliothèques sont incluses dans le framework de la carte )
    • esp8266mDNS.h
    • EEPROM.h
    • FS.h
    • SPI.h
    • ESP8266WIFI.h
    • WIFIUdp.h
    • ArduinoOTA.h
    • esp8266Webserver.h
    • SoftwareSerial.h
  2. Les Bibliothèques extérieures ( ces bibliothèques sont a ajoutés dans platformIO)
    • MD_PAROLA ( v3.3 )
    • MD_MAX72XX ( V3.2.1 )
    • NTPClient (V3.1.0 )
    • Adafruit NeoPixel ( V1.3.5 )
    • ArduinoJson ( v6.14.1 )
    • DFRobotPlayerMini ( V1.0.5 )
    • DHT Sensor Library ESPx ( V1.17 )
    • NonBlockingRTTTL ( V1.2.2)
    • Time ( V1.6)
    • WebSockets ( V2.2.0 )
    • WifiManager ( V0.15 )
    • ClickButton (2012.08.29)
    • Pubsubclient ( 2.7) à installer dans dossier lib ( pour modification paramètre MQTT_MAX_PACKET_SIZE)

Je vais maintenir cette liste à jour , au fur et à mesure des nouvelles versions et des validations du code. ( dernière mise à jour le 13/03/20).

Les parametres à ajuster

Avant de flasher , votre esp , voici la liste des paramétres à verifier et à ajuster si besoin :

Le mot de passe et login admin ( Pour les pages de configurations)

//***************************
// admin page config
//***************************
const char* www_username = "admin";
const char* www_password = "notif";

La configuration des matrices utilisés : Le type de matrice et le paramétrage des PIN

//****************************************************
// En fonction de vos matrices , si probléme         *
// d'affichage ( inversé , effet miroir , etc .....) *
// ***************************************************
// matrix   - decocher selon config matrix    ********
//#define HARDWARE_TYPE MD_MAX72XX::FC16_HW        //***
//#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW    //***
#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW //***
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW   //***
// ***************************************************
// Branchement des matrices  ( attention sortie différentes pour CS_PIN )
#define CLK_PIN   14  // SCK (D5 wemos D1R1 ou mini )
#define DATA_PIN  13  // MOSI ( D7 wemos D1R1 ou mini )
#define CS_PIN    15  // SS ( D10 sur D1R1  ou D8 sur Mini )
//#define CS_PIN    12  // SS ( D10 sur D1R1  ou D8 sur Mini )  ---- Pour NOtifheure 1
// Pour info ancienne version NotifHeure
//#define CLK_PIN   14
//#define DATA_PIN  13
//#define CS_PIN    12

Les options :
type de Sortie Lumineuse si existe , type de sortie audio si existe.

Numéro des PIN Associés à chaque options.

// Options matériels
#define LED_OUT 3 // 0 aucune , 1 Led interne , 2 relais ,3 Ring neopixel ,4 Digital output
#define AUDIO_OUT 0 // 0 aucun , 1 buzzer , 2 MP3player , 3 autres ( sortie relais ou digital)
#define BOUTON1 true
#define BOUTON2 true
//option NeoPixel
// Nombre de led si Ring ou strip neopixel en place
#define LED_COUNT  12
// **************
// *** PIN ******
// ***************
// ********** DHT
#define DHTTYPE  DHTesp::AUTO_DETECT    // ne pas toucher , sauf pour forcer détection si Auto ne marche pas
//#define DHTTYPE DHTesp::DHT11  // si DHT11
//#define DHTTYPE DHTesp::DHT12  // si DHT12
#define dhtpin 16 // GPIO16  egale a D2 sur WEMOS D1R1  ou D0 pour mini ( a verifier selon esp )
// Entree analogique pour auto luminosité
// PIN Analogique
#define PINAUTO_LUM A0  // ne pas modifier entrée pour photo résistance
// PIN AUDIO ( AUDIOPINTX = MP3PLAYER TX ou Sortie Buzzer ou sortie RElais ou sortie Digital)
// PINAUDIORX : uniquement pour MP3player
// PIN qui serviront pour la communication série sur le WEMOS
#define AUDIOPINRX 12   // Entree pour DFP audio uniquement
#define AUDIOPINTX 4    // Sortie principale pour AUdio
// LED PIN ou Relais Lum
#define LEDPIN 5    // Sortie dédié au notification lumineuse ( audio_out )
//Boutons
#define PIN_BTN1 2
#define PIN_BTN2 0
// *********** FIN PIN

Upload firmware et serveur web

Deux téléchargements sont necesaire pour le fonctionnement des NotifHeures .

  1. Le firmware

Pour le premier “upload” du firmware sous platformIO , vérifier ou modifier si besoin le fichier platform.ini, afin de prendre en charge le port USB sur lequel est relié le module ESP. Retrouvez cette information dans l’onglet “device” de platformIO.

Nom du device USB relié à PlatformIO

Une fois le firmware téléchargé , vous avez la possibilité de paramétrer le WIFI , mais vous n’aurez pas encore accès aux services WEB et dossier de paramétrage du NotifHeureXL.

2. Les données ( fichier DATA ) en mémoire SPIFFS

Ne pas oublier de télécharger aussi , les données du dossier DATA , dans la mémoire SPIFFS .
Pour cela , il faut cliquer sur le bouton “Run other target..” sur le côté gauche et sélectionner PIO Upload File System image.
Si vous avez une erreur , fichier data introuvable , assurez-vous bien que le dossier data soit à la racine du projet.

Premier démarrage.

Lors du premier démarrage , après flashage du firmware , si le WIFI n’a jamais été programmé, le module ESP va lancer WIFI Manager . Se connecter au WIFI du module , afin de configurer votre WIFI.

Une fois le WIfi configuré ,vous pouvez passer à l’étape suivante.

La configuration par défaut est programmé pour initialiser 4 bloc de matrices ( quelque soit le nombre que vous avez installé ). Ce qui permet de répondre à toutes les configurations possibles de 4 à 80 matrices .

Par défaut / première installation

Seules les 4 premières matrices sont prises en compte au premier démarrage.

Première configuration du notifHeureXL ( Page Setup )

Pour configurer le nouvel affichage , il suffit de lancer la page WEB du module , par défaut au premier lancement , la page de SETUP s’affichera.

Page 1 : Paramétrage du nom ou emplacement et du fuseau horaire

Page 2 : Configuration des Matrices ( zone horloge , Zones supplementaires , affichage double XL )

Information , sur la configuration des Zones

Lors de l’étape 2 , il est possible de configurer le type d’affichage et les zones à créer.

Par exemple : 16 matrices sur deux lignes de 8 .
Si on désire un double affichage XL. On renseigne le nombre total de matrices : 16 , la largeur de la zone horloge ( 8 ) et on active le mode XL ( cela va créé automatiquement une deuxième Zone de la même taille que l’horloge ) afin de doubler l’affichage. On obtient ainsi l’affichage suivant.

Affichage XL sur l’ensemble des Matrices

Comment sont calculé les créations de Zones ?

Le nombre de matrices définit l’espace total qui sera utilisé pour la création ( ici 16 matrices ) . La taille de l’horloge , définit la zone 0 qui sera dédié à l’affichage de l’horloge.

A ce stade , il reste 8 matrices de disponible ( 16-8 ) , qui peuvent servir soit a l’affichage de la zone XL soit à des zones supplémentaires. En activant le mode XL , je crée une nouvelle Zone de la même taille que la zone horloge( soit 8 aussi ) , il ne me reste donc plus de possibilités de créer une nouvelle supplémentaire .

Si je ne coche pas le mode XL , j’ai donc la possibilité de créer plusieurs zones supplémentaires. ( Volontairement limité à 2 matrices au minimum ) . Par exemple si je sélectionne deux Zones , le logiciel va créé une Zone 1 de 4 matrices et une Zone 2 de 4 matrices. Dans le cas de 3 zones , il tentera d’équilibrer les zones au mieux ( Zone 1 = 3 , Zone 2 = 3 et Zone 3 =2 ) , personnalisation de la largeur dans une prochaine version.

Pour continuer , sur cet exemple Ma première ligne sera donc dédié à la zone 0 pour l’horloge ( 8 premières matrices ) , et la deuxième ligne sera dédié aux deux zones de 4 matrices ( Zone 1 et Zone 2 ).

Si je souhaite que la zone 2 soit de 8 matrices et la zone 0 et 1 de 4 , il faudra passer par la configuration perso des zones et affecter la zone 0 à la zone 2 , et les zones 1 et 2 aux deux numéros disponible …. Pas toujours facile à suivre …. mais le mieux c’est de tester , pour bien comprendre …. pas de soucis , si vous avez fait n’importe quoi , il est toujours possible de réinitialiser la config des matrices par la commande :

http://Ip_notifheure/Config?setupreset=true

ou au niveau de la page SETUP , en cliquant sur le bouton RAZ SETUP

Quelques exemples de configuration possible avec deux lignes de 8 Matrices.

Page 3 : Activation ou Désactivation des options.

Page 4 : Enregistrement des Options

Une fois le SETUP terminé , le module va se relancer et afficher la page principale du NotifHeureXL.

Interface utilisateur

On retrouve une interface utilisateur , similaire à la version précédente , avec quelques options supplémentaires.
Notification / reveil / minuteur

A suivre ….

  • Option : Notification Visuelle
  • Option : Notification Audio
  • Documentation NotifHeureXL
  • Interaction , avec les box domotiques

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.

34 commentaires sur “NotifHeureXL”

%d blogueurs aiment cette page :