Capteur UxI pour routeur photovoltaïque

Un routeur Photovoltaïque a besoin de connaitre avec précision la puissance échangée avec le réseau public en entrée de maison. Nous avons deux situations :

  • de la consommation avec de la puissance ou énergie soutirée
  • de la surproduction avec de la puissance ou énergie injectée

Pour mesurer le niveau de puissance et connaitre son sens de transfert, il faut connaitre à tout instant la tension électrique et le courant électrique entre le disjoncteur principal et le tableau électrique. Il existe différentes possibilités pour effectuer ces mesures. Ici, nous allons nous intéresser à un montage en composants discrets :

  • un transformateur branché sur le 230V / 6V AC nous isolant du secteur et fournissant une bonne représentation proportionnelle de la sinusoïde de tension secteur
  • une sonde de courant que l’on passe autour du fil de phase uniquement (et non pas phase et neutre) pour récupérer un champ magnétique et un micro courant proportionnel au courant qui passe dans la phase.

Ce montage, je l’ai baptisé UxI car pour connaitre avec détail la puissance, on effectue de nombreux produits U (la tension) fois I (le courant) dans le temps.

Synoptique d’un routeur photovoltaïque

Les signaux en sortie du transformateur et de la sonde de courant sont numérisés par un microcontrôleur ESP32 qui suivant la situation de puissance ouvrira plus ou moins un Triac servant de robinet pour fournir la puissance disponible en excédant à, par exemple, un chauffe-eau. Les LEDS fournissent suivant le clignotement, l’état du système.

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 modèle SCT013 de 100A est adaptée à un domicile ayant une puissance max délivrée de 12kVA. On le trouve en Chine chez Aliexpress.

Capteur de la tension

