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.
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
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
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
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
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.
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
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
Dans une boite d’électricien, on installe :
- ESP32 (3 choix)
- ESP32 38P (classique)
- Antenne Wifi externe
- ESP32 Wroom DevKit v2 de uPesy en France
- 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.
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
- 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, j’utilise le routeur en version UxI depuis longtemps, mais j’avais eu du mal à trouver un transfo qui me donne une belle sinusoïde (c’était pas une histoire de pont diviseur et d’écrêtage, c’était une déformation dans le front montant) et finalement j’ai utilisé un transfo de récupération qui est parfait. Aujourd’hui je voudrais en monter un deuxième mais je ne sais pas lequel acheter pour être sûr d’obtenir un bon résultat – quelqu’un aurait-il un lien à me proposer ? Merci par avance.
J’ai mis le lien de celui que j’utilise
https://f1atb.fr/fr/capteur-u-x-i-pour-routeur-photovoltaique/
Cdlt
Super !
Merci André.
Bonjour André, tout d’abord merci énormément pour le temps passé, à nous faire des vidéos explicatives de toutes genres, c’est instructif.
Je suis vos vidéos depuis un moment.
Seul défaut, s’y retrouver sur le site, mais c’est une broutilles !
Et, merci pour ce routeur multi-sources, et pour l’ensemble des réponses que vous apporter.
J’ai cherché dans toutes ces réponses, mais voilà, je me résigne à poser la question car je bloque depuis plusieurs jours.
Mon blocage concerne la mesure UxI!
J’ai installé le programme avec la version 8.09.
J’ai réalisé d’abord l’ensemble, sur une plaque et j’ai tout soudé, mais pas de mesure de courant!
j’ai vérifié plusieurs fois mes connexions, et le schéma, mais toujours rien, même en changeant des composants, sachant que j’avais pris des points de mesures qui semblaient, ok pour moi.
J’ai refait le montage sur une plaque à essai, un autre ESP32, et toujours pas de mesure de courant d’affiché ! je perds la tête!
j’ai testé avec plusieurs sondes SCT013 100A/50mA, comme préconisé, les sondes ne sont pas coupées, elles indiquent 173 Ohms à l’ohmmètre, je ne sais pas comment tester plus.
J’ai bien les entrées :
=> Gpio32 pour la tension, que j’arrive à avoir correctement (après ajustement du pont diviseur de tension), car le transfo sort du 7,57v (sachant que j’en ai acheté plusieurs, et pour l’instant tous pareils)…Je mesure 0.9v aux bornes de ma résistance R5.
=> Gpio35 pour la tension de référence de 1,65v, que j’ai bien.
=> Gpio33 pour la mesure de courant, et sachant que quand je débranche le câble, j’ai le max de courant, une espèce de sinusoïde en partie haute et base plate, ce qui semble normal.
J’ai en courbes, une sinusoïde pour la tension, et pour le courant, une courbe plate, toujours à 0 et des broutilles voir par moment 3A, mais pour aucune consommation car rien sur la pince.
J’ai essayé de jouer sur le coefficient de calibration dans les paramètres, sur la résistance de 24 Ohms, que j’ai monté à 60 Ohms, en partant du principe que pour mes essais, je mesure des petites puissances de 500w à 1000w. Et donc en respectant, ce que vous avez mis, U = R x i pour la sonde de courant, soit, pour moi 60 Ohms x 5A /2000 = 0,15V, par contre je n’arrive pas à mesurer en volt quelque chose aux bornes de la résistance de R3 ( je suis en alternatif en mV).
Je n’ai aucune variation de courant quoi que je fasse ! capteur non adapté? j’ai vu que certain parle de capteur 30A / 1V par exemple, on est directement en V.
Si vous avez une idée, de ce que j’ai loupé…..de ce que je pourrais tester/ mesurer…
NB : Je n’ai pas encore fait la partie actionneurs, j’en suis que à la partie de mesure, donc rien de câblé de ce côté.
Si vous me dites erreur de montage, je vais encore tout recommencer, mais je n’y crois pas.
En vous remerciant d’avance.
Bonne soirée
Si vous avez bien câblé, une courbe de tension et pas de courbe de courant. La seule explication que j’ai, c’est que vous avez mis la sonde de courant autour de la phase et du neutre et non pas la phase uniquement. Si phase et neutre passe dans la sonde, les courants inverses crées des champs magnétiques inverses qui s’annulent.
Cdlt
Bonjour, je vais aller me cacher dans un trou de souris !
zéro pointé, c’est la base !
C’est complétement cela, André ! Je faisais mes essais avec grille-pain, chauffage .. en branchant la sonde sur le câble d’alimentation (phase + neutre) !
AH purée !
Je vais pouvoir continuer, je viens de me faire une rallonge sur laquelle je vais pouvoir uniquement brancher la phase, pour mes tests => mais c’est sûr que cela va fonctionner maintenant !
Encore merci et bonne journée.
Bonjour André,
Bravo pour votre travail sur ce projet et son partage.
Je voudrais savoir si il est possible d’ajouter un second UxI pour afficher les données de consommation du ballon.
J’ai lu qu’avec le mode UxIx2, il y a bien les deux mesures (secteur+ballon via RX/TX), mais est-ce supporté avec 2 « modules » UxI ?
Sachant que nous avons déjà la partie U, la lecture d’une seconde pince ampèmétrique suffirait pour faire cet ajout, qu’en pensez-vous
Merci encore et bonne journée.
Actuellement, il n’y a que Uxi et Uxi2. Je ne propose pas d’autres configurations.
Cdlt
Bonsoir
J ai passé le JSK à 38400 baud avec un petit prgramme comprenant les lignes ci dessous.
Du coup le routeur ne fonctionne pas sur votre version.
Comment repasser à 4800 baud ? Le capteur ne communique pas avec le reglage à 38400…
Merci beaucoup pour votre aide.
byte msg[] = {0x00,0x10,0x00,0x04,0x00,0x01,0x02,0x01,0x08,0xAA,0x12}; // passage du port TTL en 38400
// 00 10 00 04 00 01 02 01 06 2B D6 pour passer à 9600
// 00 10 00 04 00 01 02 01 08 AA 12 pour passer à 38400