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,
Bravo et merci pour ce travail.
Je me pose la question sur la grosseur des pistes du SSR Robotdyn que je trouve petites
pour le courant annoncé.
Serait il possible de les renforcer? (malgré le faible écartement des pins du TRIAC).
Un retour sur les installations en service serait bien venu.
Bonne journée.
Pour l’instant chez moi cela tient. Maintenant, vous pouvez souder 2 fils sur les pistes entre le connecteur et le triac, cela ne peut pas faire du mal.
Il faut aussi, je pense, augmenter la taille du refroidisseur que je trouve léger pour un triac qui peut fonctionner plusieurs heures.
Bonsoir,
J’ai doublé les deux pistes entre les bornes et le triac du SSR avec de la tresse à dessouder.
Cela a été facile, j’ai utilisé de la soudure sans plomb avec un fer réglé à 310°.
Bonjour André ,je n’arrive pas à accéder à la page web.
Ces lignes vous paraissent-elles bien rempliées ?
// Set your Static IP address
IPAddress local_IP(192, 168, 1, 103);
// Set your Gateway IP address
IPAddress gateway(192, 168, 1, 254);
IPAddress subnet(255, 255, 255, 0);
merci
Oui cela me semble correct si votre box est bien au 192.168.1.254. Pensez à mettre votre SSID du Wifi et le mot de passe.
Vous pouvez également essayer avec un des exemples de server de la bibliothèque Arduino (exemple pour ESP32, Ethernet,WebServer).
Bonsoir André,
Le routeur fonctionne très bien via le triac.
Je vais brancher un relais optionnel, je souhaiterais savoir si le code source prévoit bien son fonctionnement ?
Pouvez vous me dire à quoi correspond le « si PW <- 1200" ? ligne 285
Merci à vous
Le code propose en option d’activer un relais sur la sortie GPIO 5 (ligne 5 const int OptionalRelay = 5;) Si la surproduction dépasse 1200W, le relais s’enclenche. Si la surproduction s’arrête , le relais s’arrête (ligne 289 if (PW > 0) { //Switch Off) Attention d’avoir la différence entre le seuil d’enclenchement 1200W et le seuil d’arret 0) supérieur à la consommation de l’appareil connecté, afin de ne pas rentrer en oscillation. Le schéma électrique de l’article, montre ce relais.
si je comprends bien, la puissance de l’appareil connecté au relais ne doit donc pas être inférieure à 1200 w ?
Non, on peut mettre ce que l’on veut. Prenons l’exemple d’un appareil de 1000W. Lorsque la surproduction arrive à -1200W, on envoi 1200W dans le réseau public). Le relais s’enclenche. La production va tomber à -200W. C’est seulement quand elle va tomber à 0 par baisse de soleil ou consommation ailleurs, que le relais s’ouvrira. Ainsi, on a une garde de 200W pour éviter les oscillations. Vous pouvez mettre un appareil de 500W et mettre les seuils à -700W et 0W.
OK, bien compris.
Merci beaucoup pour votre créativité et pour votre aide.
bonne journée.
Bonjour André,
C’est installé et ça a l’air de bien fonctionner. Mon vieux compteur à roue au sous-sol tourne tout doucement ,par contre le linky affiche des valeurs plutôt importante. J’imagine que ce n’est pas de la conso mais une puissance apparente.
merci
Le Linky en mode Historique affiche des VA, puissance apparente.
bonjour,
bravo a vous pour votre réalisation.
je suis fortement intéressé pour me lancer également, mais j’ai une petite question avant.
mon ballon d’eau chaud est de type thermodynamique, il est équipé d’une résistance électrique également , il est possible de se connecter dessus en direct, mais je pense qu’il faut que je l’isole du circuit électrique du ballon avant d’y connecter le routeur.
avez vous une solution a me proposer pour isoler la résistance du circuit électrique du ballon automatiquement lorsque le routeur injectera le surplus de ma production?
merci par avance
Un petit complément au programme. Lorsque le Triac est excité, vous excitez un relais connecté à l’un des GPIO disponible qui commute le système en place vers une alimentation par le routeur.
merci pour le retour,
je vais regarder cela
jerome
Bonjour,
Et bravo !
Je rencontre quelques problèmes lors du téléversement du programme avec le message suivant :
c:\Users\steph\OneDrive\Documents\Arduino\libraries\RemoteDebug\src\utility\WebSockets.cpp:42:10: fatal error: hwcrypto/sha.h: No such file or directory
#include
^~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: exit status 1
ainsi que PuTTY qui me renvoi me message suivant : network error: connection refused
je ne trouve pas la solution, auriez vous une idée ?
D’avance merci
Vous avez des bibliothèques qui manquent dans votre IDE Arduino.
Avez-vous rajouté RemoteDebug et NTPClien?
bonsoir,
l’électronique ne me dérange pas, mais je suis plutôt génération BULL MICRAL 30 et porte logique
à cette époque, on parlait encore des transistors au germanium, ( séance nostalgie )
j’ai découvert l’univers ARDUINO il n’y a pas bien longtemps et j’avoue avoir des lacunes
plus sérieusement, merci pour votre retour et pour donner suite à votre question,
j’ai bien dans « exemples des librairies perso » RemoteDebug et NTPClient
ça correspond à quoi le « .h » ?
Y a t-il une manip supplémentaire à faire ?
par rapport à l’info de Christophe me renvoyant au message du 12 janvier
ou puis je trouver « hwcrypto/sha.h « pour le remplacer par ESP 32 … ?
et dernière question :
comment supprimer RemoteDebug pour réinstaller une version antérieur ?
D’avance merci pour vos réponses
Pour vous rassurer, j’ai démarré l’électronique avec des lampes et des transistors au germanium OC71…
Je n’ai pas compris le pourquoi de ces changements de fichier expliqué par mon homonyme en Janvier.
De mon côté, j’utilise Remote Debug en version 3.05 sans difficulté.
Si vous voulez installer une autre version, affichez dans le gestionnaire de bibliothèques de l’IDE Arduino, les bibliothèques installées sur votre PC. En bas à gauche de Remote Debug, vous avez une petite fenêtre donnant les numéros de version. Choisissez celle que vous voulez.
Dans la barre de recherche en bas de l’écran ou utiliser le chemin c:\Users\*stephane*\Documents\Arduino\libraries\RemoteDebug\src\utility\WebSockets.cpp,
J’ai ouvert avec Word puis remplacer à la 47 ligne. Bon courage
Bonjour Stéphane,
J’ai eu le me problème, j’ai fini par utiliser la solution d’André message du 12 janvier 10h05 et message de Sébastien 22 janvier 20h16.
Cordialement
Bonjour André, Félicitation pour votre réalisation et un grand merci pour la partage.
Je souhaiterais également diriger mon surplus de production électrique vers la résistance d’un ballon d’eau chaude.
Est il possible de remplacer la partie mesure électrique de votre systeme par la récupération des données de puissance calculées par la passerelle envoy S metered ? Par exemple, l’ESP32 pourrait récupérer via le réseau local les informations de puissance calculées par la passerelle et adapter le PWM du triac en fonction.
Merci pour votre retour et vos conseils
Guillaume
Je ne connais pas dans le détail la passerelle Envoy S. A la lecture entre les lignes de la documentation, comme beaucoup de ces systèmes de suivi, les données sont envoyées à un serveur quelque part dans le monde (ici Enlighten) et ensuite votre appli téléphone va les chercher pour vous afficher les valeurs. Vous avez donc un suivi retardé de plusieurs dizaines de secondes probablement et un échantillonnage limité a peut-être une fois toutes les 5mn. Cela est beaucoup trop lent pour une régulation efficace qui réagit dans les secondes qui suit une variation de consommation dans la maison. Le routeur décrit ici, fait une mesure de consommation et une correction de l’alimentation du chauffe-eau toutes les 40ms.
Bonjour,
Je souhaite installer un écran I2C pour contrôler les données sans devoir allumer un appareil WiFi.
L’I2C demande les GPIO21 et GPIO22 mais ce dernier est utilisé pour le zero crossing du Dimmer.
Sur le net, j’ai trouvé dans un article:
Z-C to pin 1 (GPIO possibles 0,1,2,4,5,7,12,13,14,15,16,17,18,19,21,22,23,25,26,27,32,33,34,35,36,39)
PWM to pin2 (GPIO possibles 0,1,2,3,4,5,12,13,14,15,16,17,18,19,21,22,23,25,26,27,32,33 ).
Vous confirmez que c’est juste?
Je pose la question car pour le ZC, il ne propose pas le 3 qui est un PIN RXO mais propose le 7 qui est réservé SD0/SD0.
Pour le PWM, il propose tous les PIN PWM sauf ceux réservés.
Merci d’avance.
Bonjour j’utilise un écran I2C relié aux ports GPIO21 et 22. Mon zerocrossing est relié au GPIO23 et cela fonctionne plutôt bien ….
Merci pour votre réponse.
Ma question est plus sur le GPIO22 qui est utilisé pour le PWM (Pulse). Vous l’avez connecté sur quelle GPIO puisque le 22 n’est plus disponible.
Vous avez intégré l’affichage de données dans le programme d’ André?
Vous affichez quelles données?
Vous pouvez déplacer le Zc et le Pwm sur d’autres Pins. Ce sont des entrées/sorties numériques simples.
Bonjour à tous
Je suis sur le programme depuis 4 semaines, mon programme est complet (avec tous les bibliothèques) mais j’ai toujours un problème avec la compilation.
Je cherche que la partie du programme sens le wifi, pour faire au plus simple.
Car le compilateur me refuse (const int AnalogIn0 = 35 😉
Merci pour vautre aide
Bonjour dans l’ide d’Arduino, avez vous sélectionner le bon type de carte à programmer ?
Je ne comprends pas le pourquoi. Peut être utilisé vous le GPIO 35 pour autre chose?
Bonjour,
J’arrive à la fin du projet.
Tout est installer et le routeur est maintenant en phase de test.
Je suis au VA prêt, cependant quand un gros consommateur s’allume là je prend des 100ene voir milliers de VA d’écart s’en jamais m’en rapprocher et ce malgré un long temps d’attente. Est ce normal?
Cordialement
Je ne comprends pas exactement votre question. Est-ce un problème de calibrage ou de régulation de l’énergie envoyé au ballon? Il faut calibrer avec une grosse puissance consommée en cours, cela permet d’être plus précis dans les grosses et faibles valeurs.
C’est pour un problème de calibrage.
J’ai donc suivi votre conseil et mis une consommation au max de mon abonnement 9kva.
J’ai maintenant mes courbes qui ne ressemblent plus a « rien » et mon voltage monte à plus de 300 V.
En premier, calibrer la tension pour tomber sur les 230V efficace et surtout une belle sinusoïde. Si la sinusoïde est plate en haut et en bas, il faut abaisser la tension à l’entrée de l’ESP en modifiant le pont de division R4 et R5. Ensuite, vous calibrez le courant pour tomber sur le même courant ou la même puissance que la valeur fournie par une pince ampèremétrique ou votre Linky.
Tres bien mais le problème c’est que cela varie en permanence et que ce soit pour le voltage ou l’amperage
Je vous mets en lien 2 photos a 6 seconds d’intervalles.
https://zupimages.net/viewer.php?id=23/09/gcu2.png
https://zupimages.net/viewer.php?id=23/09/4f7o.png
Quand je suis sur mon talon de consommation cela reste propre
Alors là du jamais vu.
Vérifiez que vous avez bien 1.65V =3.3V/2 sur la pin GPIO35
Débranchez la sonde de courant, vous devez avoir une belle tension sinusoïdale, que vous pouvez calibrer à 230V suivant l’indication d’un voltmetre.
Ne regardez pas la courbe de courant, elle mesure du bruit.
Rebranchez la sonde de courant. Si la courbe verte est non symétrique et moche surtout quand une résistance chauffante est en action, c’est que vous captez du bruit avec votre sonde. Elle fait antenne.
Peut-être que le fil de raccordement est trop long. Mettez un fil torsadé ou mieux un fil de réseau ethernet qui est blindé.
Bonjour j’ai identifié le problème, cela vient bien de ma pince amperemetrique.
Sur vos conseils de quelques jours j’ai acheté le câble réseau https://amzn.eu/d/88A38TF
Qu’est ce que vous en pensez?
Sachant que c’est celui ci qui est en place
Cordialement
J’ai des doutes avec ces câbles plats. Sont ils blindés? D’habitude, je prends du câble rond et je connecte à la masse de mon montage le blindage.
Du coup je me pose la même question si c’est effectivement bien blindé…
J’ai recherché et trouvé cette référence, qu’en pensez vous?
https://amzn.eu/d/1vWGx9y
Cordialement
oui un cable de categorie 7, chaque pair de fils est blindé (voir les photos de détails). Vous n’avez besoin que d’une paire, mais ces câble ne sont pas trop chers au mètre.
Bonjour F1ATB André
J’ai reçu de Chine (et d’Amazon) le matériel nécessaire au montage du routeur solaire.
J’ai installé la dernière version ARDUINO IDE que j’ai trouvée (2.0.4).
J’ai installé esp32 par Espressif Systems V 1.0.6.
Ma carte est une AZ-Delivery ESP32-WROOM-32, comme la vôtre, je pense.
Quand je la connecte sur mon PC (Windows10) elle n’est pas « vue » par IDE et je dois lui indiquer qu’il s’agit d’une carte ESP32 Dev Module, alors que si je connecte une quelconque carte Arduino, elle est reconnue tout de suite. Et surtout, elle ne me propose que le port Com1 pour connecter ma carte.
Or manifestement, ce n’est pas le bon port, puisque si je clique sur « Obtenir les informations sur la carte » elle affiche en bas à droite de l’écran « Native serial port, can’t obtain info. »
Je n’arrive pas à communiquer avec ma carte ESP32 et je suis complètement bloqué.
Auriez-vous une idée pour me dépanner?
D’avance, merci beaucoup.
P.S.: J’ai essayé avec deux autres cartes identiques (puisque j’en ai commandé et reçu 3) et le problème est identique. Donc sauf à supposer que les trois cartes reçues sont en panne…
Vous n’avez probablement pas le bon driver USB sur votre PC. Il y a 2 modèles courants CH340 et CP2102. Vous trouvez des tutos sur internet, demandez à Google. exemple:
https://techexplorations.com/guides/esp32/begin/cp21xxx/
Merci beaucoup pour votre réponse immédiate.
Je regarde tout de suite.
En examinant à la loupe la puce de mon ESP32, je lis « CP2102 »; donc je suppose que c’est ce driver qu’il me faut installer.
J’exécute la procédure exposée au lien que vous m’avez envoyé et l’opération semble bien se passer.
Je reboote mon système et relance IDE, puis rebranche ma carte; pas mieux qu’avant…
Je vérifie la liste des drivers installés et je remarque:
Nom publié : oem61.inf
Fournisseur de packages de pilotes : Silicon Laboratories Inc.
Classe : Ports (COM et LPT)
Version et date du pilote : 10/04/2022 11.2.0.167
Nom du signataire : Microsoft Windows Hardware Compatibility Publisher
Nom publié : oem43.inf
Fournisseur de packages de pilotes : Silicon Labs Software
Classe : Contrôleurs de bus USB
Version et date du pilote : 07/14/2010 3.3.0.0
Nom du signataire : Microsoft Windows Hardware Compatibility Publisher
Nom publié : oem16.inf
Fournisseur de packages de pilotes : Silicon Laboratories Inc.
Classe : Ports (COM et LPT)
Version et date du pilote : 09/19/2016 6.7.4.261
Nom du signataire : Microsoft Windows Hardware Compatibility Publisher
Donc, à priori, il semble que les drivers de Silicon Laboratories Inc. sont bien installés, non?
Je suis hélas ramené au problème précédent, ma carte n’est toujours pas reconnue.
Si ce n’est pas le driver, c’est le câble USB. Problème rencontré maintes fois. Changez de modèle de câble.
OK, merci; j’essaye.
Bonjour félicitations très bien expliquer , j’ai un mk2pvrouteur mais pour des amies je souhaite essayer le votre , cependant avez vous liste détailler des composants nécessaire surtout sur la partie résistance , filtre , condo etc, car j’en voie pas , afin de faire la commande .
merci par avance
bonne jounee
J’ai complété la liste des composants en bas de page.
Cdlt
mes excuses j’ai du me perdre dans vos commentaires et j’ai pas vu merci pour votre réactivité plus que a commande !
Bonjour André,
J’ai remarqué que quand il y a du routage ma plaque à induction devient bruyante. Pensez-vous qu’il y ait un danger pour ce genre d’équipements ?
Merci
J’ai fait le test chez moi. Cela montre l’augmentation du taux d’harmoniques et la baisse éventuelle de la tension d’alimentation du secteur qui modifient le ronronnement de la découpe secteur à 25 kHz de la plaque.
Cela ne devrait pas l’affecter.
Cdlt
Bonjour,
Je viens de contrôler la tension sortie du transfo 220 / 6 V et il sort du 7.5 V!
Je laisse le pont diviseur comme ça ou je l’adapte?
Suivant mon calcul (loi d’Ohm appliqué en alternatif) je devrais avoir un tension de 0.98 V (1V) aux bornes de R5. avec 7.5, cela passe à 1.23 V (mesuré 1.2V).
Si je passe R5 à 3700 la tension baisse à 1 V.
Cette tension de 7.5 V peut elle avoir d’autres répercussions?
Votre avis svp.
Merci
Votre valeur de 1.23V est correcte avec 7.5V mesurée en valeur efficace. Il faut multiplier par 1.414(racine de 2) pour passer à la valeur crête ce qui nous fait 1.73v. Sur l’entrée de l’ESP on se ballade autour 1.65V +/- 1.73V. Ce qui veut dire que pendant une partie de la sinusoïde on est négatif ou supérieur à 3.3V. L’ESP32 n’aime pas et cela se traduit par une courbe rouge en sortie plate en haut et en bas de la sinusoïde. R5 à 3700Ω me semble un bon compromis d’autant qu’il ne faut pas trop s’approcher du 0V et du 3.3V car l’ESP32 devient légèrement non linéaire.
Cdlt
J’ai commandé avant-hier sur Amazon et reçu hier (dimanche…oui) un nouveau câble USB B vers USB micro.
Et la carte est reconnue! Alléluia!
En fait mon cordon d’origine n’est pas « défectueux », c’est que c’est un simple câble « de charge »; donc les contacts des deux extrémités ne sont pas tous raccordés entre eux; j’ignorais que les fabricants pouvaient économiser sur ce point…
Le câble que j’ai reçu hier est certifié « Data Sync » et de fait, il remplit son rôle.
Ouf! Une étape de passée.
Merci encore André pour vos précieux conseils.
Cordialement,
RB
Parfait. Bon exemple pour d’autres réalisateurs sachant que même avec certain câble ayant tous les contacts le transfert de données se fait mal.
Bonsoir,
une petite réflexion par rapport à mon installation.
j ai un chauffe eau de 200 litres et 2400 watts,1200 de panneaux solaires avec un onduleur de 1000 watts, un talon de conso de environ 350 watts. donc en gros avec votre routeur(qui au passage est une merveille) je renvoie l équivalent de 650 watts. dans ce cas je ne suis pas sur de réellement chauffer l eau. si je rajoute en amont du chauffe eau actuel un autre chauffe eau de 50 ou 100 litres et qui ferait 1000 watts et que je rajoute 400 watts de puissance en production solaire, je devrais énormément augmenter le rendement de l installation? l idée est alimenter le petit chauffe eau uniquement avec le routeur et le principal avec les heures creuses. donc si il y a production l eau chaude du principal est remplacée par de l eau chaude d où rendement optimal.merci à ceux qui ont lu jusqu’au bout.
Bonjour,
Dans l’attente de mon matériel pour la pose de mes PV, je teste le système.
Avec R5 à 3500 Ohms, j’ai une tension entre 0.98 et 1 V en sortie du pont. Donc Validé.
J’ai fait des tests sur une résistance de décharge puis sur mon réseau sortie Linky et les valeurs entre les mesures et les relevés ESP32 ainsi que les graphiques sont cohérents, La courbe est légèrement aplatie sur les crêtes (actions possibles?) et je dois ajuster les coef pour me rapprocher à moins de 1% d’erreur pour les valeurs.
Là ou je suis perplexe c’est que j’ai mesuré la tension en entrée du pont R6 / R7 et j’ai pratiquement 0. Même résultat aux bornes de R6, R7 et R3.
Si vous pouvez m’éclairer.
Merci d’avance.
Bonjour André,
Question bête: le montage peut-il fonctionner avec des résistances de 2W ? (J’ai bien noté dans vos récents commentaires que vous préconisez 1/4 ou 1/8)
Concernant le téléversement, je me permets de relever que mon ESP nécessitait un appui bref sur « boot » lors de la séquence …Connecting… pour commencer le transfert.
Merci !
Oui des 2W, cela est OK. Cela prend un peu plus de place.
Ok pour le boot. Cela dépend des cartes. De mon côté, je n’en ai jamais besoin.
Cdlt
Merci !
bonsoir André,
je constate que lorsque la surproduction dépasse les 1200 w, le triac laisse passer la puissance max de la charge branchée.
Il envoie 2200 w vers le chauffe-eau alors que la surproduction passe juste les 1200 w, mais n’atteint pas les 2200 w.
Pouvez vous me dire où se situe le problème ? Merci
Christian
Il n’y a pas de problème je pense, c’est que votre chauffe-eau à ce moment-là ne consommait que 1200W. Faites la mesure en même temps avec une pince ampèremétrique.