Affichage à distance consommation ou surproduction électrique

Un petit afficheur, un nano processeur et une connexion WIFI permettent de collecter à distance la consommation électrique ou la surproduction due à une installation photovoltaïque et l’afficher localement. Un capteur de présence infrarouge permet d’activer le dispositif uniquement lorsqu’une personne se trouve à proximité. La source des mesures est le routeur Photovoltaïque F1ATB.

Affichage distant de la puissance

Matériel

Seulement 2 cartes sont nécessaires pour le système :
– LILYGO® TTGO T-Display 1.14 pouces ESP 32 (4MB CH9102F )
– Un détecteur de mouvement à infrarouge.

Si vous souhaitez des détails sur la carte ESP32/TFT : Info carte: Https://github.com/Xinyuan-LilyGO/TTGO-T-Display

Les éléments sont disponibles chez Aliexpress en chine ou Amazon

Pour l’alimentation, il est possible d’utiliser un chargeur de téléphone avec un cable USB-C ou connecter une alimentation à la broche 5V de l’ESP32. La consommation est d’environ 150mA au maximum et 8mA en veille.

Installation rapide du Logiciel

Comme pour le routeur, il existe à présent une procédure d’installation rapide depuis le navigateur web, Chrome ou Edge. Cette procédure efface toute la mémoire Flash pour l’installation du code.

La version VERSION V9.xx_DISP permet de se connecter à un routeur V9.xx_RMS ou V10.xx
La version VERSION V8.00_DISP permet de se connecter à un routeur V8.xx_RMS

Installation manuelle du Logiciel

Pour toutes ces versions de logiciel, il faut la bibliothèque ESP32 version 2.0.17.

La dernière version du logiciel qui se connecte au routeur version V9.xx_RMS et version V10.00 est disponible ici :

Routeur Solaire ou autre source de mesure de puissance et affichage distant

Il faut télécharger et dezipper le fichier pour reconstruire le dossier source contenant 7 fichiers. C’est le fichier « Power_Remote_Display_V9_DISP.ino » qu’il faut ouvrir dans l’outil de développement « IDE Arduino » et compiler. On y retrouve les mêmes bibliothèques que dans le routeur. Cela ne devrait pas poser de problème à la compilation.

Il existe d’anciennes versions :

Il faut dans les préférences faire appel au gestionnaire de carte de « Espressif » qui développe l’ESP32. Allez dans Fichier / Préférences et mettez l’adresse : https://dl.espressif.com/dl/package_esp32_index.json

Dans le gestionnaire de cartes, choisissez la carte TTGO Lora32-OLED

Installer la bibliothèque TFT_eSPI . Comme cette librairie peut traiter différents afficheurs, il faut lui préciser le modèle utiliser dans ce projet.

Dans Arduino/librairies/TFT_eSPI ouvrir User_Setup_Select.h avec un éditeur de texte comme Bloc-Note ou Notepad++. Le dossier Arduino se trouve en général dans le dossier document.

commenter ligne //#include <User_Setup.h> autour de la ligne 27 en rajoutant // en début de ligne

decommenter include <User_Setups/Setup25_TTGO_T_Display.h> autour de la ligne 58 en enlevant les // en début de ligne

Pour un premier essai d’affichage, essayez l’exemple TFT_eSPI /160*128/TFT_Print_Test.ino. Il n’est pas adapté à la taille d’écran, mais permet de vérifier le système.

Premier lancement du programme

Configuration par le port série (depuis la version 9.01_DISP)

Si vous êtes connecté par le port série à la carte ESP32, après l’installation, il faut indiquer le nom du réseau Wifi et son mot de passe. Cette connexion peut être faite avec le moniteur de l’IDE Arduino ou depuis votre navigateur web. Il y a 3 commandes clés à entrer :

  • ssid: nom_du_reseau
  • password: mot de passe
  • restart

Configuration par le web

Au premier lancement du programme dans l’ESP32, le logiciel ne connaît pas le nom et le mot de passe de votre réseau Wifi à la maison. Il va créer son propre Wifi en passant en mode point d’accès pour que vous vous y connectiez. Sur votre Smartphone (déconnectez votre accès mobile) ou PC portable, regardez la liste des WiFi disponibles. Connectez-vous à celui qui porte le nom DISP-ESP32-….., il n’y a pas de mot de passe.

