Réalisez un Routeur Solaire pour gérer la surproduction
Version V2
Remplacé par la version V8
Avec les panneaux solaires, dans une installation en autoconsommation, il est fréquent d’avoir de la surproduction d’énergie dont on ne sait que faire et qui est envoyée sur le réseau public. Une solution pour stocker cet excédent est de l’envoyer au chauffe-eau électrique.
Un rapide calcul, pour un chauffe-eau de 200l, équipé d’une résistance chauffante de 2400W, montre qu’il faut près d’une heure de chauffe, soit 2.3 kWh pour monter l’eau de seulement 10°.
200l*1000gr*4.18Joule*10°/3600s=2322 Wh = 2.3kWh
Chaque jour, c’est plusieurs kWh qu’il faut fournir au chauffe-eau. Pour un système classique, on effectue cela de nuit à un tarif réduit. En cas de surproduction dans la journée des panneaux photovoltaïques, il faut envoyer cette énergie au chauffe-eau. C’est une superbe batterie de stockage d’énergie. Mais il est fréquent de n’avoir que quelque centaines de watts disponibles et non pas la puissance de 2400 w que demande la résistance du chauffe-eau en branchement classique.
Tableau des Versions
Différentes versions de routeur ont été décrites :
Version | Mesure courant / puissance | Actionneurs | Modulaire | Domoticz | MQTT / Home Assistant | Description |
---|---|---|---|---|---|---|
1 | Sonde Ampèremétrique | Relais | Non | Oui | Non | Routeur Solaire. Mesure de Puissance avec un ESP32 |
2 | Sonde Ampèremétrique | Triac + Relais | Non | Oui | Non | Réalisez un Routeur Solaire pour gérer la surproduction |
3.04_UxI | Sonde Ampèremétrique | Triac + Relais | Oui | Oui | Oui | U x I : Routeur Solaire pour gérer la surproduction photovoltaïque |
3.10 Linky | Linky | Triac + Relais | Oui | Oui | Oui | Réalisez un Routeur Solaire avec un Linky |
Ici, nous allons réaliser un système qui envoi uniquement la puissance excédentaire au chauffe-eau en surveillant la puissance qui entre ou sort de la maison afin qu’elle soit nulle à l’aide d’une sonde de courant branchée derrière le compteur. Ce système ne fonctionne que pour les chauffe-eaux électriques classiques dans lesquels se trouve une résistance électrique et un thermostat électro-mécanique pour contrôler la température.
Le routeur solaire agit comme une vanne qui s’ouvre pour laisser passer la surproduction en surveillant le courant en entrée de la maison afin qu’il soit nul.
Matériels
Pour réaliser l’ensemble, il faut les matériels suivants:
Capteur du Courant
Pour mesurer le courant en entrée de la maison, on utilise un capteur de courant dans lequel on fait passer le fil de phase du secteur. En sortie, agissant comme un transformateur, il fournit un courant identique, mais 2000 fois plus faible. Ce courant est envoyé aux bornes d’une résistance et nous allons mesurer la tension générée.
Il existe différents modèles suivant le courant Max que l’on souhaite mesurer. La version 100A est adaptée à un domicile ayant une puissance max délivrée de 12kVA. On la trouve en Chine chez Aliexpress.
Capteur de la tension
Pour savoir si de l’énergie rentre ou sort de la maison, il faut de même mesurer la tension électrique. C’est en comparant la phase du courant I et de la tension U que l’on connaitra le sens du transfert d’énergie.
Pour mesurer la tension, on utilise un transformateur bobiné classique abaisseur de tension qui nous isole du secteur. Par exemple un 230v/6v. Il faut un modèle le plus petit possible, on ne prélève aucune puissance. Cela n’est plus très facile à trouver. Un transformateur, dit de sonnette, peut faire l’affaire.
Micro-Calculateur ou Microcontrôleur
Pour effectuer les mesures de tension et les calculs, L’ESP32 est un microcontrôleur adapté à notre besoin. Il comprend :
– des entrées analogiques pour mesurer des tensions,
– des entrées/sorties numériques pour actionner un relais ou un triac si besoin,
– une bonne capacité de calcul
– une liaison WIFI pour faire du reporting à distance sur une page web ou un système de domotique.
Gradateur – Triac
Pour ajuster le courant à injecter vers le chauffe-eau, on utilise un gradateur de chez RobotDyn composé d’un Triac et d’un système de détection du passage à zéro de la tension. Il existe en 16A ou 24A et est disponible chez Aliexpress.
Attention, le refroidisseur d’origine du Triac est sous-dimensionné sachant qu’il devra fonctionner pendant plusieurs heures. Rajoutez des éléments d’aluminium ou remplacez-le par un plus-grand. De même les 2 pistes entre le connecteur 230V et le Triac sont un peu faibles. On peut, en rajout, souder une couche de fil de cuivre.
En plus d’un gradateur, on peut rajouter en option 1 ou 2 relais solide pour actionner d’autres dispositifs si besoin.
Mesure Courant et Tension
La mesure des 2 tensions représentantes du courant et le la tension secteur se fait par les entrées analogiques de l’ESP32. Ces entrées acceptent une tension positive entre 0 et 3.3V et numérisent la valeur sur 12 bits, valeurs entre 0 et 4095. Pour s’adapter à la dynamique d’entrée, on crée une référence de tension au milieu de la plage à 1.65V =3.3V/2 à laquelle on rajoutera la tension en sortie du transformateur et de la sonde de courant.
On prélève le 3.3V de l’ESP32 qui en passant par un pont de 2 résistances (R6 et R7) de 4700 ohm connecté à la masse nous fourni au milieu une référence de 1.65V. Pour éviter du bruit de mesure, un condensateur de 470uF (C2) filtre le 3.3V et un autre de 10uF (C1) filtre le point milieu à 1.65V.
Afin de ne pas dépasser les 3.3V crête à crête des signaux à mesurer, ou 1.65V crête, on se fixe une limite de +-1V efficace maximum.
Pour la sonde de courant avec 80A et une résistance de 24 ohm , on arrive à peu près au 1V crête à crête.
24*80A/2000=0.96V efficcace ou 1.36V crête à crête.
Ainsi la tension à mesurer sera dans la plage 1.65V +/- 1.36V.
Chez moi, avec un abonnement de 12KVA, je ne devrai pas dépasser les 60A.
Pour la mesure de tension, il faut mettre un pont de résistances (R4 et R5) pour abaisser le 6V autour de 1V efficace et avoir ainsi un signal à mesurer entre 1.65V +/- 1.41V. Si la courbe rouge de tension sur l’affichage est plate en haut et en bas, il faut augmenter R4 ou diminuer R5.
Raccordement à l’ESP32
Le jeu de piste avec ces cartes qui intègrent un ESP32, est de trouver les GPIO disponibles et non utilisés pour la programmation Flash etc.
Dans notre cas, on mesure les tensions suivantes:
– GPIO 35 : la tension de référence à 1.65V en théorie.
– GPIO 32 : la tension en sortie du transformateur réduite par le pont de résistances R4 et R5
– GPIO 33 : la tension représentant le courant à mesurer
2 LED sur les GPIO 18 et 19 clignotent toutes les 2s. La jaune si on consomme du courant, la verte si on fournit du courant, car nous sommes en surproduction.
La commande du gradateur se fait via le GPIO22 et la lecture de l’impulsion du passage à zéro « Zero Crossing » de la tension secteur sur le GPIO23. Cette impulsion est essentielle pour se synchroniser avec le secteur.
En option, on peut par exemple, connecter un relais solide pilotable en 3.3V au GPIO5.
Timing
Le signal « Zero Crossing » sert de synchronisation au micro-contrôleur pour ouvrir le Triac entre 0 et 100% du temps d’une demi-période de 10 ms suivant le niveau d’énergie à transférer au chauffe-eau.
Mesure
La mesure des 2 valeurs représentant la tension et le courant prend environ 150uS. En pratique, on prévoit sur une période de 20ms (1/50Hz) de prélever 100 couples de valeurs, ce qui donnera une bonne description de la tension à priori sinusoidale et du courant souvent chahuté par les alimentations à découpage.
Pour bien caler dans le temps chaque mesure, on utilise le signal « Zero Crossing » du gradateur. Il passe à 1 durant 500 µs toutes les 10 ms lorsque la tension en 230v est nulle.
Toutes les 40 ms, on effectue :
– la mesure des tensions et courants durant 20ms
– une moyenne sur les dernières mesures pour lisser et réduire le bruit de mesure
– le calcul du courant efficace Ieff
– le calcul de la tension efficace Ueff
– le calcul de la puissance apparente Pva en kVA
– le calcul de la puissance active Pw en kW
– le cosinus φ
Calibration
Un calibrage préalable doit être fait pour définir la constante multiplicative kV dans le programme qui permet la conversion de la tension mesurée en binaire vers la tension réelle. De même pour le courant, la constante kI . Utilisez un voltmètre, une pince ampèremétrique ou votre compteur Linky pour la calibration.
Suivant le transformateur servant à la mesure de tension, il peut y avoir des ajustements à faire. Si la courbe rouge de tension est une belle sinusoïde, ne changez pas R4 et R5. Si la courbe est plate en haut ou en bas, il faut augmenter R4 ou baisser R5.
Ensuite, commencer par mesurer avec un voltmètre la tension exacte du secteur. Par exemple, si la valeur affichée par le montage est 10% en dessous de votre mesure, augmentez la valeur de kV de 10%. Pour le courant, si vous n’avez pas de pince ampèremétrique, utilisez le Linky qui affiche la puissance apparente de VA. Comparez avec la valeur donnée par le système et augmentez ou diminuez en conséquence la valeur de kI.
La convention prise est d’avoir Pw positif si l’on consomme du courant en provenance d’Enedis et Pw négatif en cas de surproduction. En cas d’inversion du signe, tournez d’un demi-tour la sonde de courant sur la phase du secteur ou inversez les fils.
Taux de distorsion harmonique
À la demande de réalisateurs de la version 1 du système, j’ai rajouté le « Taux de distorsion harmonique ». THD. C’est un peu technique, vous pouvez sauter ce paragraphe….
Une tension et un courant idéals sont définis par une forme sinusoïdale parfaite à 50 Hz. En pratique, les appareils (type alimentations à découpage ou autres) introduisent des courants non sinusoïdaux générant de nombreuses harmoniques à 100 Hz, 150 Hz, 200 Hz, 250 Hz……et perturbent le fonctionnement des générateurs, transformateurs etc. Le THD va mesurer l’énergie contenue dans les harmoniques (Énergie totale – Énergie du signal à 50 Hz) par rapport à l’énergie principale et donner un pourcentage.
0% = une sinusoïde parfaite à 50 Hz,
100% = toute l’énergie se trouve dans les harmoniques
Ici, pour des simplicités de calcul, le résultat inclus l’énergie du bruit N en plus des harmoniques.
Exemples harmoniques
Ci-dessous trois cas de consommation/production. Le point de mesure est au niveau du compteur de la maison. Attention les échelles en verticale ne sont pas les mêmes. Les courbes sont toujours calées au max du graphique.
Pas de production photovoltaïque (PV) et pas de Triac
Triac = ouvert à 0%
PV = 0 W
I = 3.05A
PW = 556W
PVA= 752 VA
THDI+N= 42%
Régulation avec le Triac pour amener autour de zéro la consommation en W
Triac = ouvert à 60%
PV = 2400 W
I = 2.12 A
PW = 12 W
PVA = 522 W
THDI = 99%
Surproduction
Triac = 100%
PV =3000W
I = 1.89A
PW = -261W
PVA = 469 VA
THDI+N = 53%
Fonctionnement
Toutes les 40 ms, la tension et le courant sont mesurés sur 100 points durant 20 ms. Si la puissance active Pw est orientée vers le réseau public (Pw<0), le triac s’ouvre un peu plus pour favoriser le transfert vers le chauffe-eau. Ceci est répété jusqu’à atteindre le point d’équilibre ou Pw est proche de zéro.
Si la température est atteinte, le thermostat du chauffe-eau coupe l’alimentation de la résistance. Dans ce cas, le routeur va ouvrir au maximum le triac, mais aucune surproduction ne sera consommé. La valeur Pw va devenir fortement négative, du niveau de la surproduction. À partir d’une certaine valeur, on peut activer (en option) un relais pour consommer sur un autre appareil. On l’arrête si la surproduction cesse. Attention d’avoir une différence entre le seuil d’enclenchement et d’arrêt supérieur à la consommation de l’appareil afin de ne pas avoir une entrée en oscillation du relais.
La nuit, si le niveau de chauffe du ballon n’est pas atteint, on laisse le relais Jour/Nuit d’Enedis prendre le relais (s’il est conservé) ou l’on peut programmer le routeur pour qu’il ouvre le Triac (23h à 4h en hiver). Le routeur prend l’heure sur le réseau internet. Attention, en cas de coupure d’internet, il risque de se désynchroniser. Mettre une plage horaire d’activation qui couvre l’horaire d’hiver et d’été pour éviter les mises à l’heure.
Dans le code source, vous trouverez un reporting vers le système Domoticz. C’est un exemple, en option, pour envoyer des données vers l’extérieur si besoin. Si vous ne le souhaitez pas, passez en commentaire la ligne 435 :
// SendToDomoticz();
Si vous l’utilisez, mettez à jour les paramètres de votre serveur Domoticz autour de la ligne 90.
Dans un souci de simplification, j’ai limité à l’essentiel les fonctionnalités. Les personnes à l’aise dans la programmation peuvent rajouter d’autres Triacs ou relais. De même, il est possible de rajouter une sonde de courant de 20A pour mesurer et afficher le courant envoyé au chauffe-eau.
Page Web
Le code installé sur l’ESP32 comprend un serveur Web qui permet d’afficher sur une page, les différentes mesures ainsi que les courbes de la tension et du courant durant une période de 20 ms. Il suffit de rentrer l’adresse IP de l’ESP32 dans le champ d’adresse de votre navigateur web.
En mode « Auto », le système ajuste l’injection vers le chauffe-eau afin de ne plus envoyer de la surproduction vers le monde extérieur. On peut forcer, à la main, d’autres niveaux d’injection.
Il est possible d’afficher à distance ces mêmes informations sur un petit écran défini ici: https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/
Montage
Dans une boite d’électricien, on installe :
- La carte ESP32 (Development Board 2*19 pins) chez Aliexpress ou plus rapidement une carte 2*16 broches ESP 32 Wroom chez uPesy.fr)
- Une alimentation 230V – 5V 1A DC pour l’ESP32
- Un transformateur basse tension 230V – 6V AC pour mesurer la tension (Aliexpress)
- Un gradateur 16A ou 24A de RobotDyn suivant la puissance du chauffe-eau (Aliexpress)
- Sonde de courant 100A/50ma (Aliexpress)
- Résistances R1 et R2 : entre 470 et 820 Ω 1/4 ou 1/8W
- R3 : 24 Ω 1/4W
- R4 : 24000 Ω 1/4 ou 1/8 W (À ajuster suivant transformateur)
- R5 : 4700 Ω 1/4 ou 1/8W (À ajuster suivant transformateur)
- R6 et R7 : 4700 Ω 1/4 ou 1/8W
- Condensateur C1 : 10μF ou plus en 12V ou plus
- Condensateur C2 : 220μF à 470μF en 12V ou plus
- 2 LEDS en face avant
- Du fil de câblage et une plaque à trou pour le montage
- Un fusible (option) pour protéger l’arrivée 230V
Raccordé à cette boite, on a la sonde de courant à placer autour du fil de phase du secteur à mesurer. Relier le blindage à la masse pour éviter de capter du bruit électrique.
Dans le schéma ci-dessous, on garde le contacteur Jour/Nuit et on installe en parallèle le routeur.
Remarque: le routeur ne coupe pas le neutre mais la phase uniquement.
Code Source
L’ensemble du code est écrit en utilisant l’IDE Arduino. Il est injecté dans un premier temps par la liaison série, puis une fois en place, on peut le modifier si besoin par le WIFI comme décrit ici. Il faut dans les préférences de l’IDE, 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
Le code source est composé de 3 fichiers installés dans le même dossier :
– le fichier principal SolarRouter_v2.ino
– le fichier PageWebb.cpp qui contient le code HTML et Javascript de la page web
– le fichier PageWeb.h de déclaration
Le code source est disponible ici:
Dezipper l’ensemble et ouvrez dans l’IDE Arduino (version 2.xx) le fichier SolarRouter_v2.01.ino.
Vérifiez que vous avez les bibliothèques installées sur votre IDE Arduino :
– RemoteDebug
– NTPClient
Pour la compilation du fichier SolarRouter_v2.01.ino, veuillez sélectionner la carte ESP32 Dev Module. Avec certaines cartes, si le téléversement du code dans l’ESP32 ne se fait pas, il faut presser sur le bouton boot au début de la tentative de téléversement.
Personnalisation
Il est nécessaire de modifier les premières lignes du code afin de donner à l’ESP32 les caractéristiques de votre réseau ethernet à la maison.
//WIFI
const char* ssid = "nom_du_reseau_wifi"; //Put here your WIFI SSID
const char* password = "12345678"; //Put here the WIFI password
// Set your Static IP address
IPAddress local_IP(192, 168, 0, 208);
// Set your Gateway IP address
IPAddress gateway(192, 168, 0, 254);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(8, 8, 8, 8); //optional
IPAddress secondaryDNS(8, 8, 4, 4); //optional
À la première ligne, mettez le nom de votre réseau Wifi auquel l’ESP32 devra se connecter.
À la deuxième ligne, mettez le mot de passe de votre réseau Wifi.
Il faut ensuite donner une adresse IP (IPAddress local_IP) à votre ESP32 (c’est comme un numéro de téléphone). En général, les box internet ont un champ d’adresses dynamiques (qui peuvent changer à tout moment) qu’elles attribuent lorsque que quelqu’un se connecte au WIFI. Si c’est votre smartphone, c’est parfait, vous ne cherchez pas à communiquer avec lui. Pour l’ESP, il faut lui attribuer une adresse fixe. En allant faire un tour auprès de votre box à la rubrique réseau / DHCP, vous trouverez le champ des adresses dynamiques. Par exemple, souvent les Livebox d’Orange attribuent des adresses dynamiques DHCP entre 192.168.1.10 et 192.168.1.150. Il vous reste alors un champ libre pour attribuer vos propres adresses entre 192.168.1.151 et 192.168.1.253. Souvent les .254 et .255 sont réservés à autre chose. Vous pouvez ainsi donner comme adresse 192.168.1.200 à l’ESP32 si aucune autre machine sur le réseau occupe déjà cette adresse.
IPAddress gateway correspond à l’adresse IP de votre box. C’est elle qui fait la passerelle (gateway) avec le monde extérieur. Chez Orange, c’est en général 192.168.1.1. Chez Free, c’est plutôt 192.168.0.254. Les trois premiers chiffres 192.168.0 ou 192.168.1 doivent être les mêmes pour la box et votre ESP. C’est ce qui est traduit par le masque subnet (255,255,255,0) qui dit que les 3 premiers chiffres sont fixes sur le réseau et le dernier peut changer d’une machine à l’autre.
Toutes ces adresses sont au format IPV4, ancien format bien pratique mais qui sature et est en cours de remplacement par IPV6. Si vous avez un PC sous windows, tapez cmd dans le moteur de recherche en bas, puis dans la page à fond noir vous tapez ipconfig . Vous en saurez un peu plus sur votre réseau et l’adresse IP de votre PC
Les primaryDNS et secondaryDNS correspondent aux « Domain Name Server » ceux qui veut dire les serveurs d’annuaires. Quand vous tapez une adresse http://ToTo.com, ces serveurs convertissent le nom en adresse IP, seule compréhensible par les machines. Ainsi votre ESP quand il doit chercher l’heure chez « fr.pool.ntp.org », il peut trouver un serveur. Ne les changé pas.
Forçage de nuit
Le code comprend un forçage de nuit de 23h à 4h. Si vous voulez le retirer, passez le en commentaire en mettant en début de ligne //
//if (hour >= 23 || hour <= 4) { //Force water Heater ....
// ModeHeater = 5;
// retard = 0;
// retardF = 0;
// }
// if (LastHour == 4 && hour == 5) { ModeHeater = 0; } // Back to Automatic mode
Bugs Soft
Attention, si vous n’arrivez pas à communiquer entre votre PC et l’ESP32, c’est qu’il vous manque le driver pour l’interface USB. En général, c’est le CP2102 qui se trouve sur la carte ESP32. De nombreux Tutos sur internet expliquent comment l’installer. Exemple: https://techexplorations.com/guides/esp32/begin/cp21xxx/
L’IDE Arduino va vous demander un mot de passe lors de la compilation. Répondez n’importe quoi, 1 lettre minimum.
Parfois avec l’IDE Arduino en fin de transfert, l’icone reste jaune et vous n’avez plus la main. Fermez l’IDE et le relancer.
Sur certaines configurations, lors de la compilation, il y a une erreur de librairie inexistante :…..include <hwcrypto/sha.h>
Avec un editeur de texte, ouvrez le fichier dans vos bibliothèques Arduino C:\Users\Utilisateur\Documents\Arduino\libraries\RemoteDebug\src\utility\Websockets.cpp
Le début de l’adresse peut changer suivant l’utilisateur. Retrouvez le dossier Arduino pour localiser le fichier dans les sous-dossiers.
A la ligne 42, remplacez :
#include <hwcrypto/sha.h>
par
#include <esp32/sha.h>
Ne me demandez pas pourquoi, sur mon PC de bureau, je n’ai pas besoin de faire cette modification, sur mon PC portable, j’ai besoin.
Diagramme fonctionnel
Le gradateur avec le signal Zero Crossing toute les 10ms, permet de synchroniser l’ensemble en activant une interruption sur l’ESP32. Un timer fourni une interruption interne toute les 100μs permettant de générer un retard de 0 à 10ms par pas de 100μs pour déclencher l’ouverture du triac à l’instant défini par le logiciel.
Toutes les 40ms et durant 20ms, 100 valeurs de tensions et 100 valeurs de courants sont prélevés et stockés. Ensuite, les calculs de puissance sont effectués et peuvent être envoyés au client web qui les demande.
Heure de la douche
Maintenant que vous avez je l’espère bien compris le fonctionnement, vous remarquerez qu’il faut prendre sa douche le matin les jours de grand soleil afin de profiter de la surproduction à midi.
Exemple de routage
Dans cet exemple, il y a une légère surproduction. L’ouverture du triac vers le chauffe-eau est de 76% du temps. Le système se régule pour avoir une puissance échangée avec le réseau public autour de 0 (ici -16W). Sur une durée de sinusoïde de 20 ms, on a des périodes en orange où l’on consomme (produit U*I >0) sur le réseau public et des périodes en vert (produit U*I<0) où l’on injecte sur le réseau. Le somme des 100 mesures du produit U*I sur la période de 20 ms donne un résultat proche de zéro (-16 W). Par contre, pour le calcul de la puissance apparente qui est le produit de la tension et du courant efficaces qui ne tient pas compte du signe (voir formules ci-dessus), on a une valeur importante (776 VA).
Cette courbe est chahutée pour 2 raisons :
– le triac n’est ouvert que 76% du temps. Dans une demi-période de 10 ms, on envoie du courant au chauffe-eau en dents de scie (voir courbe ci-dessus) ce qui se traduit à l’entrée de la maison par des phases de consommation et d’injection suivant la réponse des onduleurs. Avec un bilan de puissance active (W) proche de zéro
– nombre d’appareils (comme les chargeurs, les alimentations d’appareils électroniques.) ne consomment pas un courant sinusoïdal et cela ressort plus lorsqu’il n’y a pas une grosse charge résistive qui consomme.
Votre fournisseur d’électricité vous facture en fonction des W ou Wh et non pas sur le VA (puissance apparente).
Sécurité
En travaillant sur ce projet en 230V, vous acceptez d’assumer la responsabilité de votre propre sécurité et de prendre toutes les précautions nécessaires pour éviter les accidents électriques.
Responsabilité
Articles sur le photovoltaïque
- Routeur photovoltaïque V12 – Affichage et paramétrage
- Routeur Photovoltaïque – Raccordement à un chauffe-eau
- Routeur Photovoltaïque – Installation rapide du logiciel
- Routeur photovoltaïque piloté via MQTT
- Capteur SmartGateways / Siconia pour routeur photovoltaïque
- Routeur photovoltaïque – Modes de régulation
- Routeur photovoltaïque – Affichage et paramétrage
- Routeur photovoltaïque – Réalisation matérielle
- Réalisation d’un Routeur photovoltaïque Multi-Sources Multi-Modes et Modulaire
- Routeur photovoltaïque – Installation manuelle du logiciel
- Capteur Shelly Em™ – Shelly Pro Em™ pour routeur photovoltaïque
- Exemples Montage Routeur Photovoltaïque F1ATB
- Capteur Enphase – Envoy-S Metered™ pour routeur photovoltaïque
- Routeur photovoltaïque simple à réaliser
- Capteur UxIx2 ou UxIx3 pour routeur photovoltaïque
- Triacs gradateurs pour routeur photovoltaïque
- Capteur Linky pour routeur photovoltaïque
- Capteur UxI pour routeur photovoltaïque
- Programmation de l’ESP32 – Application au routeur Photovoltaïque
- Chauffer votre piscine avec l’excédent d’énergie Photovoltaïque
- U x I : Routeur Solaire pour gérer la surproduction photovoltaïque (DIY)
- Panneaux Photovoltaïques Intégrés Au Bâti (IAB) d’un abri voiture
- Réalisez un Routeur Solaire avec un Linky (DIY)
- Câblage de panneaux Photovoltaïques à des Micro-Onduleurs en Autoconsommation (DIY)
- Démarches Administratives pour le Photovoltaïque
- Affichage à distance consommation ou surproduction électrique
- Réalisez un Routeur Solaire pour gérer la surproduction
- Câblage de panneaux Photovoltaïques à un onduleur en Autoconsommation (DIY)
- Panneaux Photovoltaïques Intégrés Au Bâti (IAB)
- Routeur Solaire. Mesure de Puissance avec un ESP32
Bonjour André,
Merci pour ton tuto !
j’aimerais savoir pourquoi passer par un gradateur, est-ce que je ne peux simplement pas activer un relais pour forcer la marche du CE en fonction des conditions Puissance et température ?
Merci d’avance
Sur mon site F1ATB.fr, il y a une version V1 du routeur avec relais :
https://f1atb.fr/index.php/fr/2022/06/02/mesure-de-puissance-avec-un-esp32/
Dans la version V2 du routeur, il y a un gradateur et un relais en option.
Le gradateur a l’avantage de pouvoir envoyer vers le chauffe-eau des puissances réduites, si peu de surplus est disponible.
Ex: un chauffe eau de 2000W, si on l’enclenche avec un relais, il consomme 2000W. Si seulement 500W de surplus sont disponibles, vous prendrez 1500W sur le réseau public. Avec un gradateur, si vous n’avez que 500W de dispo, vous n’enverrez que 500W au chauffe eau.
On n’utilise pas de capteur de température, c’est le thermostat mécanique du chauffe-eau qui s’en charge.
De plus où peut-on trouver les librairie ?
Voir la gestion des bibliothèques dans l’IDE Arduino.
Bonjour, Merci pour ton tuto, très bien expliquer.
Actuellement j’ai une installation avec Home assistant, peut tu me dire comment faire pour remonter les infos ?
Il faut passer par un broker MQTT comme core-Mosquitto.
@F1ATB André
Bonjour André,
J’aurais besoin de 2 petites précisions de votre part:
-1) Pour la calibration de kV et kI, peut-on partir sur les valeurs des lignes 73 et 74 du programme, c’est à dire kV=0.2083 et kI=0.0642 et après avoir branché le routeur, lire au moyen d’un voltmètre et d’une pince ampèremétrique les valeurs réelles et les comparer aux valeurs affichées par le système pour effectuer les corrections si nécessaires? Je veux dire, n’y a-t-il pas de risque particulier à faire tourner le programme avec les valeurs kV=0.2083 et kI=0.0642 , même si elles sont quelque peu éloignées des valeurs exactes?
-2) Je n’ai pas de système de gestion domotique; me suffit-il de mettre un « ; » devant les lignes concernées (ou les encadrer par /*…*/)? 90…92 ; 160…174 ; 177…192 ; 434
D’avance merci pour vos réponses.
RB
Vous avez bien compris le calibrage. Vous ne risquez rien. Non calibré les valeurs affichées seront fausses c’est tout.
Pour enlever l’envoi au système Domotique (Domoticz ici) il faut envever uniquement la 434 SendToDomoticz();
Vous pouvez également enlever le reste que vous avez mentionné.
Cdlt
André
@F1ATB André
Merci beaucoup pour ces précisions.
Cordialement,
RB
Un peu comme dans le message précédent, pour un second montage, je n’ai pas de domotique, ni besoin de lien wifi, aussi j’aimerai simplifier la page de code . Hélas novice, je crains de supprimer les lignes superflues, si une âme charitable pouvait faire ça, réécrire le code ou identifier les blocs précisément…C’est abuser ! rapport au travail déjà offert, je l’admets sans conjecture…Merci.
Je vous envoie une version sans wifi. Sachant que vous ne pourrez pas forcer l’envoi de l’energie au chauffe eau.
Cdlt
J’ai bien reçu et témoigne encore ici de ton dévouement remarquable à cette cause commune…Formidable. Grand merci et bonne continuation dans tes passions et compétences.
Ce système marche à merveille…en le fabricant on assume réglages et adaptations, sans parler de l’aspect économique. Toute installation autonome devrait posséder ce « truc ». Bravo André.
@F1ATB André
Rebonjour André,
Juste pour info…
Vous avez soudé toutes les broches de l’ESP32 sur le PCB ?
Ou seulement celles qui sont utilisées dans le montage ?
+3,3V GND
GPIO35 GPIO23
GPIO32 GPIO22
GPIO33 GPIO19
GND GPIO18
(GPIO05)
Sur ma carte j’ai des picots à toutes les broches et j’utilise des câbles dupont pour l’interconnexion.
Bonjour André
Il serai possible d’avoir le lien pour pouvoir avoir la version sans WIFI.
Je vous remercie d’avance
Bonjour André,
Bravo super tuto et je vais me lancer dans la fabrique de ce routeur, mais avant je voulais savoir si il y aura une évolution avant que je lance la fabrique car j’ai fais un PCB pour avoir un petit montage propre.
Pas d’évolution prévue. Peut-être un autre type de routeur.
Bonjour André,
Même pas un nouveau capteur de courant pour connaitre la quantité de courant routé ?
Merci d’avoir partager votre travaille.
Bonsoir, pcb presque fini
https://zupimages.net/viewer.php?id=23/10/gp4e.png
Superbe réalisation.
Merci
Superbe. Vous auriez les fichiers gerber à partager?
Ok merci pour la réponse
Bonjour André, et merci pour votre partage
Vous avezconseillé pour « courbe rouge de tension sur l’affichage est plate en haut et en bas, il faut augmenter R4 ou diminuer R5 ».
Est ce qu’il y a une régle de calcul pour régler le probléme, ou bien on fait en tatillonnant?
L’ESP converti les signaux analogiques entre 0 et 3.3V. On a un point milieu de 3.3V/2=1.65V auquel on ajoute la sortie alternative du transformateur. Celle-ci ne doit pas dépasser 1.65V crete ou -1.65V crete pour qu’additionné au point milieu, on reste bien entre 0 et 3.3V. Regardez la courbe rouge sur le site sur le GPIO32.
On peut donc mesurer la tension en sortie du transformateur et ajuster le pont diviseur R4/R5 pour avoir quelque chose autour de 1.4v crête pour se garder un peu de marge. Attention quand vous mesurez la sortie du transfo, c’est une valeur efficace. Il faut multiplier par racine de 2, soit 1.414 pour avoir la valeur crête.
Bonjour andré j ai realisé la copie de votre routeur et malgré quelques doutes je pense avoir réussi à coller à votre original et je vous remercie pour cette source de compétance mise à notre disposition il me reste quelques controls à réaliser notament les valeurs sur le 1,65v
car petits problèmes de metrix si non j ai réussi à calibrer les valeurs de courant et ampérage
petites questions comment savoir ce que nos panneaux produisent sur le tableau de l adresse IP?
si non petit probleme mon routeur declenche le robodyn vers 23h – 23h30 le soir et je pense que ce n est pas très normal? alors je le débranche mon heure creuse se situe à 1h30 le matin
merci pour votre expertise
georges
Le système ne connait pas la valeur produite par vos panneaux. Avec la sonde de courant, il mesure ce qui se passe à l’entrée de la maison. Il y a la consommation des appareils en cours qui rentre en compte.
Le déclenchement du triac à des heures bizarres doit venir d’une mauvaise mesure de courant avec la sonde. Ou vous avez une bobine aimantée à côté, ou vous avez une ligne de raccordement au routeur qui capte des parasites. Pour cela, je conseille du fil torsadé ou mieux du torsadé et blindé comme le câble réseau ethernet.
bonsoir andré merci pour votre réponse . En ce qui concerne la mise en route du triac en fait c’est toujours à 23 heures précise j ai pu le vérifier encore ce soir et en survolant le progamme à la ligne
301 il y a if (hour >=23 hour <=4) est ce que cela serai mon problème? avant de modifier et vérifier
la sonde (pince ampèremétrique)
merci pour votre réponse
georges
Oui, vous avez raison. Sois vous modifier l’heure sachant que ce sont des heures d’hiver (GMT +1), sois vous enlevez les 4 lignes, le if (hour …….}.
bonjour et bravo pour vos publications, c’est clair net et précis. Je pense tester ce routeur sur esp32-eth0, pour éviter le wifi.
J’anime un blog également, HTTPS:// domo.rem81.com je ferai référence au votre. Salutations
@F1ATB André
Bonsoir André,
AliExpress m’a fait quelques chinoiseries…😢😢😢
En fait de transformateur 220V / 6V, ils m’ont livré (très en retard) un 220V / 12V.
Je m’en suis aperçu et ai cherché un peu moins loin un composant plus proche de celui préconisé; en vain.
Alors j’ai essayé de m’adapter à la situation: sur une plaque d’essai, j’ai branché mon 220v / 12V et j’ai modifié le pont diviseur: j’ai gardé R5=4,7K ai j’ai mis R4=67K (au lieu de 24K); je trouve alors 0.97V aux bornes de R5 lorsque le transformateur est sous tension.
Pensez-vous que je peux faire mon montage avec cette combinaison?
D’avance merci pour votre retour.
RB
PS: Et bravo à Thierry260 pour son PCB 👍👍👍 C’est très pro!
Parfait, si vous avez 0.97V au borne de R5, c’est une mesure en alternatif? je suppose. Multiplier par racine de 2, cela nous fait 1.37V crête. L’entrée GPIO32 verra du signal à 1.65v-1.37=0.28V min à 1.65V+1.37V=3.02V max. On est bien dans la plage 0 à 3.3V et pas trop près des extrêmes pour se garder de la marge et la conversion analogique digital est un peu fausse en bout d’échelle.
Merci beaucoup André pour votre réponse et les précisions qu’elle comporte.
Oui, bien sûr les 0.97V sont mesurés en alternatif.
Donc je poursuis mon montage avec ces composants.
A plus tard, probablement…
Bonne soirée,.
Bien cordialement,
RB
Merci, avant de commander je suis entrain de me faire un pcb pour mettre le dimmer en rail din et peut-être me faire un pcb qui inclu l’esp , dimmer et le relais.
Bonjour Thierry, bravo pour votre PCB.
Par hasard en proposeriez vous ?
Merci, Joris
Voila le PCB alim et PCB routeur/dimmer/relais
La LED1 c’est bien la verte ?
https://zupimages.net/viewer.php?id=23/11/w57u.jpg
bonjour,
intéressé par le routeur solaire avec ESP32
je me permet de vous demander s’il etait possible d’avoir le PCB
bonne soirée
Désolé, mais je n’ai pas développé de pcb. Il y a Thierry260 dans les commentaires qui s’est lancé dans la réalisation d’un pcb.
Bonjour André,
Serait il possible de me dire si la led2 gpio 19 est bien celle de la conso?
Pour l’opto du relais je suis parti sur un pc817.
Et je remet le pcb fini.
Petite info sur le pcb:
j’ai mis des trous pour pouvoir mettre un dimmer 8A
Le pcb est re coupable pour permettre de séparer la partie dimmer du routeur si besoin.
Pour le partie relais j’ai mis une sortie externe pour un relais externe est un relais intégrer qui est relier sur le même gpio 29 mais possible de basculer ce relais intégrer sur un autre gpio depuis le jumper et en rajoutant un fil entre le pin du jumper et un gpio X (pour ce plus bien sur il faut rajouter du code) ced qui permet de pouvoir utiliser 2 relais avec le routeur.
Pour l’instant je n’ai pas encore tester le routeur car j’ai pas encore reçu l’esp, l’alim que j’ai fais c’est ok sur le AC je sort du 1v au multimètre.
https://zupimages.net/viewer.php?id=23/11/7h13.jpg
Quand on consomme sur le réseau public, c’est GPIO18 qui clignote. Quand on fournit au réseau public, c’est GPIO19 qui clignote.
Merci pour l’info, c’est un point que je n’avais pas trouvé.
Bonjour GAIGNER,
J’ai presque fini la conception du pcb et si toutefois il y a des besoin je ferai fabriquer une 10z de pcb.
Après il faut voir si c’est pour des pcb nu ou équiper
bonjour,
équipé pourquoi pas ,,,dans se cas on s’arrange
bonne soirée
Quand je dis équiper c’est sans l’esp n’y le dimmer 24A , bon je viens de commandé 5 pcb pour déjà tester car par 10 ça chiffre vite vu que je dépasse les 10×10
Bonjour,
je suis avec intérêt ce fil depuis le début et si Thierry260 réalise des PCB je veux bien me porter acquéreur. En attendant j’ai reçu mes pièces et je vais commencer à monter un premier proto pour tester . Un grand merci à André et Thierry.
Bonjour Laurent46,
Je pense recevoir les pcb d’ici 10 jours et il faut que je test la carte et si tous est ok, alors pas de problème pour en vendre mais pour l’instant je n’ai commandé que 5 cartes pour voir.
Bonjour André un grand merci à vous pour cet mise à disposition de vos compétences
je pense avoir réussi à copier votre routeur et à calibrer les valeurs du voltage et de l’ intancité
il me reste à vérifier le 1,5 v mais soucis de metrix donc à voir plus tard…..
j ai donc fait la mise en route et tout a l air de fonctionner sur ma page web par contre j ai un doute sur la lecture du tableau comment l’ interpreter losque le chauffe eau n ‘est pas alimenté par le robodyn est ce que la valeur pw est ce que produit les panneaux et injecté à la maison ?
le routeur se comporte apparament bien en journée mais le robodyn se met en route vers 23H _23H30et cela à plusieurs reprises donc je le déconect car mon heure creuse edf est à 1h30 y a t il une erreur de ma part ou bien un paramétrage que j ai oublié
merci pour vos conseilles si ce n est pas trop abuser
encore un grand merci pour le partage de votre travail
Le système ne connait pas la valeur produite par vos panneaux. Avec la sonde de courant, il mesure ce qui se passe à l’entrée de la maison. Il mesure la consommation des appareils en cours moins la production des panneaux photovoltaïques.
Le déclenchement du triac à des heures bizarres doit venir d’une mauvaise mesure de courant avec la sonde. Ou vous avez une bobine aimantée à proximité, ou vous avez une longue ligne de raccordement au routeur qui capte des parasites. Pour cela, je conseille du fil torsadé ou mieux du torsadé et blindé comme le câble réseau ethernet.
Bonjour,
Un grand bravo pour tout ce travail et ces partages. J’ai regardé vos vidéos et je dois dire que c’est clair !
Je compte par conséquente me lancer dans la réalisation du miens, néanmoins il va falloir que je regarde pour pouvoir dialoguer avec mon interface Domotique Home Assistant.
Pensez vous qu’il soit possible de mettre en place un dialogue via MQTT pour ça ? Merci
Joris
Oui pas de souci pour envoyer par MQTT, c’est quelques lignes de code.
Bonjour,
Avez-vous dans vos projets un routeur pour une installation en triphasé ?
Merci
Non malheureusement. Je n’ai pas de triphasé chez moi pour faire les essais.
Merci pour cette documentation complète.
J’avais déjà réalisé un routeur photovoltaïque à base d’arduino nano.
Ce montage à base d’ESP32 me permet la gestion par ma domotique, j’ai implémenté MQTT dans votre code pour entre autre récupéré le pourcentage de charge.
J’ai modifié le code de la page internet pour être plus adapté à ma situation, car je n’utilise pas de chauffe-eau, mais un radiateur dans mon garage.
Parfait. Mettez si vous le souhaitez en commentaires les quelques lignes de code pour la sortie MQTT. Cela peut intéresser d’autres personnes. Je le ferai dans quelque temps seulement pour une nouvelle version du logiciel.
Bonjour fratton,
je suis intéresser par les lignes de codes pour le mqtt car j’utilise jeedom pour la domotique
Pour mon code, j’utilise ESP32 pour plusieurs fonctions : capteur de température + Humidité du garage + un afficheur OLED… Donc il faudrait que je nettois le code pour le publier.
J’utilise la bibliothèque PubSubClient.h
Un tuto pour capteur partie « Code Arduino pour publier des données », ce n’est pas bien compliqué
https://arduino.blaisepascal.fr/mqtt-avec-arduino/
Merci pour les infos, j’ai déjà essayé de faire quelque chose mais entre le code et moi il y a un océan de langage
Inclure la bibliothèque en entête
#include
//Config du serveur MQTT (Broker)
#define MQTT_BROKER « 192.168.1.100 »
#define MQTT_BROKER_PORT 1883
#define MQTT_USERNAME « user »
#define MQTT_KEY « password »
en bas ajouter la fonction
void SendToMQTT() {
WiFiClient espClient;
PubSubClient client(espClient);
client.setServer(MQTT_BROKER, MQTT_BROKER_PORT);
client.connect(« solarrouter », MQTT_USERNAME, MQTT_KEY)
String s_pw=String(PW);
client.publish(« solarrouter/pw »,s_pw.c_str());
String s_retard=String(retard);
client.publish(« solarrouter/retard », s_retard.c_str());
client.disconnect();
}
Appeler la fonction SendToMQTT() dans la boucle principale, comme l’appel de SendToDomoticz()
Il suffit ensuite de controler sur le broker le topic solarrouter
Ce n’est pas très optimisé, car on se reconnecte à chaque fois au serveur, il vaudrait mieux optimiser le code avec un seul client wifi et une connexion permanente au serveur.
PS: Je n’ai pas testé seulement ce code. Il y a peut-être quelques erreurs.
La bibilioteque en entête
//MQTT
#include
le nom de la bibliothèque disparait, c’est
PubSubClient.h
Merci pour votre réponse qui pourra aider certains.
Pour la mise en place de MQTT, voici l’exemple que j’ai utilisé et qui fonctionne très bien en plus d’être complet (publish + subscribe) : https://byfeel.info/client-mqtt-dans-votre-module-esp/
Merci
Bonjour,
Pour André : Votre prochaine version sera seulement des modifs logicielles ?
Pour Thierry260 : est-il possible de se procurer un ou 2 pcbs svp ?
Merci a vous deux
Thierry
Bonjour Thierry,
J’ai 5 carte en commande et il faut que je test avant, si tous est ok je pourrai voir pour en vendre .
Pour ce routeur, j’ai en tête quelques améliorations logicielles que je ferai dans les semaines à venir.
Bonjour André,
Si toutes fois il y a modif du code , est-ce qu’il serait possible d’avoir l’activation d’un relais des que le dimmer est activer et une tempo d’arrêt si le dimmer est couper.
L’intérêt serait de pouvoir refroidir le dimmer par ventilation, je me débrouille en électronique mais c’est pas le cas pour le code.
Bon idée je pense mais cela impliquerait en plus un capteur de Temp du style ds18b20 par ex ?
Pas forcément si c’est sur une condition lorsque le pwm est actif
Bonjour Thierry,
De mon côté j’ai tout simplement branché un ventilo sur transfo lui même branché sur le gradateur en parallèle du ballon. Dès qu’il y a routage le ventilo se met à tourner. Basic mais fonctionnel.
Bonsoir Christophe,
oui c’est une solution mais j’ai fais un pcb et tant cas faire c’est de l’intégré dessus pour rester sur un montage propre et mon idée est de partir avec un ventilateur 5 V ce qui permet d’utiliser la même alim que le routeur. Et je me suis déjà fais une alim AC et DC sur une carte.