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

Notifheure XL : Tutoriel les premiers pas de la version beta

Comme promis , un tuto pour expliquer , comment fonctionne cette nouvelle version . Cette version sera capable de tourner sur les anciens Notifheure ( sous réserve d’une ou deux petites modif) , pour ceux qui désirent la tester . Mais les fonctions principales devraient fonctionner.

Cette version , est pour l’instant en cours de developpement , elle sera mise a jour au fur et a mesure de mes dispos ( allez sur mon tweeter ou mon github , pour être informé des mises a jours ) . Il se peut que la version que vous telecharger aujourd’hui soit differentes de celle décrites dans cet article , mais les premiers pas restent les mêmes. Pour les grands changements , je ferai un nouvel article.

Fonctionalités inactives ou à venir

  • Les menus module , dht et admin ne sont pas actifs pour l’instant
  • Page config administrateur ( la configuration par défaut se réalise pour l’instant directement dans le code )
  • Gestion des relais
  • historique
  • Gestion partiel des boutons
  • … et surement plein d’autres choses que j’oublies.

La liste des courses

Le minimum pour installer le logiciel , dans sa version la plus basique.

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

  • Une photo résistance et sa résistance de 10kΩ ( utilise la seule entrée analogique du module ESP )
  • 1 ou 2 boutons poussoirs

Option secondaires : température / notification lumineuse et sonore

  • Un module DHT ( pour la température / humidité ) – Option activé
  • Notification lumineuse
    Le but des notifications lumineuse et d’emettre des signaux visuels ( sous la forme de flash , ou d’autres effets visuels , les sorties relais ou digital permettrons de relayer ses signaux sur des appareils extérieurs .
    • Led Interne + résistance ( dans mes exepmles une led blanche avec résistance de 100Ω )
    • Neopixel ( Ring ou strip )
    • Relais / sortie digitale

Pour l’instant , je n’ai pu faire des test qu’avec une simple LED ( possibilité de varier l’intensité lumineuse automatiquement ) et un strip ou ring neopixel ( effet couleur / flash / etc … )
Ces deux équipements permettent d’activer la fonction veilleuse.

  • Notification sonore
    Le but des notifications sonore et d’émettre un signal audio , via un buzzer ou un DFPlayer si solution interne ou via un relais ou sortie digital pour activer un élément extérieur , comme une squeezebox ou une sirene par exemple.
    • Buzzer
    • DFPlayer
    • Relais / sortie Digitale

Pour l’instant , cette partie est encore en test . Le buzzer , a tendance à interferer avec l’affichage matrice ( il faut que je corrige ça ) , le DFPlayer est fonctionnel , mais toutes les options ne sont pas encore utilisé. Les fichiers MP3 , sont à mettre dans le dossier 001 pour les notifs et le dossier MP3 pour les réveils ou Alarme.

Je réaliserai , un article sur chacune des notifications , car il y a beaucoup de possibilités. Les sorties GPIO 4, 5 , 12 et 16 sont réservés à la gestion de ces notifications.

Le cablage

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

Schéma principale de base avec les options principale ( photorésistante + 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 sortie ( 12,13 et 14 ) . C’est l’entrée CS_PIN qui est impacté par ce changement.

Si vous envoyez ce firmware dans une ancienne version du notifheure pensez à 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 ( D10 sur D1R1  ou D8 sur Mini )
#define CS_PIN    12  // SS ( D10 sur D1R1  ou D8 sur Mini )  ---- Pour NOtifheure 1

Le code

Pour des raisons de commodités , je suis passé depuis plusieurs mois , à la programmation sous la plateform : PlateformIO , 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çés
  • Fenêtrage , multi écran
  • Syntaxe automatique / rappel des fonctions existantes …
  • Gestion des mise à jours plus simple
  • 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.
  • et biens 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 fichier du dossier include , pour les mettre au même niveau que le fichier source.

Le code à é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 à decommenter 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 ( branche develop ).


[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érieurs ( ces bibliothèques sont a ajoutés dans platformIO)
    • MD_PAROLA ( v3.3 )
    • MD_MAX72XX ( V3.3.1 )
    • NTPClient (V3.1.0 )
    • Adafruit NeoPixel ( V1.3.3 )
    • ArduinoJson ( v6.13.0 )
    • DFRobotPlayerMini ( V1.0.5 )
    • DHT Sensor Library ESPx ( V1.17 )
    • NonBlockingRTTTL ( V1.2.2)
    • Time ( V1.5)
    • WebSockets ( V2.2.0 )
    • WifiManager ( V0.15 )
    • ClickButton (2012.08.29)

Je vais maintenir cette liste a jour , au fur et a mesure des nouvelles versions et des validations du code.

Les parametres à ajuster

Le mot de passe et login admin ( pour des reglages admin futur )

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

La configuration des matrices utilisés :

//****************************************************
// 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.
Type DHT 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::DHT11  // si DHT11
#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

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.

Upload du firmware et du dossier data ( pour l’interface WEB )

Ne pas oublier d’uploader aussi le dossier data dans la mémoire SPIFFS.

Le premier démarrage

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

Seul les 4 premiéres matrices sont prises en compte.

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

Nom pour le nouveau notifheure

Puis configuration des zones :

Pour exploiter au mieux ce type de configuration , 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 ( qui va crée 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 a des zones supplémentaires. Dans la configuration par défaut , si j’active le mode XL , il ne me reste plus la possibilité de créer des zones supplémentaires . La zone XL prendra la même valeur que la taille de l’horloge.

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ée 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.

Ma première ligne sera donc dédié à la zone 0 ( 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 souhaites 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 a la zone 2 , et les zones 1 et 2 aux deux numéros disponible …. Je sais moi même , je me perds dans ces explications , quand je me relis …

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?matrixreset=true

Quelques exemples :

Interface utilisateur

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

Bon test ….

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.

13 commentaires sur “Notifheure XL : Tutoriel les premiers pas de la version beta”

%d blogueurs aiment cette page :