Ouvrez un navigateur web et rentrez l’adresse 192.168.4.1 qui correspond à l’ESP32. Il va vous renvoyer une page vous demandant le nom du WiFi de la maison auquel se connecter à l’avenir et le mot de passe.

Votre box internet va attribuer à l’ESP32 une adresse IP sur votre réseau maison.

Reconnectez vous au Wifi de la maison avec votre smartphone ou PC. Rentrez l’adresse IP attribuée à l’ESP32 dans un navigateur Web. Allez sur la page « Paramètres » pour définir l’adresse IP à laquelle l’afficheur doit se connecter.

Affichage

La résolution de l’écran est de 240*135 pixels pour le modèle choisi. Il existe d’autres versions avec une meilleure résolution, mais cela n’est pas nécessaire pour ce projet.

L’affichage par défaut donne la puissance en W. Une bande orange visualise l’amplitude. Cette bande passe à droite en vert en cas de surproduction due à des panneaux photovoltaïques.

Affichage Température, Tempo du jour (ici en blanc) et Tempo du lendemain (ici en bleu)

Un appui sur le bouton du bas ou du haut permet de faire défiler les pages de détails

Détails

Un appui sur la cheminée, « Reset » le processeur.

Si vous ne branchez pas de détecteur de mouvement infrarouge, l’affichage restera allumé en permanence.

Accès WEB

Avec un navigateur, vous pouvez accéder à l’ESP par le web si l’ESP est réveillé. Pour le réveiller, passez devant, faite tourner les pages affichées, cela augmentera la durée d’affichage avant mise en veille. Ensuite, dans un navigateur, rentrez l’adresse IP de l’ESP et vous aurez accès à 2 pages : Accueil et Paramètres.

Montage

L’ensemble est monté dans une petite maison réalisée avec une imprimante 3D à résine. Le fichier du modèle .stl est téléchargeable ici :

Boitier (maison) avec face arrière vissable au mur.

Une autre version adaptée à une imprimante à filament et retravaillée par un réalisateur du projet est disponible sur Cults3D.

Pour le détecteur de mouvement, choisissez un modèle avec un diamètre de 10mm du capteur qu’il faudra probablement tourner de 90° pour rentrer dans la boite.

OTA (On The Air)

Les mises à jour du logiciel se font par le port USB ou à distance par Wifi en utilisant la fonction OTA comme pour le routeur. Si votre afficheur est éteint, ce n’est pas possible. Appuyer sur l’un des boutons pour l’allumer au moins 3 mn, le temps de faire la mise à jour.

Bugs Soft

NOM SSID

Après plusieurs téléchargements, modifications du code, je me suis trouvé dans la situation où l’ESP32 cherchait bien à se connecter à mon réseau WIFI de la maison, comme d’habitude. Mais, le moniteur série m’affichait un échec et passage en mode point d’accès (AP) à l’adresse 192.168.4.1. En remettant le nom du réseau WIFI (SSID) c’était toujours un échec. La solution a été de nommer un nouveau nom de réseau en modifiant le SSID de la box locale, de s’y connecter sans problème, et finalement de remettre le SSID d’origine. Je n’ai pas l’explication, mais au moins le remède.

Autre Montage

Boitier logeant 3 batteries 3 batteries Li-ion montées en parallèle et d’assurer ainsi une longue autonomie entre 2 charges. Il permet ainsi de laisser le boitier sur un plan de travail de cuisine par exemple sans « fil à la patte ». Crée par Maxime.

Articles sur le Photovoltaïque

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

