Pour ceux qui chercheraient à faire un truc dans le genre :
Voici mon projet d'affichage de différentes données d'origines diverses, assez mature pour que je puisse vous le présenter.
Le coeur (la station de base) est un LilyGo T-Display, un ESP32-S3 avec afficheur intégré de 320 x 170 pixels pouvant se mettre dans un petit boîtier.
Au début je voulais juste afficher les températures et hygrométries intérieures et extérieures (avec une sous-station extérieure), mais au fur et à mesure de la programmation (et de l'accroissement des connaissances qui va avec !) j'ai rapatrié les données d'un Shelly EM, un petit module doté d'une connexion WiFi situé dans mon tableau électrique qui mesure ce que consomme (ou rejette) ma maison et ce que produisent mes panneaux solaires. (requête HTTP Get avec extraction JSON)
J'ai ensuite ajouté un petit module qui me renvoie la tension de la batterie de stockage photovoltaïque qui se trouve dans ma cave. (requête HTTP Get vers AsyncWebserver)
Dernièrement, comme j'ai un contrat électrique tempo, j'ai ajouté le rapatriement des données pour afficher la couleur des jour J et J+1 à partir du site d'EDF. (requête HTTP Get avec extraction JSON)
Et pour finir, aujourd'hui j'ai rajouté une routine pour lire la température de mon chauffe-eau, à partir d'un TCW122, petit module domotique sur lequel est branché la sonde de température du chauffe-eau.
(requête HTTP Get qui renvoie une chaîne xml de laquelle j'extrais la température)
Tout cela fonctionne grâce à HTTPClient et AsyncWebserver. (il y a peut-être mieux mais pour l'instant j'utilise ça, je n'ai pas encore essayé ESP-NOW)
En prime Asyncwebserver me génère une page html qui reprend toutes mes données et consultable à partir de n'importe où.
C'est pour l'instant assez primitif, peut-être un jour que j'essaierai d'avoir un aspect plus "léché" avec un peu de CSS !
La page est consultable là : http://82.64.101.64:32802
Voici le synoptique de l'installation :
A noter que les 3 modules sont programmable en OTA (sans connexion physique au PC), c'est bien pratique !
Et voici à quoi ressemble l'affichage (bon, les goûts et les couleurs, hein... :
L'heure est rapatriée par un serveur NTP.
La barre rouge sous l'heure est un bargraph qui indique le RSSI entre -75 et -30 dBm
(là je suis près de ma box, le RSSI est quasi maximal)
Les ovales bleus J et J+1 de part et d'autres de la date sont la couleur du jour tempo actuel et du lendemain.
"P EDF" est la conso instantanée de la maison et "P sol" la production instantanée des panneaux solaires.
L'affichage de la température et de l'hygro externes passe en rouge quand la batterie du module déporté descend sous les 3,65 V, signalant qu'il est temps de la recharger.
L'affichage de la température intérieure et de la température du chauffe-eau est permuté toutes les 3 secondes par celui de l'hygrométrie intérieure et la tension de la batterie à la cave :
Le point jaune en haut à gauche clignote toutes les secondes, comme ça on voit de loin si l'ESP32 tourne.
En appuyant sur un touchpin en haut du boîtier un autre écran affiche les cumuls de conso et production du jour, automatiquement remis à 0 à minuit :
Les deux modules déportés (T° et hygro extérieures, tension batterie cave) sont construits autour de puces XIAO ESP32-C3 à peine plus grosses que le pouce et très pratiques pour de petits montages.
Les deux modules sont en temps normal en deep sleep, celui pour la tension se réveille toute les minutes, celui pour la T° et l'hygro toutes les 6 mn. Il est alimenté par une petite batterie LiPo 3,7 V 1000 mAh qui lui donne une autonomie d'un mois.
L'aspect extérieur du module extérieur :
Il manque encore une petite grille sur les trous et un "chapeau" pour protéger des gouttes. Le boîtier est un modèle étanche de 58 x 65 mm.
Le connecteur étanche sur le dessus sert à la recharge de la batterie.
La led rouge clignote à chaque mesure (3 clignotements rapides) et clignote lentement en continu, quand le module est prêt à être programmé en OTA (j'y reviens plus loin)
L'intérieur, câblé "en l'air", mais proprement :
Et voici le module pour la mesure de la tension de la batterie à la cave, simplement mis dans la boîte du LilyGo T-Display :
On voit les deux résistances du pont diviseur de la batterie à mesurer, et il y a aussi une petite led jaune, qui clignote de la même manière que la led rouge du module précédent.
Un petit mot sur la programmation par OTA des deux modules déportés qui sont quasiment tout le temps en deep sleep :
Bien sur en deep sleep la programmation par OTA ne marche pas. Pour sortir du deep sleep (ou plutôt pour ne pas y retourner quand les modules se réveillent) le module de mesure T°-Hygro extérieur dispose d'un petit relais reed, une sorte de contact qui se ferme quand on présente un aimant pas loin. Il suffit donc que je pose un aimant sur l'avant du boîtier (la led verte s'allume) pour qu'au prochain réveil il ne se rendorme plus (la led rouge clignote alors lentement en continu) et que je puisse lancer la programmation.
Même principe sur le module de mesure de la batterie, à part que là il y a un bête petit interrupteur qu'on voit sur la photo.
Pour une version définitive j'ai déjà prévu un montage qui reprend toutes les infos sur un seul écran plus grand de 320 x 240 pixels, à base d'un ESP32-S3 LilyGo T7-S3, il fonctionne déjà il ne me reste plus qu'à le monter dans un boîtier :
Voici encore les différents fichiers .ino du projet, ainsi que les polices utilisées pour l'affichage (elles doivent être placées dans le même répertoire que le .ino)
progs.zip (186,4 Ko)
Merci pour toute critique constructive !
Roland