Inspiré du projet de F1ATB
Se donner la peine de réaliser une installation photovoltaïque entièrement DIY et redonner gratos le surplus produit à EDF, c'est ballot non ?
La solution: fabriquer un système capable de détecter si on consomme ou produit et utiliser le surplus pour notre usage personnel, un radiateur, une clim, chauffage de piscine, chauffe-eau, etc.
Le projet de F1ATB est ambitieux, découpage pour triac, liaison wi-fi, domotique, visu, etc. Un tel projet est complexe et passionnant à mener pour peu qu'on s'y tienne, pour ma part passionné multi-lièvriste je saute de projet en
projet et comme je ne suis pas une IA j'ai une mémoire assez volatile pour ce qui concerne mes anciennes réalisations. J'ai donc voulu un concept le plus simple possible et bien commenté pour pouvoir remettre le nez
dedans dans quelques années en cas de maintenance sans m'arracher les cheveux. Mon truc à moi c'est l'assembleur des PIC et j'ai une sainte horreur des langages évolués verbeux et
leurs librairies obscures, j'ai donc réécris le code le plus simple possible en C. Pas de wi-fi, pas de visu a part deux leds et juste un relais SSR qui commandera un radiateur l'hiver et une clim l'été.
Objectif: zéro injection, on utilise le surplus des panneaux photovoltaïque pour notre besoin au lieu de le reverser sur le réseau EDF.
Inspiration: le projet de F1ATB que j'ai simplifié pour mes besoins.
Le cerveau: ESP32 comme microcontrôleur central.
------------------------------------------------------------------------------ PRINCIPE ------------------------------------------------------------------------------
on prends une image de la tension secteur, du courant, on calcule la puissance, on détermine le sens du courant et on ouvre ou ferme un relais SSR. C'est tout.
L'idée est de mesurer la tension secteur et le courant secteur en entrée de domicile, on calcule le déphasage entre les deux. Si courant et tension sont en phase on sait qu'on est en demande a EDF, si courant
et tension sont en opposition de phase on sait qu'on produit trop et qu'on en rejette sur le réseau, et çà c'est ce qu'on veut éviter.
- Pour mesurer la tension on utilise un petit transformateur qui transforme le secteur en basse tension AC genre 6v ou autre (qui délivre en réalité 7.8v), çà dépend de ce qu'on trouve comme transfo abaisseur. Juste
par qu'on ne veut pas mettre directement du 230v sur une pin de microcontroleur, l'ADC a ses limites.
- Pour mesurer le courant on utilise une sonde de couplage sur la phase du secteur( une simple pince ampèremetrique), on en extrait le courant divisé par une certaine valeur (100A/50mA dans notre cas), on le mesure aux bornes d'une résistance (burden)
pour en extraire la tension résultante. Pareil que pour V ici, le but est d'être dans les clous pour les pins ADC du microcontroleur qui n'accepte entrée que 3.3v maxi.
- ces deux tensions sont envoyées aux bornes ADC du microcontroleur et on calcule la puissance résultante. Pour calculer une puissance on fait P=UI (Puissance=Tension x Intensité), ce qui nous donne une valeur positive.
Ici on veut avoir une puissance positive ou négative suivant ce qui entre ou sort, pour connaître le sens du courant. Pour cela on va utiliser une tension de ref qui se situe au centre de la tension admise par le microcontroleur, par exemple 2.5v pour des
pins fonctionnant en 5v. L'ESP32 travaillant en 3.3v la ref sera donc de 1.65V.
De P=UI le calcul deviendra P=(I-ref) x (U-ref), ce qui nous calculera une valeur positive ou négative, ce que l'on souhaite.
Par exemple si le courant est en phase avec la tension ils seront tous les deux ensembles en alternance positive ou négative, on aura P positif, ce signifie qu'on tire sur le réseau. Par contre si le courant est en
déphasage par rapport a la tension, par exemple quand la tension est en alternance positive le courant sera en alternance négative et vice versa, et cela nous calculera une valeur de puissance négative, ce qui signifie
qu'on est en production et qu'on ré-injecte sur le réseau.
Voilà pour le principe.
------------------------------------------------------------------------------ REALISATION ------------------------------------------------------------------------------
Le matos: j'aurai pu utiliser un PIC mais je code en asm, pas envie de me lancer dans une galère en nombres signés. Pour le programmer en C il faudrait installer l'usine a gaz MPLABX que je ne connais pas (et pas envie de connaître).
Sur mon PC j'ai déjà VSCode d'installé, à partir de là j'ai hésité entre un arduino dont j'ai un plein tiroir ou un ESP32. Il y avait un ESP32 l'établi ce jour-là, comme quoi çà
ne tient pas à grand chose. J'aurai pu utiliser un rapberry PI pico mais il était dans un tiroir, çà m'aurait fait travailler mon python. L'ESP32 fonctionnant en 3.3v j'ai fait un PCB équipé de ponts diviseurs adaptés pour
descendre les tensions issues du transfo 7.8v, celle issue de la R courant en 3.3v et la Vref. L'ESP32 commandera un relais SSR sur lequel sera branchée la prise radiateur ou clim.
Pour la partie hard je me suis inspiré du travail de F1ATB mais pas plus suivi ses traces car le cahier des charges est différent. partie soft: son code est très abouti et gère un système domotique, le wi-fi, etc.
J'ai tout recodé a ma sauce pour faire plus simple et plus adapté à mes besoins.
On mesure 100 échantillons pendant chaque alternance (50Hz=20ms), on calcule la puissance et on fait la moyenne, négative on ouvre le relais, positive on ferme. Deux leds sur le boitier estampillées "EDF" et "PV"
indiquent si on est en demande ou en production. J'ai également mis en place un hystérésis pour que le SSR ne se mette pas à danser les jours nuageux et ou on serait sur le fil du rasoir niveau tensions.
------------------------------------------------------------------------------ MONTAGE ------------------------------------------------------------------------------
Schéma, pour ne pas réinventer la roue je me suis inspiré du montage de F1ATB:
Implantation:
Montage dans un boitier de 200x200x100:
------------------------------------------------------------------------------ CODE ------------------------------------------------------------------------------
J'ai intégré dans le code une liaison UART qui renvoie les valeurs V, I, ref 1.65v, état SSR et P, bien pratique pour une maintenance ultérieure. Ces données sont issues de l'ADC sur 12bits, fournies en niveaux 0 à 4096. Après coup j'ai pensé rajouter une visu sur un écran NOKIA 5110 mais le PCB était déjà gravé. Idée à garder pour une éventuelle version V.2. Pour la calibration j'ai utilisé ce que j'avais sous la main, en l'occurence un radiateur électrique de 1500W.
------------------------------------------------------------------------------ Premiers tests sur table ------------------------------------------------------------------------------
Concluants, on voit bien les fluctuations de V quand le programme prélève un échantillon sur la sinusoïde du secteur (à travers le transfo 7.8v), P indique bien la conso ici testée avec juste un radiateur
électrique estampillé 1500W.
Pour valider la consommation secteur ou la réinjection j'ai juste changé le sens de pinçage du capteur sur le fil d'alim du radiateur.
Résultats receuillis sur la liaison UART:
Ici on consomme du réseau, puissance positive, relais SSR fermé
Ici on est en production avec les PV, puissance négative, relais SSR ouvert:
------------------------------------------------------------------------------ Work in progress ------------------------------------------------------------------------------
Reste à installer tout çà à demeure, se piquer dans le tableau électrique en amont du domicile, placer le boitier, faire des trous dans les murs, etc.
Pas le plus marrant...