Réalisez un Routeur Solaire pour gérer la surproduction

Version V2
Remplacé par la version V8
Pilotage depuis un SmartPhone ou un PC (navigateur Web)

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.

Exemple de régulation. Puissance consommée -16W, ouverture 76 % du temps vers le chauffe-eau.

Tableau des Versions

Différentes versions de routeur ont été décrites :

VersionMesure courant / puissanceActionneursModulaireDomoticzMQTT / Home AssistantDescription
1Sonde AmpèremétriqueRelaisNonOuiNonRouteur Solaire. Mesure de Puissance avec un ESP32
2Sonde AmpèremétriqueTriac + RelaisNonOuiNonRéalisez un Routeur Solaire pour gérer la surproduction
3.04_UxISonde AmpèremétriqueTriac + RelaisOuiOuiOuiU x I : Routeur Solaire pour gérer la surproduction photovoltaïque
3.10 LinkyLinkyTriac + RelaisOuiOuiOuiRé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.

Schéma du routage de l’énergie excédentaire vers un Chauffe-Eau

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

Transformateur de courant 100A/50mA

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.

Transformateur 220V/6V (Aliexpress)

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

ESP32 – Development Board

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

Gradateur avec détection de zéro

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.

Présentation de la réalisation matérielle

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

Schéma électrique – ESP32 Development Board 2*19 pins

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

Ouverture du Triac 50% du temps

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.

Formules de calcul des puissances

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.

Tension en sortie du transformateur trop élevée. Courbe plate en haut et en bas. Il faut augmenter R4 ou diminuer R5.

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

THD + N pour la tension et le courant


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.

Le courant en vert est fortement non sinusoïdal, la consommation de 556 W est un exemple de ce qui tourne dans la maison avec probablement beaucoup d’alimentations à découpage qui génèrent cette forme de courant.

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%

Le courant est très chahuté, mais l’échange avec le monde extérieur est faible 12W. La régulation par le Triac est en cours. C’est le résultat d’une consommation importante non sinusoïdale (2400W) et de la réponse des onduleurs.

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%

Ici en légère surproduction, le Triac est ouvert à 100%, il ne génère plus un courant non sinusoïdal, mais la consommation totale (2739W) non sinusoïdale de la maison se fait toujours sentir. Avec plus de charges résistives consommatrices comme du chauffage, on peut retrouver un sinus en courant comme la tension.

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.

Tableau des mesures
Courbes Tension et Courant vers le chauffe-eau

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

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.

Schéma de principe contacteur et routeur en parallèle

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.

Présentation du logiciel

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

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

871 réponses

  1. benoist dit :

    C:\Users\jbmur\Desktop\Nouveau Dossier (3)\SolarRouter_v2.01\SolarRouter_v2.01.ino:27:23: fatal error: NTPClient.h: No such file or directory
    compilation terminated.

    Voila le message reçu

  2. Sébastien dit :

    Bonsoir,
    Le système fonctionne a merveille, encore merci pour votre partage et vos explications.
    J ai une question,pour quelles raisons j ai une courbe d intensité aussi déformée ? voir photo si ça fonctionne.
    https://i.postimg.cc/g2D4YM3B/Screenshot-20230130-125547-Chrome.jpg
    Merci.

    • F1ATB André dit :

      Bonjour. 2 remarques.
      La tension en sortie du voltmètre, courbe rouge, est trop forte. Vous avez une saturation en haut et en bas de courbe. Vous devez dépasser la dynamique 0v à +3.3v acceptable en entrée de l’ESP32. Il faut modifier les valeurs du pont de résistance abaisseur de tension. Augmentez R4 ou baisser R5. Il faut une belle sinusoïde puis faire le calibrage des coefficients kV et kI dans le programme.
      Pour le courant, la courbe verte est symétrique, c’est bon signe. La forme n’est pas sinusoïdale car vous consommez peu (0.98A) . C’est probablement une ou plusieurs alimentation à découpage (chargeur, alimentation de PC, alimentation de LEDS) qui ne consomment pas un courant sinusoïdal comme une bonne charge résistive. Si vous mettez en route un four, vous verrez alors une belle sinusoïde en courant.

      • Sébastien dit :

        Bonsoir,
        j ai remplacé R4 par un potentiomètre multitours, et réglé jusqu a ne plus avoir de saturation.
        et ai ajusté les kv et ki.
        Merci pour votre aide.

  3. benoist dit :

    Bonsoir, merci ça fonctionne , la compilation est réussi.
    J’ai une question idiote sans doute , car je ne connais rien en programmation ,
    Peut t’on imaginer de remplacer le sensor AC par un model DC qui capterais les données A sur l’arrivée des panneaux .
    Le but serait d’utiliser votre module sur une installation hybride . En fonction de l’ampérage max fournie par les panneaux , le systèmes s’enclenche pour une durée programmée .

    • F1ATB André dit :

      Pour mesure l’AC, c’est facile avec un transformateur de courant ou une pince ampèremétrique. Pour du continu, il faut y mettre par exemple un capteur à effet hall. Pour les gros ampérages, cela peut être un peu plus compliqué, mais c’est faisable.

  4. papy84 dit :

    Un autre bravo ! je tente ce superbe montage, mais j’ai du mal avec l’implantation définitive de l’ESP avec le peu de composants. Quelqu’un a fait un dessin, une photo, un typon ou un CI pour éclairer mon ignorance ? Merci et belle année…

    • F1ATB André dit :

      Prenez un bout de carte à trous de prototypage pour implanter le peu de composants.

      • papy84 dit :

        Ok merci. J’ai commencé ça. Pas très évident pour un novice…mais 3 résistances et 2 condensat.s ! Ma question devait m’éviter une erreur toujours possible. On tente. En tout cas Merci pour la diligence et le service. Un autre retraité non pratiquant );

  5. papy28 dit :

    Bonjour Monsieur,
    Déjà, chapeau bas pour vos explications et votre pédagogie.
    Je voulais savoir s’il est possible d’adapter votre routeur à une habitation avec du tri ?
    Si oui, si vous avez le temps, comment ?
    cordialement

    • F1ATB André dit :

      Il est possible de l’adapter au triphasé avec 3 sondes ampèremétriques et toujours un transfo pour prendre la tension sur une des phases.Malheureusement, n’ayant pas de tri chez moi. Il m’est impossible de faire les tests.

  6. papy28 dit :

    Re bonjour
    Est ce théoriquement possible, de mettre un routeur simple sur chaque phase ?
    cordialement

    • F1ATB André dit :

      Non, il est nécessaire de coordonner les 3 mesures de courant car vous n’avez pas la même consommation et production sur les 3 phases. Une phase peut être en surproduction et les deux autres en forte consommation.

  7. Gwendal dit :

    Bonjour
    Tout d’abord bravo et merci pour votre travail.
    Ensuite, j’aurais une petite question. J’ai déjà utilisé un capteur PZEM-004T (isolé) sur un esp32 en le programmant en μPython pour monitorer un vieil onduleur solaire. A cela s’ajoutait l’export puis le stockage des données sur blynk.io pour créer un tableau de bord graphique sur un smartphone.
    Le PZEM-004T mesure directement intensité, tension, puissance active, énergie et facteur de puissance. Son utilisation ne simplifierait-elle pas grandement votre dispositif?
    Merci encore.
    G.B
    Lien vers le capteur PZEm-004t: https://fr.aliexpress.com/item/1005004200755826.html?spm=a2g0o.productlist.main.17.deb16589svzEFa&algo_pvid=c258e271-1044-4e49-bab9-0b7267908b0b&algo_exp_id=c258e271-1044-4e49-bab9-0b7267908b0b-8&pdp_ext_f=%7B%22sku_id%22%3A%2212000028359083887%22%7D&pdp_npi=2%40dis%21EUR%216.72%215.78%21%21%21%21%21%402145279016756920044682389d06d7%2112000028359083887%21sea&curPageLogUid=Fdc7D00DFlGd

    • F1ATB André dit :

      Super, je ne connaissais pas le PZEM-004T. En effet, cela devrait simplifier l’électronique. J’ai commandé un modèle 10A et un modèle 100A pour les essayer et peut être faire une nouvelle version de mon routeur. Merci

  8. sch yves dit :

    bonjour j’ai une erreur qui revient tout le temps même avec le programme Basic OTA ou la Version V2

    xtensa-esp32-elf-g++: error: CreateProcess: No such file or directory

    exit status 1

    Compilation error: exit status 1
    _________________________________
    xtensa-esp32-elf-g++ : erreur : Créer un processus : Aucun fichier ou répertoire

    statut de sortie 1

    Erreur de compilation : statut de sortie 1

    Merci

    • F1ATB André dit :

      Une recherche sur Google me dit que le chemin d’accès est trop long.
      « It’s also possible, that this is the typical windows-bug with the long command line that packs everything together. I have this problem since a few month on my fork, because of all the apps I have. It’s just the number of files combined with the length of the paths and filenames that increase the commandline to a point, where windows says « nope, I’m too old for this sh*t ». »

      Vous devez simplifier le nom du dossier et sous dossier pour accéder aux fichiers.

  9. Sébastien dit :

    Bonsoir,
    encore une qquestion bête,mais je n arrive pas a enlever l’ouverture du triac en heures creuses car ou est placé le routeur la réception wifi n est pas stable,et la synchronisation à l heure internet ne se fait pas et le chauffe eau est alimenté à n importe quelle heure.
    J ai mis changé les valeurs et même essayé en les mettant à 0 de la ligne 298 a 304 mais le triac s ouvre 1 seconde toutes les minutes environ.
    si vous pouviez m éclairer sur le sujet, Merci beaucoup..

    • F1ATB André dit :

      Si votre WIFI n’est pas de bonne qualité, cela va entrainer des reboot du systeme. Ce qui implique la perte de l’heure etc..
      Reboot entre lignes 334 et 338 et lignes 418 à 424.
      Au minimum vous enlevez les ESP.restart() si de temps en temps le wifi fonctionne.
      Sinon enlevez tout le WIFI, le Debug par WIFI et l’OTA (mise à jour par Wifi)
      Vous sortez sur le port série les informations qui vous intéressent et vous testez en local avec un PC portable le bon fonctionnement.

  10. Manu dit :

    bonjour
    Merci de partager votre montage
    débutant en esp32 je ne comprends pas votre alim sur +3.3v
    on doit bien alimenter en continu et je ne vois pas de redresseur
    pouvez vous m expliquer
    merci

    • F1ATB André dit :

      Le 3.3V est généré par la carte ESP32. Celle-ci est alimentée en 5V avec un chargeur type téléphone. Voir le chapitre « Montage ».

      Dans une boite d’électricien on installe :

      La carte ESP32 (Development Board 2*19 pins))
      Une alimentation 5V 1A pour l’ESP32
      Un transformateur basse tension pour mesurer la tension
      Un gradateur 16A ou 24A de RobotDyn….

  11. Christophe Smiechowski dit :

    Bonjour, si j’ai bien compris la capacité du gradateur 16A ou 24A dépend de la puissance à router (onduleur)?
    MERCI

    • F1ATB André dit :

      16 ou 24A dépend de la puissance de votre chauffe-eau. Pensez à augmenter la surface du refroidisseur du gradateur. Il est à mon avis un peu léger.

      • Christophe Smiechowski dit :

        Tout fois, si mon installation PV est de 1200 Wc je n’arriveai jamais à puissance max de mon chauffe eau, dû ça sera juste plus long à chauffer.

  12. Philippe Viallemonteil dit :

    Bonjour,
    A partir de quel seuil de puissance disponible le routeur peut il réinjecter sur le chauffe eau ?
    D’avance merci pour votre réponse.

    Philippe

    • F1ATB André dit :

      Dès le premier watt de disponible, il est redirigé vers le chauffe-eau. On peut modifier cela dans le logiciel si besoin.

      • Philippe dit :

        Merci beaucoup pour votre réponse. J’ai déjà téléchargé le fichier ino et vérifié dans l’IDE Arduino, tout est ok. Vers quel numéro de ligne se situe l’information à modifier. Je vais également piloter une sortie pour un relais afin d’interdire la commande Heure Creuse l’après midi. Est il possible de récupérer l’heure via le web, sinon j’ajouterai une horloge temps réel type DS3231 que j’ai déjà utilisé sur d’autre montage.

        • F1ATB André dit :

          Le retard à l’ouverture du Triac est à la ligne 278. retardF = retardF + PW / 200;
          Si PW la puissance est négative (surproduction) , le retard diminue légèrement pour ouvrir plutôt le Triac.

  13. Philippe dit :

    Je viens de trouver le sous programme Read_Hour(), si je comprends bien, si j’arrête le pilotage de l’HC/HP de mon chauffe eau, le routeur pilote bien le chauffe eau la nuit entre 23h00 et 4h000 du matin ?

  14. Philippe dit :

    Merci beaucoup pour votre aide.
    Votre routeur correspond exactement à ce que je cherchais.
    Philippe

  15. Manu dit :

    ok
    merci du retour et autant pour moi pour l alim je n’avais pas compris celà étant donné que je ne voyais pas l alim de l esp
    comment peut on faire pour créer le 5vcc nécessaire à partir du transfo 6v au lieu de remettre une alim spécifique ?

    • christophe montmeat dit :

      Bonjour dans mon montage, j’ai utilisé un transformateur double sortie et cela fonctionne bien. Un enroulement pour les mesures et un second pour l’alimentation.

  16. F1ATB dit :

    il ne faut pas consommer sur la sortie du transformateur de 6V. Cela deformerait la courbe de tension sur la période de 20ms.

    • Manu dit :

      ok
      donc si je comprends bien
      si transfo avec 1 0v et 2 sortie 6v c’est bon
      pourriez vous partager un montage abaisseur pour l alim de l esp32
      merci

      • F1ATB André dit :

        Mettez un pont de diode, une capacité de filtrage de quelques dizianes de microfarad,, un régulateur 7805, une autre capacité de filtrage en sortie.
        Allez sur Google, demadez: « schéma alimentation 5V avec un 7805 », vous aurez pleins d’exemples.

  17. Olivier42 dit :

    Bonjour,

    Merci pour tout ce travail et ces explications très didactiques.
    Je possède une installation photovoltaïque en revente totale et une installation photovoltaïque en autoconsommation. Je suis donc à la recherche d’un routeur pour optimiser ma consommation en redirigeant la surproduction vers mon cumulus et éventuellement une deuxième sortie qui permettra d’alimenter un deuxième gros consommateur.
    J’ai envisagé un pilotage des triacs au travers du Wifi, le tableau électrique et les onduleurs étant situés au garage, le ballon d’eau chaude dans la chaufferie (loin) et le deuxième gros consommateur (autre ballon) encore plus loin; mais je ne saurais pas mettre cela en oeuvre.
    Cela est-il possible ?
    Je suppose que la mesure de puissance devrait se faire au niveau de la sortie onduleur vers le tableau électrique et que le logiciel devrait être adapté en conséquence.
    Si vous concevez une troisième version du routeur, qui utilise le capteur PZEM-004T, je pense que j’attendrais sa « sortie » avant d’attaquer mon dispositif.
    Encore un grand merci pour votre travail !

    • F1ATB André dit :

      La mesure de puissance se fait au niveau du disjoncteur général, pour avoir le bilan de consommation total de la maison. Il est possible de faire communiquer des modules par wifi, mesure de la puissance d’un coté et commande d’un triac ailleurs.
      Pour le PZEM-004T, je pense faire quelque chose quand je les aurai reçu.

  18. sch yves dit :

    Bonjour André
    Merci pour la réponse, j’ai résolue le problème de la bibliothèque.
    J’ai acheté la carte que vous préconiser (AZ-Delivery esp32 38P-wroom-32)
    Je mais dans outils la ESP32 dev module, mais il me dit (erreur de compilation pour la DOIT ESP32 DEVKIT V1.
    Je commets une erreur dans le chois de la carte
    Merci pour votre aide

  19. sch yves dit :

    oui oui et la carte nais pas branché

  20. fouin dit :

    Bonjour André et merci pour tout……
    J’ai réalisé un montage à blanc pour tester.
    Les tensions sur la carte sont bonnes mais en simulant une production ou une consommation les leds ne réagissent pas et le triac non plus.
    Pouvez vous m’indiquer comment doit réagir la led rouge sur la carte et votre avis sur le dysfonctionnement ?
    Merci pour votre retour

    • F1ATB André dit :

      Une Led ou l’autre doit clignoter. Essayer avec un exemple simple dans l’ide d’arduino, d’une LED qui clignote. Vous adapter le numéro de GPIO et pouvez également tester le Triac avec une lampe branchée en sortie.

      • alexandre merlin dit :

        Bonjour André, encore bravo pour votre travail.
        J’ai aussi ce problème, aucune led ne fonctionne.
        Les tensions de 1,65 volts sont ok mais aucune tension sur GPIO 18 / GND et GPIO 19 / GND et rien non plus côté triac.
        Si vous aviez une idée…

        • F1ATB André dit :

          Avez vous au moins la courbe rouge de tension et l’affichage autour de 230V? Sur GP18 et 19 ce sont des impulsions pour faire clignoter la LED. Pour mettre la sortie Triac à 1, sélectionnez 100%.

          • alexandre dit :

            J’arrive déjà pas à me connecter en wifi en passant par Putty !
            Je reviens vers vous dès que le problème sera réglé.
            En tout cas merci pour votre réponse.

          • alexandre dit :

            Bonjour André,
            J’ai enfin réussi à me connecter au WiFi, cela venait de l’ESP qui faisait des caprices. Avec un nouveau, impec.
            Cepandant, la courbe rouge est plate en haut et en bas.
            Avec R4 à 24000 ohms, j’ai une tension U de 301 volts.
            En augmentant R4 à 33400 ohms, j’ai une tension U de 228 volts.
            Malgré l’augmentation des résistances la courbe est toujours plate en haut et en bas, sans changement significatif entre 24000 ohms et 33400 ohms.
            Les leds clignotent.
            Là, je suis un peu perdu, je ne sais pas comment faire pour avoir un jolie courbe rouge.
            PLEASE HELP ME 😊

          • F1ATB André dit :

            Regardez mes 2 derniers commentaires vers d’autres réalisateurs pour le calcul R4/R5.
            R4/R5 servent juste à cadrer la dynamique des signaux dans la plage 0 à 3.3V pour avoir une belle courbe sinusoïdale. Ne regardez pas la valeur affichée avant d’avoir une courbe correcte. Ensuite seulement, vous ferez le calibrage pour avoir de bons résultats.

          • alexandre dit :

            Bonjour André,
            Oui j’avais regardé les messages pour éviter les questions récurrentes, et avais 0,9 volts, donc ok.
            Mais sûrement mon côté paranoïaque concernant la courbe, qui finalement n’est pas si moche.
            En tout cas, montage à blanc, ça fonctionne.
            Reste plus qu’à mettre au propre.
            Un grand merci pour le partage de vos connaissances, votre pédagogie, et votre disponibilité pour répondre au néophyte que je suis. 🙏 🙏 🙏
            Je vous souhaite une belle journée.