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)
  • Un gradateur 16A ou 24A de RobotDyn suivant la puissance du chauffe-eau (Aliexpress). Non traité ici mais 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
  • 2 LEDS en face avant
  • Du fil de câblage 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...

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

Laisser un commentaire

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