Transformateur 230V/6V AC/AC (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.

Principe de mesure de la puissance

Pour savoir si de l’énergie rentre ou sort de la maison on compare la phase du courant I et de la tension U. Durant 20 ms, la durée d’une période du secteur à 50 Hz, on effectue 100 mesures de tension U et 100 mesures de courant I. C’est-à-dire une mesure toutes les 200 μs.

C’est le signe de la somme des 100 produits UxI qui donne le sens de transfert de la puissance ou de l’énergie. C’est le paramètre le plus important pour un routeur afin de savoir si on soutire de l’énergie ou injecte de l’énergie.

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.

Toute la partie logicielle et le pilotage du Triac font l’objet d’un autre article sur ce blog.

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.

Cadrage dynamique

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 Ω , on arrive à peu près au 1V efficace.

24*80A/2000=0.96V efficace ou 2*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.

Vin*R5/(R4+R5)=Vout ou 6V*4700/28700=0.98V efficace

En cas d’utilisation d’un transformateur ne fournissant pas du 6V AC, il faut reprendre les valeurs du pont diviseur R5/(R4+R5)

Raccordement à l’ESP32

ESP32 en charge de la mesure de puissance uniquement

La difficulté avec les différentes 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

Certaines cartes n’ont pas le GPIO33. Utilisez le GPIO34 et remplacez la déclaration en début de programme : « const int AnalogIn2 = 33; » par « const int AnalogIn2 = 34; »

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 compteur des micro-secondes de l’ESP32.

Toutes les 40 ms, on effectue :
– la mesure des tensions (V) et courants (I) 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 φ ou facteur de puissance (Power Factor)

Recadrage de la dynamique d’entrée en tension

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 pour centrer les signaux électriques entre 0 et 3.3V comme décrit plus-haut. Si la courbe rouge de tension, dans la page données brutes, 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.

Montage

Montage

Dans une boite d’électricien, on installe :

  • ESP32 (3 choix)
  • Une alimentation 230V – 5V 1A DC pour l’ESP32
  • Un transformateur basse tension 230V – 6V AC pour mesurer la tension (Aliexpress)
  • Gradateur ( gradateur 16A ou 24A de RobotDyn suivant la puissance du chauffe-eau (Aliexpress). Voir l’article correspondant.)
  • 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
  • LEDs
  • Du fil de câblage (Câbles Dupont) et une plaque à trou pour le montage

Il est possible remplacer le couple résistance + LED par des modules pré câblés. Modules LED

Page données brutes

La page données brutes du serveur Web de l’ESP32 donne les courbes détaillées de la tension électrique en rouge et du courant en vert en entrée de maison. Si U et I sont en phase, on consomme de l’énergie. En opposition, on injecte de l’énergie.

Exemple de régulation en cours ou le Triac s’ouvre environ 50% du temps.

Calibration

L’ESP en charge de la mesure de tension et du courant nécessite une calibration des valeurs mesurées pour s’adapter aux disparités des transformateurs, résistances etc. Commencer par la tension en mesurant votre tension secteur avec un voltmètre ou l’affichage du Linky et adapter le coefficient multiplicateur pour avoir la même valeur affichée sur la page d’Accueil. Un coefficient de 1000, correspond au schéma avec un transformateur de 6V. Baisser ce coefficient si la tension affichée est trop haute, montez-le si elle est trop basse.

Pour la calibration du courant, il est préférable de le faire lorsque la consommation de la maison est forte avec une charge résistive comme un four. On utilise la puissance apparente instantanée affichée en VA au niveau du Linky. On ajuste le coefficient pour avoir sur la page d’accueil des valeurs similaires à celle du Linky.

Code Source et installation du logiciel

Pour télécharger le code source, le compiler puis le transférer dans l’ESP32, allez sur la page : Routeur photovoltaïque simple à réaliser

Unités en Photovoltaïques

Si vous voulez en savoir plus sur la mesure de puissance, regardez cette vidéo.

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

42 réponses

  1. regis Leduc dit :

    Bonjour,
    Tout d’abord je me permets de vous féliciter pour votre travail et aussi pour vous remercier pour nous permettre à tous de l’utiliser.
    Je vais passer commande sur alie express , j’ai tout trouvé mais j’ai un doute sur l’esp32, le prix varie de 1 euro à x euros. je souhaite en commander 2 ( pour mettre plusieurs relais) .
    Pourriez vous me conseiller sur l’esp 32 ou n’importe lequel fait l’affaire (un qui ne grille pas au bout de3 mn )
    Il faut aussi une carte pour fixer l’esp32 ou elle est intégrée ?
    Cordialement

  2. Thomas dit :

    Bonjour, petite question sur la gestion avec 2 esp32.

    l’esp 32 branché sur le linky est en 192.168.1.10 et celui avec le triac est en 192.168.1.30.

    si je comprends bien c’est celui qui est avec le triac que l’on doit regler dans le menu « ACTIONS » afin de gérer le ballon ?
    Et concernant le menu paramètre on doit rentrer quoi dans dans l’ESP32 avec le triac ?

    Adresse IP si fixe (ex : 192.168.1.245) : Celui du linky ou du triac ??
    et pour la
    Lecture ESP-Linky Externe: on met quel adresse ip ?

    Merci pour votre aide
    Cordialement

    • F1ATB André dit :

      ESP32 côté Linky
      – En charge de l’extraction des données du Lynky.
      – Adresse IP fixe: 192.168.1.10
      – Pas d’Action a priori
      ESP32 côté Triac
      – En charge des Actions comme ouverture du Triac
      – Adresse IP fixe 192.168.1.30
      – Adresse source ESP externe, mettre l’adresse de l’ESP32 côté Linky : 192.168.1.10

      Cdlt

  3. Jerome dit :

    bonsoir, bravo pour votre travail, je suis quasiment arrivé a la fin de mon montage.
    J’ai juste un souci, j’arrive a faire fonctionner le routeur en on/off mais pas a faire monter et descendre l’intensité de ma lampe de test( vieille ampoule de 40w) via le triac avez vous une petite idée de mon problème ?
    cordialement

  4. Jerome dit :

    Ah oui exact, la charge n’était pas assez importante merci bien pour tout votre travail

  5. seb dit :

    Bonsoir,
    Le routeur est en fonction depuis maintenant 2 semaines et fonctionne parfaitement.
    J’ai simplement une petite question André, la sinusoïde est aplatie en haut et en bas et je m’apprête à modifier la résistance R4 ou R5 mais je me demande de quelle valeur augmenter ou diminuer ?
    Aussi, au vu du fonctionnement qui m’a l’air parfait dois-je vraiment modifier ?
    Qu’est-ce que cela change d’avoir une belle sinusoïde ?
    Merci encore

    • F1ATB André dit :

      Cela ne change pas grand-chose. Un peu d’erreurs dans les mesures. Le fonctionnent du routeur n’est pas impacté.
      Cdlt

      • seb dit :

        Merci pour votre retour, alors je ne touche à rien……

        • F1ATB André dit :

          Nouvelle Version
          La version V_4.03_RMS teste le nombre d’interruptions de l’ESP32 créée par l’impulsion Zc du gradateur toutes les 10ms durant une période de 15ms environ. Un filtrage logiciel rejette les interruptions distantes de moins de 2ms pour compenser une entrée très sensible de l’ESP32. Un bon fonctionnement du couple gradateur/ESP32 est 1/1 ou 2/2. (Nombre après filtrage/Nombre sans filtrage). Un résultat de 1/2,2/3 ou 2/4 est acceptable. Le résultat est donné sur la page Données Brutes de l’ESP32. Un condensateur de 1nF entre masse (GND) et le GPIO23 semble donner de bons résultats pour les rares cas à problème.

          PAssez-moi votre résultat.
          Cdlt

  6. LOLO de la Drôme dit :

    bonjour,
    Super boulot. MERCI. Cà a marché presque du premier coup
    Cependant je rencontre un petit problème
    J.ai un PI 4 qui tourne avec MQTT pour récupérer avec des T° 8266
    j’ai voulu raccrocher le routeur dessus. J.ai une erreur connexion qui tournai en boucle
    J.ai donc voulu faire RAZ avec la clé . Depuis je n’ai plus accès à 192.168.4.1 ni au WIFI
    J.ai du louper quelque chose
    Corlialement

    • F1ATB André dit :

      En version 4, quand les 2 Leds clignotent en opposition, à ce moment le système passe en point d’accès pendant 3mn et vous pouvez ouvrir le Wifi de votre smartphone et vous connectez à l’ESP à l’adresse 192.168.4.1

  7. LOLO de la Drôme dit :

    merci pour la réponse
    J’avais oublier de rechercher les réseaux wifi disponibles :

    Connectez-vous à
    celui qui porte le nom
    UxI-ESP32…..,

    Je suis vraiment épaté par cette réalisation qui dépasse très largement mon petit niveau dans la programmation

  8. Daniel dit :

    Bonjour Monsieur,

    Tout d’abord félicitations pour vos réalisations, je vais entamer la construction d’un routeur version 3.04 et j’ai quelques interrogations.

    J’ai un contrat EDF de 9kva et j’ai choisi une sonde 50A/25 ma 2000/1, dois je changer un parametre sur le programme. Pour la resistance, je dois toujours tendre vers 1 volt efficace a ses bornes soit environ 40 ohms.

    Mon chauffe eau est alimenté via un tableau secondaire éloigné du compteur (je précise que ce tableau supporte 90% de mes équipements), Puis je connecter la sonde en tete de ce tableau ou dois je impérativement utiliser un deuxieme esp32 sous le linky pour les mesures et transmettre par wifi les données pour commander le triac.
    merci d’avance

    Cordialement

    • F1ATB André dit :

      Vous pouvez laisser la résistance d’origine ou monter à 40ohm. Il y a un réglage de gain sur la page web des paramètres.
      Pensez à installer la version V4.02_RMS, plutôt que la 3.04

      Cdlt

  9. JMH dit :

    Bonjour, et bravo pour votre travail;

    Juste une remarque dans le chapitre cadrage dynamique ; il me semble qu’il y a confusion entre efficace, crête et crête à crête ?

    Cadrage dynamique
    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. : là je suis d’accord
    Pour la sonde de courant avec 80A et une résistance de 24 Ω , on arrive à peu près au 1V crête à crête. pas d’accord (efficace)
    24*80A/2000=0.96V efficcace ou 1.36V crête à crête. pas d’accord (1.36 crête ou 2×1.36 crête à crête)

  10. Daniel dit :

    Bonjour monsieur,

    Comment la version 4.03 rms fait-elle la difference entre les 3 versions de montages ?

    Cdlt

  11. raf dit :

    salut,
    j’ai dessiné un pcb 2 couches pour faire le montage UxI en soudant les composants au on endroit
    une version du pcb est ici : https://aisler.net/team-f6103c02-3af0-476c-bd76-d754de8efc51/sandbox/routeur-2-faces
    le fichier ‘source’ est fait sous fritzing, si certains sont intéressés par le partage, faites le savoir ici.. éventuellement faire des commandes groupées de pcb… c’est moins cher en plus grande série 😉

  12. Lolo de la Drôme dit :

    Bonjour,
    Au risque de répéter , vous avez fait un travail remarquable et facile à mettre en oeuvre
    mais beaucoup trop compliqué pour moi de « modifier » quoi que soit dans le code
    Je voudrais sur cette base juste mesurer ,en plus, différente consommation
    Je dispose de plusieurs ESP8266 et de capteurs de courant
    es-t-il envisageable d’adapter le code ?
    Cordialement

  13. Dominique dit :

    Bonjour André,
    je suis équipé du routeur UxI que j’ai modifié avec un capteur de température inséré dans le chauffe-eau et le code version 5.10 RMS.
    Après un changement de chauffe-eau, je me suis rendu compte que, quand ma production était faible (peu d’ensoleillement), mes courbes n’étaient qu’oscillations incontrôlables quelque soit le réglage du gain. Finalement, je viens de m’apercevoir que mon nouveau CE est équipé d’un relais de t°électronique. Demain, je vais essayer de séparer l’alimentation de la carte par un 230 V fixe et l’alimentation des résistances par le triac en passant par le relais de cette carte.
    J’espère que j’ai été clair.
    Encore merci pour vos travaux.

  14. Jacques dit :

    Bonjour André
    J’ai besoin de deux petites précisions
    -La flèche sur la sonde de courant doit être dans le sens consommation ou injection?
    -Le sens de connexion des fils (1 rouge 1 noir) est-il important?
    Merci pour votre réponse
    Cordialement

    • F1ATB André dit :

      Faut pas se prendre la tête avec la sonde. Dans tous les cas entre le courant et la tension, on sera toujours à l’envers. Si quand vous consommez, les puissances s’affichent à gauche du côté conso c’est bon. Dans le cas contraire, si vous injectez sans soleil, vous êtes à l’envers.

      Cdlt

  15. Alexandre dit :

    Bonjour André,

    Tout d’abord merci pour le partage de votre travail.
    Je viens de réaliser le montage UxI.
    J’ai pu configurer un ESP32 pour récupérer les valeurs réseaux et un second pour alimenter mon chauffe eau.
    J’ai un problème au niveau du montage UxI, dans les donnés brutes ma sinusoïde reste constamment au-dessus de 0.
    On distingue une courbe mais elle est très faible.
    J’ai tester les tensions de plusieurs bornes voici les résultats :
    entre 3.3v et G35 = 1.66v DC
    entre G35 et G32 = 0.9V AC (transformateur 6v AC)
    entre G35 et G33 = 0.0V AC (très peu de consommation à l’heure du test)
    D’autres mesures seront peut-être plus pertinentes.

    Merci pour votre aide.

    Cordialement,

  16. Jimmy dit :

    Bonjour

    j’ai fait les 2 montages suivant
    – linky
    – UxI

    lorsque le linky me remonte 600 VA pour 200 W

    le montage UxI me remonte 600VA pour 400W environ avec un cos phi de 0.6 ce qui me semble plus cohérent

    j’ai bien calibré le montage avec mon four : cos phi 0.97 ,

    la puissance apparente est toujours similaire à celle du Linky et du montage Linky.

    si le cos phi est proche de 1, les 2 montages indique une puissance active similaire à quelques watts prêts

    la différence augmente si cos phi diminue.

    Pour le montage UxI

    j’ai modifié la résistance r5 en mettant e résistance de 4700 en parallèle car mon transfo à une tenson de 9.8V

    le coeff Ueff est à 950 et le Ieff à 1050.

    Ne devrais-je pas avoir la même puissance active ?

    merci pour tout.

    • F1ATB André dit :

      Attention avec le Linky, la puissance active peut demander un peu de temps pour être correcte, surtout dans les basses valeurs.

      Le Linky ne fournit pas la puissance Active en Watt. Il fournit uniquement le cumul en Wh sous forme de nombre entier. Pour avoir la puissance, il faut diviser par le temps entre 2 mesures. Comme les mesures sont des entiers, cela donne des sauts. Un lissage permet de moyenner ces sauts.
      Ce qui est important pour le routeur, c’est le signe (injection ou consommation). Heureusement le Linky signe la valeur de puissance apparente en VA toutes les 2s. Cela permet de ne pas se tromper dans le sens de correction.

      Si vous êtes cohérents entre UxI et Linky pour les grosses valeurs. Laissez ainsi vos réglages.

      Cdlt

  17. jeepken dit :

    Bonjour,
    Je suis toujours sur une des premières version (U, I et P calculés sur une période de 20ms). et un relais ToR pour M/A du chauffe eau sur un seuil (avec toutes les imperfection évidentes). Je n’ai pas mis de gradateur car le CE possède de l’électronique, je pense qu’il s’agit de la régulation de température??
    Mais votre page avec les différents type de régulation m’interpelle, en effet un train de sinus pourrait être compatible avec le système électronique qui de base est alimenté en alternatif.
    qu’en pensez-vous

    • F1ATB André dit :

      Un relais SSR en multi-sinus peut être mis après la régulation électronique de température. Il faut l’inserer entre la sortie du thermostat electronique et les résistances du chauffe-eau.

      Cdlt

      • jeepken dit :

        merci pour votre réponse. je vais voir ce que je peux faire mais bidouiller le chauffe eau ça paraît pas évident…Je n’ai pas encore eu le temps de regarder votre programme de régulation « multi sinus » je suppose que cela s’apparente au principe PMW du courant continu??
        Merci encore et bravo pour ce remarquable travail.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *