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.2.0 ) ( La bonne version est inclus dans mon code / dans repertoire LIB)
    • 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) à recupérer dans dossier lib ( pour modification paramètre MQTT_MAX_PACKET_SIZE)

Attention aux deux bibliothèques : NTPCLIENT et PUBSUBCLIENT , qui sont inclus dans le dossier LIB sur mon github.

Je vais maintenir cette liste à jour , au fur et à mesure des nouvelles versions et des validations du code. ( dernière mise à jour le 29/04/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

103 commentaires sur “NotifHeureXL”

Les commentaires sont fermés.