244 réponses

  1. Aurél dit :

    Super cet afficheur! Ca va être très pédagogique pour Madame. Merci André!
    J’ai en revanche un petit problème avec le détecteur de présence qui doit être défectueux. En tout cas il ne capte pas grand chose. J’ai fini par le débrancher pour laisser un affichage permanant.
    J’avais pensé rajouter 2 rangées de LED Bleu Blanc Rouge sur 6 GPIO libres afin de pouvoir les activer par HTTP comme on le fait pour les actions du RMS, malheureusement je vois pas de gestion de GPIO par http dans ce code.
    Dommage ca m’aurait permis de lui ajouter les fonctions d’affichage des heures EDF tempo pour la journée et le jour suivant depuis mon Home Assistant.
    Mais plutôt que des LEDs,, quitte a avoir un écran couleur, peut-être pourrais tu nous ajouter cette fonctionnalité dans une future version, on faisant varier le fond d’écran par exemple?

    • F1ATB André dit :

      La version avec l’affichage du Tempo va sortir ces jours ci. Patience. Elle est en test.

      Cdlt
      André

      • Aurel dit :

        Oh! Vraiment ! Excellente nouvelle ça. As-tu prévu de pouvoir récupérer l’info ailleurs que sur RMS linky? Pour ma part je suis en mode UxIx2 c’est pour ça que j’avais pensé envoyer l’info a l’afficheur avec des requêtes http émise par Home Assistant. En tout cas si tu as besoin de beta testeurs mon afficheur est prêt 😜

        Merci encore pour tout cet excellent travail

      • Willy dit :

        Bonjour monsieur F1ATB,
        Merci pour votre travail. Aurons nous le plaisir d’avoir une vidéo explicative sur cette nouvelle version.

        Cordialement.

        • F1ATB André dit :

          Les changements étant peu importants (c’est juste la prise en compte du Tempo), je ne pense pas faire de vidéo.

          Cdlt

  2. Stéphane dit :

    Bonsoir André,

    J’ai installé le routeur linky avec un 2nd esp32 deporté pour commander un Triac et tout est ok
    Je voulais installer l’afficheur et j’ai le message d’erreur ci-dessous :

    esptool.py v4.5.1
    Serial port COM5
    Connecting……..

    A serial exception error occurred: Write timeout
    Note: This error originates from pySerial. It is likely not a problem with esptool, but with the hardware connection or drivers.
    For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
    Failed uploading: uploading error: exit status 1

    Stéphane

    • F1ATB André dit :

      Avez vous fait la modification du fichier User_Setup_Select.h ?
      Aves vous sélectionnez la bonne carte?
      Essayez de télécharger un exemple donné dans l’IDE Arduino pour essayer de comprendre le problème.

      • Stéphane dit :

        J’ai le même message d’erreur avec un exemple donné dans l’IDE Arduino
        Je viens de comprendre : la carte achetée n’est pas la bonne je pense :
        J’ai acheté : LILYGO® T-PicoC3 PicoPro 1.14 pouces Display Tech ESP32-C3 ESP32-C6 carte de développement RP2040 Bluetooth 2.33 pouces écran tactile
        Pouvez-vous me dire si programme utilisable avec cette carte ?
        Autre pb : je ne vois pas cette carte dans celles proposées ?
        Mer
        Merci pour votre aide

      • Jean-Yves dit :

        Bonjour André, j’aimerai avoir plus de précisions afin de savoir comment on modifie les fichiers, j’ai téléversé le fichier en l’état, rien ne s’affiche sur l’écran du lilygo. Je suis vraiment novice et je tatonne. Merci à celui qui voudra me répondre.

        • F1ATB André dit :

          Dites nous en plus :
          Avez vous modifier le fichier User_Setup_Select.h pour définir le type de carte?
          Avez vous réussi à paramétrer l’ESP32 (nom et mot de passe du Wifi en vous connectant à l’adresse 192.168.4.1?

          Cdlt

          • Jean-Yves dit :

            Bonjour,
            C’était bien ça le problème, ça n’a pas été facile mais tout semble fonctionner. Il faut maintenant attendre le soleil qui se fait désirer.
            Je vous remercie pour votre compétence et partage. Cordialement.

    • Princen dit :

      Bonjour Stéphane, qu’avez vous achetez pour le second routeur du coté du linky ?
      Cordialement

  3. Bonjour André et tout mes voeux de santé et bonheur pour 2024
    Merci pour la mise a jour, le tempo était attendu 🙂

    j’ai une erreur de compilation sur la V7 de l’afficheur quand je demande la vérification du code…

    Error at line 1: Field ‘type’ can’t be left empty.
    exit status 2
    Compilation error: exit status 2

    une idée?
    Cordialement

    • je m’ auto répond
      j’ai voulu commencer par updater les afficheurs
      mauvaise idée
      passer l’esp32 en V7
      puis la compil de l’afficheur fonctionne
      plus d’erreur

      • F1ATB André dit :

        Parfait, mais je ne comprends pas très bien ce qui est arrivé.

        Cdlt

        • oui je n’ai pas trop compris non plus (peut être un bug de mon PC)

          Je me demandais si l’affichage tempo ne serai pas plus lisible de cette manière
          ( partie de l’image a regarder : « Aujourd’hui à dimanche):
          [img]http://www.image-heberg.fr/files/170575795838722168.jpg[/img]

          Titi21 a beaucoup travaillé sur votre afficheur et sort une version intéressante.
          je met le liens vers le sujet pour ceux que cela peut intéresser :
          https://forum-photovoltaique.fr/viewtopic.php?f=110&t=68361

          Cordialement

  4. Philippe Fenain dit :

    Bonjour André,
    Merci infiniment pour vos travaux. Je viens de monter la version Linky (avec ESP distant pour température) avec affichage. Pour l’instant pas connecté ni au Linky ni au ballon pour essais. Il n’y a pas d’affichage de la température ballon sur l’afficheur TTGO (contrairement à ce que je vois sur la photo). Et dans les paramètres de l’afficheur TTGO, la température est indiquée à -127°C. Ceci expliquant sans doute cela. Mais pourquoi ne récupère t-il pas la température de l’ESP (qui est bien présente) ?
    Merci d’avance.

    • Philippe dit :

      Bonjour,
      Entre-temps j’ai trouvé la réponse. Pour ceux qui seraient confrontés à cette difficulté, si vous avez un ESP distant pour la mesure de température du ballon, vous devez indiquer dans ses paramètres « ESP externe » et l’adresse IP comme source des mesures.

  5. Titi21 dit :

    Hello,
    Je me suis lancé il y a quelques semaines sur la modification de l’afficheur distant pour avoir quelques petits plus.
    Je précise je suis novice dans le code et cela ma demandé beaucoup d’heures pour faire c’est apport supplémentaire.
    J’ai dans le début mis un logo au démarrage sur l’afficheur pour le clin d’oeil au travail d’ André sur le routeur et ce petit afficheur et merci pour tous ce travail.

    Je met ce lien du dossier il y a le logo et le petit bout de code à mettre dans le setup, si certain sont intéresser ou si André veux l’utiliser dans le code

  6. Dominique F1RWB dit :

    73 André
    Je suis en tain de programmer l’affichage à distance de la consommation et j’ai un message d’erreur au téléversement….
    Avez vous une idée ?
    D’avance merci.
    Dominique F1RWB

    Le croquis utilise 931233 octets (71%) de l’espace de stockage de programmes. Le maximum est de 1310720 octets.
    Les variables globales utilisent 51136 octets (17%) de mémoire dynamique, ce qui laisse 243776 octets pour les variables locales. Le maximum est de 294912 octets.
    esptool.py v4.5.1
    Serial port /dev/cu.usbserial-57480011531
    Connecting……
    Chip is ESP32-D0WDQ6-V3 (revision v3.1)
    Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
    Crystal is 40MHz
    MAC: a8:42:e3:3d:8d:e8
    Uploading stub…
    Running stub…
    Stub running…
    Changing baud rate to 921600
    Changed.

    A fatal error occurred: Unable to verify flash chip connection (Invalid head of packet (0xE0): Possible serial noise or corruption.).
    Failed uploading: uploading error: exit status 2

    • Dominique F1RWB dit :

      Désolé pour le dérangement j’ai trouvé d’ou venait le problème ( problème avec le port USBc avec mon mac….)
      73

  7. sergez dit :

    bonjour
    jai voulu passer a la v7sur 2 routeurs deportés mais l un reste en attente de la date et l heure par internet sur la page d accueil,mais si j affiche la page données brutes alors la date et l heure s affiche
    merci pour vos conseils

    • F1ATB André dit :

      L’heure sur la page données brutes vient de l’ESP maitre chez lequel il cherche les données de puissance etc..
      L’heure sur la page d’accueil, c’est lui qui va la chercher sur Internet. Si elle ne s’affiche pas, c’est probablement qu’il ne trouve pas le chemin pour sortir de la maison. L’adresse IP du Gateway ne doit pas être la bonne.

      Cdlt

      • Sergez dit :

        Effectivement j avais bloqué l accès à internet sur ma box uniquement sur ce router par erreur de manip.
        L heure s affiche de nouveau.
        La version 7 est un plus aux niveau de la 1er connection et surtout sur l afficheur petite maisonnette

  8. Philippe dit :

    Bonjour André,
    La version 8 ( version V8.xx_RMS) n’est pas disponible, il n’y a que la version 7.
    Cordialement.
    Philippe

  9. Mancier dit :

    Bonjour andré
    Petite question, est il possible de connecter un petite écran type SH1106 directement sur l’esp32 maître ( dans mon cas il s’agit d’un UxIx2 qui prend donc la mesure avec la pince et qui contrôle le triac ) le but est de centraliser l’ensemble dans un jolie boîtier avec un écran qui donne les mêmes infos que la maison.
    Merci par avance 😉

  10. Pierre dit :

    Bonjour André,
    Dans le programme Maisonnette je ne comprends pas trop le délai 1800 ?
    Comme pour l’insant je n’ai pas recu mes ELV814 donc je ne recoit rien du Linky et je trouve que le reset WDT dure beaucoup moins longtemps que 1800s
    1800 c’est des secondes ou des millsecondes ?

    Extrait de ton fichier INO
    //Watchdog de 1800 secondes. Le systeme se Reset si pas de dialoque avec la source
    #define WDT_TIMEOUT 1800

    Sinon encore bravo pour tes partages.

    • Pierre dit :

      Peut-être PIR trop sensible
      Si c’est 1800s le WDT devrait se faire toutes les 30mn si j’ai bien compris
      Je veux bien confirmation de ta part et je regarderai du coté du PIR
      Merci d’avance

    • F1ATB André dit :

      C’est 1800 secondes. L’afficheur est différent du routeur car il fait des dodos de 590s. Au bout de 3 réveils sans message du routeur il se reset.

      Cdlt

  11. Mastac dit :

    Bonjour, Pourquoi ne pas laisser comme sur le routeur la possibilité d’avoir une IP fixe? Merci

    • F1ATB André dit :

      Pas fait pour l’instant. Assignez lèIP par votre box internet. C’est equivalent.

  12. fc89 dit :

    Bonjour André,

    Concernant la carte deux possibilités s’offrent à nous n’est ce pas?
    Une carte LILYGO de 16M pour 28€ ou TTGO de 4M pour 19.99€
    Quelle carte me conseillez vous?
    A+

    • F1ATB André dit :

      Il faut prendre la TTGO décrite dans l’article. Les autres n’ont pas la même résolution d’écran.

      Cdlt

  13. fc89 dit :

    Bonsoir,
    Merci!
    En plus cela m’arrange c’est la moins cher.
    A+

  14. Mastac dit :

    Bonjour, encore merci pour ce fantastique travail ! Idée d’amélioration : La réception de l’affichage n’est pas toujours optimale en fonction de son placement dans la maison. Pourrait on mettre un indicateur de réception avec des barres comme sur le réseau d’un téléphone ?
    Pour ceux que cela intéresse, j’ai modifié le code du routeur pour avoir un fonctionnement avec le triac:
    marche forcée en dessous d’une température,
    pwm entre 2 valeurs
    off au dessus.

  15. log_dan dit :

    Bonjour andré. je suis sur l’affichage distant et je ne vois pas ds le script le gpio du 2ieme bouton?? il est sur le quel (35 et ?). d’autre part faut il des résistances de pull up ou pull down sur ces boutons? merci d’avance et bonne soirée

    • F1ATB André dit :

      Ce sont GPIO 0 et GPIO 35. Pas de resistance Pullup nécessaire

      • log_dan dit :

        OK merci andré, autre question, mon écran est plus grand que le TTGO, comment changer la taille d’affichage?? merci et bonne journée.
        je suis toujours sidéré par la qualité du travail, c’est si rare quand ca marche du 1er coup!!!!

        • F1ATB André dit :

          Il faut reprendre le code. Chaque texte ou dessin est positionné par des valeurs X,Y correspondants aux pixels sur l »écran.

          Cdlt

          • log_dan dit :

            Ok merci André, je repositionne tout pour un 480×320. et j’essaie de l’intégrer a l’esp32 maitre, mais je ne suis pas très a l’aise avec le C++. bonne journée

  16. Aurél dit :

    Bonjour André, j’ai voulu déployer la v08 sur mon afficheur pour m’aligner avec la MAJ du RMS. J’ai flashé par OTA et n’ai reçu aucune alerte mais l’afficheur c’est figé a la fin du flashage. Je l’ai reboot pour le débloquer et depuis écran noir en permanence. La LED bleu est activée, je vois bien la puissance se mettre a jour en console ou sur la page Web mais l’écran ne se rallume plus. J’ai reflashé la v7 mais c’est pareil. Une idée de ce qui a pu se passer et/ou de comment je peux le réparer? Merci d’avance. Aurélien

    • F1ATB André dit :

      Il faut que la version du routeur et celle de l’afficheur soit cohérentes. Voir l’article.
      Vérifiez que la désignation de la carte dans le fichier User_Setup_Select.h est correcte.

      Cdlt

      • Aurél dit :

        Merci André, j’ai finalement résolu mon problème grâce à Jean-Claude. J’ai supprimé toutes les librairies de mon répertoire « Documents\Arduino » y compris TFT_eSPI, puis j’ai resuivi mon tutoriel pour reflasher une v8. C’est seulement ainsi qu’il s’est finalement rallumé.

  17. Jean TALLON dit :

    Bonjour André, j’avais souvent des pb de reconnexion au wifi. J’ai donc cherché une alternative pour limiter la conso et j’ai fini par trouver comment éteindre l’affichage seul, chose que je ne connaissais pas, je vais donc tenter de modifier le programme
    J’ai tester juste pour voir –> çà fonctionne
    TFT_eSPI tft = TFT_eSPI();

    pinMode(4,OUTPUT);

    digitalWrite(4,LOW); // force backlight off
    digitalWrite(4,HIGHT); // active le backlight

    tft.writecommand(ST7789_DISPOFF);// Switch off the display
    tft.writecommand(ST7789_DISPON); // sitch on le display

    tft.writecommand(ST7789_SLPIN);// Sleep the display driver ( pas tester)

    Si çà peut servir…….

  18. Tito dit :

    Hello,

    pour ceux qui ont fait la maison comment vous avez fait pour tourner à 90° le capteur de présence? Cela nécessite soudure ? Merci

  19. Quérouil Philippe dit :

    Bonjour,
    j’ai installé la version rms8.06 puis la version maisonnette 8 mais l’écran reste noir,je suis redescendu en version 7 pour la maisonnette et cela sur 4 lilygo.
    Avez vous une idée du problème?
    Merci pour votre travail et le partage après un routeur Ekosia il y a vraiment une différence.

    • F1ATB André dit :

      Je ne vois pas. Avez vous accès à la maisonette par le web?

      • philippe dit :

        Oui j’ai accès au Web, 192.168.4.1 puis á la page paramètre changement IP OK mais toujours écran noir. L écran marche en v7.

        • philippe dit :

          Bon en voyant le message de Jean-Claude je me suis dit pourquoi pas…j’ai rechargé la librairie TFT_eSPI et hop ça marche
          MERCI

          • Aurél dit :

            En effet, j’ai eu le même problème en flashant la v8 sur sur une v7. J’ai supprimé toutes les librairies de mon répertoire « Documents\Arduino » y compris TFT_eSPI, puis j’ai resuivi le tutoriel d’André pour reflasher une v8. C’est seulement ainsi qu’il s’est finalement rallumé. Merci Jean-Claude et merci André!

  20. R. Jean claude dit :

    Bonjour.
    Je viens d’installer la version 8 et l’affichage est vertical !
    Quelqu’un a t’il eu ce problème?