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
hummm désolé mais ça ne passe pas en entier..
Oui les caractères spéciaux sont enlevés par wordpress/HTML, il faut les entourer des balises code (bouton à droite du menu) et /code ex dans votre cas que vous expliquez bien :
if (PW < -600) { //switch On a relay for any device digitalWrite(OptionalRelay, HIGH); }
if (PW > 300) { //Switch Off
digitalWrite(OptionalRelay, LOW);
}
Cdlt
André
Bonjour André,
je suis en train de travailler sur ce router, merci encore pour le tuto. je ne suis pas familié avec les ESP32, je bricole d’habitude avec Arduino ou Rapsberry. Peux-tu me dire exactement quelle référence d’eSP32 faut-il acheter, j’en vois plusieurs avec des pin-out différents et des nombres de broches différents (j’en ai commandé d’ailleurs un – 2x15pins- sans faire attention). Le problème est que j’ai développé un PCB sur EasyEDA sur la base de ton schema et loi de Murphy oblige celui que j’ai commandé n’est pas compatible. J’ai d’ailleurs quelques PCB disponibles (pas encore testé) si quelqu’un est intéressé…
Cordialement
Nicolas
Comme indiqué sur la page web, un ESP 32 Wroom de 2*19 broches. C’est OK.
Quelle que soit la carte, il faut les mêmes numéros de GPIO, à moins de modifier le programme.
Si vous êtes pressé, il y a une jeune société en France qui en fabrique à prix raisonnable (j’ai pas d’action)
http://www.upesy.fr
J’ai fait une commande il y a 4 jours pour une carte à 13.99€ (port compris) (2*16 broches). Livraison rapide. Elle fonctionne bien.
Cdlt
Bonjour André,
merci j’ai réussi à trouver. comme écrit ci-dessus, j’ai fait un PCB sur EASYEDA, que je viens de recevoir, voir ci-dessous:
https://www.dropbox.com/sh/qmregm32yqu4vq8/AADPeSt2snN-5_xvWber0_d0a?dl=0
Si ça vous intéresse, j’en ai en stock…
Bonjour. Je serais intéressé par 2 pcb s’il en reste .
bonjour,
deja super boulot!!
je n’ai pas encore mes panneaux mais je vais commencer a faire mon routeur.
je suis en triphasé et mon chauffe eau egalement.
j’ai cherche un peux mais les seule relais statique triphasé que je trouve sont en commande 0-5v.
auriez vous des infos la dessus?
merci
yanick
Pas d’info sur les relais en triphasé. Attention mon système décrit ici fait la mesure de puissance en monophasé.
Cdlt
J’ai terminé mon montage, ajusté KV et modifié la valeur de R4 (je suis passé à 35 K pour avoir la bonne tension, mail les résultats de la sinusoïde ne sont pas top, je ne comprend pas.
Le résultat = https://imgur.com/gZEIYrz
Mesure des tension aux bornes de :
– GPIO32 = https://imgur.com/gLJGWiz
– GPIO35 = https://imgur.com/GqV23df
A la vue de la courbe, la tension en sortie du transformateur étant plate en haut et en bas, elle est trop élevée. Elle dépasse +3.3V et descend en dessous de 0V. Cela sort de la plage d’acquisition de l’ESP qui doit être entre 0 et 3.3V et méme plus restreint pour être plus linéaire, par exemple entre 0.2v et 3.1V. Il faut donc augmenter R4 ou diminuer R5. Ensuite seulement quand la courbe ressemble à une sinusoïde, on ajuste dans le code le coefficient multiplicatif kV pour afficher la bonne valeur autour de 230V.
La valeur sur GPIO35 de 1.637V est parfaite. Il ne faut pas mesurer la tension sur GPIO32 car c’est une tension continue de 1.637V à laquelle on additionne la sortie du transfo entre -1.6V et +1.6V. Le multimètre donnera n’importe quoi, il faut un oscillo mais c’est ce que fait l’ESP32.
Cdlt
André
J’ai changé mon transfo, celui de RS me faisait une courbe bizarre et donc celui de Ali… marche bien mieux.
Une autre question :
– Comment supprimer la commande en Heures Creuses dans le programme ?
Amicalement.
Stéphane
Pour enlever le forcage de nuit.
Elever les 5 lignes autour de la ligne 300
if (hour >= 23 || hour <= 4) { //Force water Heater On during the night. Values OK for Summer and Winter even if one hour error ModeHeater = 5; retard = 0; retardF = 0; }
Merci André, c’est vraiment top ce routeur. On va se mettre à comprendre un peu plus maintenant avec l’aide d’un collègue qui maitrise mieux que moi.
En mettant la variable « ModeHeater » à 0 sur la ligne 300, cela ferai la même chose ?
ModeHeater=0 ne suffit pas il ne faut pas touche rà retard et retardF.
Pour cela, enlever
if (hour >= 23 || hour <= 4) { //Force water Heater On during the night. Values OK for Summer and Winter even if one hour error ModeHeater = 5; retard = 0; retardF = 0; }
Bravo André et merci pour tes travaux. J’ai commandé les composants pour réaliser le routeur et j’ai hâte de commencer. Je me demandais pourquoi ne pas utiliser la télé-info du compteur pour relever la surproduction mais je vois que c’est en projet…;-)…
Je regarde le fil des discussions et je vois que chacun amène sa pierre à ton édifice ! Bravo à tous.
Amitiés
Maerci.Je travaille actuellement sur une version avec Linky.
73
Bonjour et merci encore pour cette réalisation qui fonctionne à merveille !
Une question, est-il possible de faire remonter sur la page web l’état du SSR ? Je galère un peu avec cette partie de la prog…
Vous avez l’information sur la page à droite en pourcentage de fermeture du Triac.
Chauffe-eau / Water heater xx%
Dans la prochaine version je mettrai un curseur plus visible.
Cdlt
Oui j’ai vu mais je parlais plus du SSR optionnel ?
A la ligne 285 du programme
Du coup est-il possible de faire remonter son état comme c’est le cas pour le triac sur la page Web avec par exemple une remontée qui afficherai pour le relais optionnel « on » lorsqu’il est HIGH ou « Off » Lorsqu’il est LOW sur la page Web avec éventuellement un bouton de forçage comme sur le principe du triac ? J’ai fais quelques essais mais je sèche un peu j’avoue …
Oui, il est possible de remonter cette info.
Si vous attendez un peu (quelques semaines), je travaille sur une nouvelle version qui offrira cette fonctionnalité.
Cdlt
Ok pas de soucis, je vais laisser en plaque de test du coup si des évolutions sont faites ! En tout cas merci encore pour ce partage, moyennant quelques adaptations j’arrive à gérer mon stéatite via plusieurs ssr et routage au top !
Bonjour,
J’ai enfin une installation opérationnelle.
Les premiers tests avec le routeur sont bons.
(Pouvez vous me dire ou trouver la donnée (en %) d’ouverture du triac pour que je puisse l’afficher sur mon écran.)
J’ai cependant des périodes aberrantes.
Dans mon installation j’ai un tore pour le routeur (CE de 2 KW 200 L.) et un tore pour la supervision onduleur de chaine (3 KW; 8 * 375 WC en série). Et bientôt un vers la WallBox a moins que j’utilise le TIC du Linky mais j’ai toujours un doute sur les priorités sachant qu’en un c’est le VE puis le CE.
La position des tores sur la phase a t’elle un impact sur les informations collectées?
Je n’ai pas paramétré le zéro injection sur ma supervision pensant que tout le surplus ira vers le CE, bientôt vers la Wall Box en priorité, donc, logiquement pas d’injection.
Dans cette logique, j’ai positionné en premier, sortie Linky, le tore du superviseur puis du routeur. Cette position ne va elle pas affecter les performances de suivi de l’installation?
Cependant il arrive d’avoir une consommation de 300 a 400 VA sur le Linky alors que je n’ai pas de consommateur en fonctionnement (hors le bruit de fond). De même, j’ai constaté des injections sans pouvoir les expliquer (le thermostat du CE était toujours fermé)?
Avez vous un avis sur la position des tores?
Dans l’attente.
Serge
Pour les tores, il vaut mieux ne pas les mettre l’un à côté de l’autre. Cela peut fausser légèrement la mesure.
Le pourcentage d’ouverture est affiché sur la ligne Chauffe-eau / Water heater xx%.
Pour les VA élevés, cela arrive quand on est autour de zéro en consommation en W. Dans une même demi sinusoide il y a du courant en phase et opposition de phase qui fait monter les VA mais pas les W.
Cdlt
Je viens de relire le sketch mais ne trouve pas la ligne dont vous parlez « Chauffe-eau / Water heater xx%. » . Vous pouvez m’aider a la trouver?
J’ai également un doute sur les connexions K et L du tore. Quel doit être le signe du PW si je suis en surplus et alimente le CE? + ou – ? Je ne sais plus dans quel sens doit être la flèche du tore.
Merci encore pour votre aide.
Cdt
Bonjour André
Est il possible de commander le relais optionnel à partir d’un certain pourcentage de routage ?
EX: si % > 60 // switch on si % < 20 // switch off
Merci
Oui, il est possible, avec le risque d’un relais qui engage brutalement une forte puissance, faisant passer du seuil on au seuil off immediatement. Puis le système redeviendra on etc.. On va créer un oscillateur.
Merci de votre réponse rapide.
C’est pour une pompe de piscine (250w), il faut crée des nouvelles lignes ou modifier certaines ? Si oui à quel niveau ?
Encore merci
Dans la routine Overproduction à la ligne 275 vous avez toutes les variables.
La variable retard correspond à l’inverse de l’ouverture du Triac.
Retard =0, le triac conduit à 100%
Retard=100, le Triac ne conduit plus.
Vous faites un test sur retard et ensuite, appliquez un digitalWrite(OptionalRelay…
Si vous attendez un peu (quelques semaines), je travaille sur une nouvelle version qui offrira cette fonctionnalité.
Cdlt
Bonjour André,
Le routeur fonctionne à merveille.
Est-il possible d’ajouter sur l’interface Web un bouton radio (On/Off) qui actionnerait une variable pour valider ou invalider le chauffage forcé de l’eau chaude la nuit.
En cas d’absence de son logement cela permettrait de stopper le chauffage de l’eau la nuit tout en profitant du chauffage la journée en cas de soleil.
Je modifierai la procédure Read_Hour() pour conditionner le chauffage la nuit avec cette variable (mode Absence).
Pour avoir accès a distance a l’interface web j’ai ajouté un transfert de port (NAT) dans ma box. Comme l’accès a l’interface web n’est pas sécurisé, j’active à distance le port NAT dans ma Box quand j’ai besoin d’accéder à l’interface web.
D’avance merci pour votre réponse.
Philippe
Oui, c’est possible de rajouter cette interface. Si vous attendez un peu (quelques semaines), je travaille sur une nouvelle version qui offrira cette fonctionnalité.
Cdlt
Merci beaucoup André pour tout ce travail et votre disponibilité.
En plus de l’ajout d’un petit radiateur, j’ai ajouté un petit ventilateur 5v / 0.1A pour refroidir le module Triac via une toute petite interface réglable numériquement (seuils température réglables et pilotage du ventilateur en PWM) trouvé chez Aliexpress. Par contre j’ai commandé un ventilateur 2 fils au lieu de 4 fils et le ventilateur tourne en permanence. J’attends le nouveau ventilateur 4 fils. Dès les tests terminés je mettrai les liens du ventilateur et de l’interface.
OK. Le ventilateur est une bonne option pour les très grosses puissances. Le seul risque, c’est qu’au bout d’un certain temps, il se grippe et ne fonctionne plus.
Cdlt
Bonjour André merci pour votre partage.
j’ai réaliser votre routeur tout me paraît correct les mesure relevé par l’esp correcpond bien avec mes appareil de mesure. En consomation la nuit les VA correspondent bien au linky.
Par contre la journée avec un production solaire, j’ai un ecart qui le crée en puissance en W et la puissance en Va ex je suis a 0Va sur le linky sur l esp je -100w 250va et du coup un facteur de puissance dans le negatif.
je ne sais pas si c’est a cause de ses valeurs mais du coup en auto le routeur me redirige du courant dans le cumulus et me fait consommer plus que ma surproduction.
est ce que j’ai rater quelque chose?
Maxime
Bonne remarque, mais comportement normal.
Lorsque vous êtes près de l’équilibre de consommation/injection en W pendant les 20 ms d’une sinusoïde de tension, vous avez des périodes d’injections et de consommations. Le bilan en W est proche de zéro, mais le bilan en VA est parfois élevé. Ce sont les W ou Wh qui vous sont facturés et non les VA. Comme vous n’êtes pas le premier à se poser cette question, j’ai rajouté en bas de l’article une image commentée pour mieux comprendre.
Cdlt
salut.
perso j’ai utilisé cela :
Contrôleur de température de ventilateur PWM, 2 à 3 fils DC 5V 12V, Module de contrôleur de vitesse, commutateur de contrôle de température
https://a.aliexpress.com/_EuK6Rzp
fonctionne parfaitement avec un petit ventilo 40×40
Bonjour André
Je n’ai pas réussi à faire fonctionner le wifi;
Pour profiter du routeur qui par ailleurs fonctionne très bien, est il possible de neutraliser le wifi ?
D’avance merci.
Dommage pour le WIFI, vous perdez toutes les fonctionnalités de suivi. Je vous envoi la version sans Wifi.
Cdlt
Après branchements, tout est OK.
Merci.
bonjour,
je viens de reunir le materiel necessaire a la realisation de cette version de routeur solaire….
l esp est programme, « y a pu K », realiser la mise en boitier et le cablage, l installation sur site , puis les essais…. a suivre.
Maims dores et deja, « un grand remerciement a F1ATB » pour sa description et son implication….
(ainsi que pour la realisation de ce site sur lequel il y a beaucoup de choses).
Bien@tous!
Olivier ON4ZO.
Merci
autre petite suggestion, serait-il possible d’ajouter à la prochaine version la modification du seuil de régulation ? autrement dit indiquer autour de quelle valeur on souhaite que le routeur travaille …. 0w ou 15 w par exemple…. cela permet d’être sur de ne jamais injecter..
C’est déjà dans le code de la future version en construction.
Cdlt
merci d’avance !
bonne continuation.
Bonjour André, Bravo pour cette réalisation.. j’ai monté le hardware en utilisant un esp32 lolin32, programmé l’esp32. le prog fonctionne correctement. il me reste les reglages tension et courant a faire. J’aimerais apporter une modification au prog pour ajouter une page web de configuration des parametres pour eviter que ce soit codé en dur dans le prog. Avez-vous des exemples de pages web permettant la saisie de données ( sur le meme principe que les cases a coches de votre page web) ou pouvez-vous m’aider a le faire ? cdlt gerard
Je suis en train de travailler sur une nouvelle version qui aura une page web pour fixer les paramètres.
Il y aura beaucoup de nouvelles fonctions. Il faut attendre un peu (qq semaines) pour que je finalise et teste.
Cdlt
Bonjour André. J’étais très emballé à l’idée de la réalisation de ce routeur plutôt simple à réaliser et sympa. Le hic, il y a un mois je découvrais le mot Arduino. En retraite depuis quelques années, je ne suis pas la génération PC à l’école et encore moins Arduino. Malgré tout après beaucoup de galère, je pensais toucher au but. Et à la phase transfert du lociciel sur la carte je reçois des messages d’erreurs copiés ci-dessous. Si tu pouvais décoder. Merci
C:\Users\ejeze\SolarRouter_v2.01\SolarRouter_v2.01\SolarRouter_v2.01.ino:26:25: fatal error: RemoteDebug.h: No such file or directory
compilation terminated.
Utilisation de la bibliothèque WiFi version 1.0 dans le dossier: C:\Users\ejeze\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi
Utilisation de la bibliothèque ESPmDNS version 1.0 dans le dossier: C:\Users\ejeze\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\ESPmDNS
Utilisation de la bibliothèque WebServer version 1.0 dans le dossier: C:\Users\ejeze\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WebServer
Utilisation de la bibliothèque ArduinoOTA version 1.0 dans le dossier: C:\Users\ejeze\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\ArduinoOTA
Utilisation de la bibliothèque Update version 1.0 dans le dossier: C:\Users\ejeze\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\Update
exit status 1
Il faut regarder la première erreur
Il manque la bibliothèque RemoteDebug dans l’IDE Arduino
A priori vous ne l’avez pas installé.
Allez dans Outils/Gérer les bibliothèques, sélectionnez ‘installed’ et regardez si vous avez :
RemoteDebug par Joao Lopes
Cdlt
Merci. J’avais vérifié que remotedebug er ntpclient étaient bien dans la bibliothèque, mais n’avait pas compris qu’il fallait cliquer sur installer. Désolé du dérangement pour des questions certainement basiques, mais pour moi c’est bloquant. ça a permis d’avancer mais nouveau message :Failed uploading: no upload port provided. Quand je vais dans outils, la rubrique port est grisée. Pb de driver, pourtant mon PC est récent, et j’ai vu le composant CP2102 reconnu sur le PC
Oui il faut trouver le driver qui va avec votre carte ESP. Pour faire des essais vous pouvez uploader un petit programme pour ESP donné dans les exemples. Cela ira plus vite.
Port grisé, de ce que j’ai compris c’est driver absent. Je suis donc ta procédure, et lorsque je clique sur CP210x Universal Windows Driver (site silicon labs), il ne se passe rien. J’essaie de trouver une autre procédure sous google, à chaque fois, je me retrouve sur ce site silicon labs.
je me suis inscrit sur le site silicon labs, ce qui ne change rien
avec un pc sous windows 10, le simple fait de connecter la carte esp32 affiche un message en bas a droite . il faut ensuite aller dans les parametres/systeme, gestionnaire de peripheriques.. si le port usb est bien installé, il y aura une ligne dans ports, sinon il y aura une ligne avec port non reconnu ou de ce style. cdlt. gerard
genial. Si vous avez besoin d’un testeur, je suis volontaire. egalement si je peux aider, je suis dispo, mais mes competences en dev soft sont limitées. cdlt. gerard
Bonjour @tous,
je vois que tout le monde avance bien dans ce projet, surement pour se preparer a la saison de production?
J ai 2 questions…
a)j ai un compteur de 40A , puis je mettre une resistance de 50 ohms (2000/40) sur le TI ?
b)le jus ici (belgique) est de type 3X230 DELTA(3X230 SANS NEUTRE), cela ne me posera t il pas un soucis pour ce que ce TI verra ?
(J ai 2 onduleurs qui debittent respectivement sur L1-L2 et L3-L2… , le compteur est un « actiris » prevu pour ce type de distribution et reprend la methode dite « des 2 wattmetres ». Dans mon cas, un « routeur solaire » doit etre place sur L1-L2 avec le Ti sur L1 et l autre le sera sur L3-L2 avec TI sur L3 , ainsi je « route » la production des 2 onduleurs vers 2 boilers….)
Mais comme « vectoriellement parlant », le TI sur L1 verra le retour de L2 L3 et celui de L3…. le retour de L1 L2….je me demande ce que ca va donner?
(Ooops, je ne sais pas si j ai ete clair, pour le coup ?)
Sinon, de mon cote, je suis occupe a realiser la platine avec les resistances.
Bien a tous.
Olivier
Le compteur fait la somme algébrique des puissances. Vous pouvez injecter sur une phase et consommez sur d’autres. C’est la somme algébrique des 3 phases qui vous sera facturée.
Je ne comprends pas l’histoire de la résistance de 50 ohms.2000/40????
Cdlt
Bonjour Andre,
Oui pour la facturation, je ne suis pas inquiet la dessus, « le gestionnaire ferabtoujours ce qu il faut que pour se faire payer! », non, c etait concernant l information de la forme du courant qui commande l esp32?
Alors pour le calcul c est, je pense, le meme que celui repris dans la description, j ai donc un compteur de 16Kva tri phase Delta, limite par un disjoncteur (Teko) de 40A, 2000 c est le rapport du TI, 50 ohms c est pour me limiter a 1V eff (a 40A).
Hier lors des tests, j ai remarque que mon petit transfo de 6V, non seuleument generait un signal qui n etait pas bien sinusoidal, mais en plus chauffait fort, alors qu il ne debite rien!
En fait, il est « mauvais ». Je l ai remplace, mais celui ci genere 10V, j ai du recalculer et modifier pour avoir 1Veff, maintenant ca rentre bien dans le creneau, controlé a l oscillo. Reste le boitier a trouver etc etc. A suivre donc pour moi.
Bonne fete de 1er mai @tous.
OK parfait.
Bonjour André, dans le cas d’un chauffe eau uniquement, pourquoi ne pas remplacer le fil pilote heure creuse par la sortie 230V du triac si la production est suffisante. dans ce cas un simple relai suffirait. SWL Chris
Avec un fil pilote vous commander un relais. C’est du tout ou rien. 0 watt ou le max du chauffe-eau(ex 2000W). Avec le triac du routeur, vous pouvez envoyer uniquement 500w si seulement 500W sont disponibles.
Cdlt