Affichage à distance consommation ou surproduction électrique

Version V8.00_DISP

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.

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.

Logiciel

La dernière version du logiciel qui se connecte au routeur version V7.xx_RMS (Janvier 2024) et version V8.xx_RMS (Février 2024) 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_V8_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 :

Pour le routeur version V2 est disponible ici :

Pour le routeur en version V3.00_UxI_ est disponible ici :

Pour le routeur en version V3.10_Linky est disponible ici :

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

decommenter include <User_Setups/Setup25_TTGO_T_Display.h> autour de la ligne 58

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

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.

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.

Articles sur le Photovoltaïque

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

165 réponses

  1. Titi21 dit :

    Hello, je suis sur la mise en place de l’affichage distant et en voulant utiliser l’OTA je me suis rendu compte que ça ne fonctionner pas.
    Il faut rajouter dans le global:

    //Créer objet AsyncWebServer sur le port 80 :
    AsyncWebServer server(80);

    et dans le setup:
    //démarrer serveur
    server.begin();
    //démarrer ElegantOTA
    AsyncElegantOTA.begin(&server);

  2. MATHIEU Jean dit :

    Bonjour André,
    Merci pour vos vœux, de même je vous souhaite le meilleurs pour cette nouvelle année, surtout la santé.
    Garder votre motivation pour vos réalisations actuelles et à venir, personnellement je suis très content d’avoir découvert votre routeur (en fait, c’est le fameux Jean Claude qui m’a mis sur la piste) facile à réaliser et à mettre en œuvre qui fait preuve de beaucoup d’intelligence.

    Pour ceux qui suivent, je viens de finir un tuto sur la réalisation du routeur qui dans mon cas est avec deux ESP32 et sur l’Afficheur à distance.
    Pour le tuto il faudra aller sur le forum-photovoltaique afin de prendre contact avec moi.

    Meilleur vœux à tous

  3. MATHIEU Jean dit :

    Bonjour Philippe, Il faut m’écrire en MP sur le forumphotovoltaique

    https://forum-photovoltaique.fr/viewtopic.php?f=110&t=67337&p=738235#p738235

    Mon tuto est un condensé de tout ce qu’explique André avec plus de détails pour ceux qui « pataugent » avec IDE Arduino, après loin de moins d’avoir la « science infuse », moi c’est mon « aide mémoire » car dans le temps et au regards de mon âge j’ai tendance à oublier.

    Jean

  4. Alain dit :

    Bonjour André
    Meilleurs vœux à tous pour 2024
    Je voulais vous remercier chaleureusement pour votre travail j’ai réaliser votre retour avec un shelly EM pour la mesure et un ESP32 pour l’actionneur avec sonde et afficheur tout fonctionne parfaitement depuis 2 semaines il me reste plus qu’a mettre tout dans un boitier alu qui me servira de radiateur pour le triac.
    je viens de faire un don pour contribuer à votre travail
    Cdlt
    Alain

  5. Yoann dit :

    Bonjour André,
    Magnifique boulot, je vous remercie pour tout ce que vous avez fait.
    Je bute sur la configuration hostsource, je ne sais pas quelle adresse ip mettre. Peu importe l’adresse que je met, moniteur série m’affiche connexion à échouée et je n’ai pas d’affichage
    // Client of Power Router. Adresse source des données de puissance Routeur Solaire V4_RMS F1ATB 2023
    const char* hostSource = « 192.168.0.205 »;const int httpPort = 80;
    J’ai fait votre système avec enphase.
    Merci par avance

    • F1ATB André dit :

      A la ligne
      const char* hostSource = « 192.168.0.205 »
      Il faut mettre l’adresse IP de l’ESP32 qui collecte les données de puissance (connecté à Enphase dans votre cas et non l’adresse IP d’enphase).

      PS: j’ai mis en ligne une version V6 du logiciel de l’afficheur. Cela ne change que des commentaires par rapport à la V5.

      Cdlt

  6. yoann dit :

    Merci André pour votre réponse rapide. Mon esp32 a comme IP 192.168.1.54. Je met donc celle ci const char* hostSource = « 192.168.1.54 ». Moniteur série me dit connexion échouée.

  7. yoann dit :

    Oui, je n’ai pas de message d’erreur quand au ip wifi et passerelle. C’est vraiment que cette adresse: const char* hostSource = « 192.168.1.54

  8. Titi21 dit :

    Hello,
    En attendent que le soleil arrive pour tester le routeur.
    Mon petit affichage modifier après un long parcours avant de comprendre comment modifier le code ( je suis très novice dans le domaine)
    Merci pour tout ce taf André
    https://drive.google.com/file/d/1yDp6iaRhAITP3UWRk2iaoqkUGY2VNdiH/view?usp=drive_link

  9. Alain dit :

    Bonsoir André,
    j’ai constaté un bug dans le moniteur série sur le code de l’afficheur, mon ESP32 version 6.02 afficheur TTGO version 6 RMS
    une idée ?
    DEBUT SEQUENCE TOUT VA BIEN :

    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drWake up : 0
    IR at wake up : 0
    IP address: 192.10.1.42
    HostSource : 192.10.1.80
    IR at end setup : 0
    IR loop : 0
    720 W
    IR loop : 0
    728 W
    IR loop : 0
    726 W

    AU BOUT D’UN MOMENT IL PERD LA CONNEXION :

    IR loop : 0
    812 W
    IR loop : 0
    Connexion vers 192.10.1.80 échoué
    812 W
    IR loop : 0
    Connexion vers 192.10.1.80 échoué
    812 W
    IR loop : 0
    Connexion vers 192.10.1.80 échoué
    812 W
    IR loop : 0
    Connexion vers 192.10.1.80 échoué
    812 W
    IR loop : 0
    Connexion vers 192.10.1.80 échoué

    APRES PLUSIEURS TENTATIVES IL REPART :

    Connexion vers 192.10.1.80 échoué
    812 W
    IR loop : 0
    839 W
    IR loop : 1
    774 W
    IR loop : 0
    2610 W
    IR loop : 0
    887 W

    • F1ATB André dit :

      Je pense que c’est un problème de WIFI qui n’arrive pas bien là où se trouve l’afficheur.
      J’ai 2 systèmes d’affichage chez moi, qui fonctionnent bien.

      Cdlt
      André

  10. Alain dit :

    Bonjour André,
    j’ai trouvé j’utilise beaucoup de domotique chez moi et j’avais un doublon sur cette IP donc mon routeur wifi faisait la déconnexion détectant un conflit d’IP
    en tout cas encore merci pour tout je le dirai jamais assez

  11. 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.

  12. 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

  13. 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

  14. 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.

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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 😉

  20. 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *