Gestion WIFI d’un régulateur de charge solaire Epever

Le but de cet article n’est pas de détailler l’installation elle même mais de décrire un petit script Python sur Raspberry qui permet à distance de rapatrier en temps réel l’état de l’installation solaire.

La société chinoise Epever fournit une gamme de régulateurs solaires MPPT (Maximum Power Point Tracking), cette classe de régulateur à ne pas confondre avec l’ancienne génération PWM (Pulse Width Modulation) fournit à la batterie du système solaire le maximum possible d’énergie, en fournissant jusqu’à 30 % de rendement supplémentaire par rapport à un régulateur PWM. Ma petite installation solaire se situe dans une cabane de jardin contiguë à la maison et de ce fait accessible par le réseau WIFI, elle se compose d’un panneau solaire photovoltaïque de 100 W suivi du présent régulateur de charge (disponible un peu partout sur les plateformes de vente Internet) ainsi que d’une batterie au plomb de 22 Ah.

Un Raspberry zero W (avec WIFI) est alimenté par l’installation et est connecté au régulateur.

Le régulateur solaire Epever que l’on trouve facilement sur toutes les plateformes ayant trait à la génération photovoltaïque, prix de l’ordre de 60 € pour un courant max de 10 A.
Le détail des raccordements

La connexion au Raspberry s’effectue en RS-485 via un convertisseur RS-485 USB par le port de communication situé en bas à droite du régulateur, cette connexion utilise une prise RJ-45.

Adaptateur USB / RS-485 disponible également sur Amazon, prix de l’ordre de 10 €

Je passe sur les raccordements entre le régulateur et le convertisseur, il s sont suffisamment explicites et se réalisent avec du fil de câblage basique, le bus RS-485 étant un bus industriel de terrain qui ne craint ni la longueur ni les milieux parasités.

Le script Python s’appuie sur la bibliothèque pymodbus

https://pypi.org/project/pymodbus/

Ainsi que sur la lecture des registres pertinents du régulateur Epever

# Tableau.py
import os

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
from time import sleep

client = ModbusClient(method = 'rtu', port = '/dev/ttyUSB0', baudrate = 115200)
client.connect()

while True:

	Tension_panneau = float(client.read_input_registers(0x3100,1,unit=1).registers[0] / 100.0)
	Courant_panneau = float(client.read_input_registers(0x3101,1,unit=1).registers[0] / 100.0)
	chargeCurrent = float(client.read_input_registers(0x3100,6,unit=1).registers[5] / 100.0)
	Tension_sortie = float(client.read_input_registers(0x310c,1,unit=1).registers[0] / 100.0)
	Courant_sortie  = float(client.read_input_registers(0x310d,1,unit=1).registers[0] / 100.0)
	Temperature_batterie = float(client.read_input_registers(0x3110,1,unit=1).registers[0] / 100.0)
	Temperature_regulateur = float(client.read_input_registers(0x3111,1,unit=1).registers[0] / 100.0)
	Charge_batterie = float(client.read_input_registers(0x311a,1,unit=1).registers[0] / 100.0)
	
	os.system('clear')
    
	print "Tension panneau", Tension_panneau, "V"
	print "Courant panneau", Courant_panneau,"A"
	print "Courant de charge batterie", chargeCurrent, "A"
	print "Tension de sortie", Tension_sortie, "V"
	print "Courant sortie", Courant_sortie, "A"   
	print "Puissance consommee", Tension_sortie * Courant_sortie, "W"
	print "Charge batterie", Charge_batterie * 100, "%"       
	print "Temperature batterie", Temperature_batterie, "Degres"
	print "Temperature regulateur", Temperature_regulateur, "Degres"
	
	sleep(1)

client.close()

Le Raspberry PI Zero WIFI est alimenté en 5 volts via un Buck Down Converter qui permet d’ajuster de façon précise la tension de 5 V destinée au Raspberry avec un rendement proche de 90 % (fondamental dans une installation solaire)

Un Buck Step Down Converter, prix de l’ordre de 5 €

La lecture des paramètres s’effectue en SSH en lançant le script Python depuis une console Linux en mode SSH « Python Tableau.py », la mise à jour se fait toutes les secondes et donne le résultat suivant :

Tension panneau 43.62 V
Courant panneau 0.04 A
Courant de charge batterie 0.13 A
Tension de sortie 14.04 V
Courant sortie 0.09 A
Puissance consommee 1.2636 W
Charge batterie 100.0 %
Temperature batterie 14.49 Degres
Temperature regulateur 19.39 Degres

Bien entendu il est possible de (beaucoup) développer ce script pour en obtenir de plus riches enseignements (valeurs moyennes, courbes de charge / décharge, enregistrements, commandes, etc…)

Laisser un commentaire

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