Les batteries LiFePO4 Seplos V4 de 15kWh sont dotées d'un petit écran tactile et il est possible de récupérer les infos (Niveau de charge, voltage, courant, température...) sur une application android se connectant à la batterie en bluetooth low energy.
Le problème, c'est que la batterie n'est pas toujours à portée du bluetooth (quelques mètres) lorsqu'on souhaite connaître le niveau de charge pour, par exemple, savoir si on peut lancer une charge de sa voiture électrique.
La batterie est en général très proche de l'onduleur hybride dont les ventilateurs peuvent être bruyant, l'installation est donc souvent en dehors de la zone d'habitation (garage, cave, abri de jardin, ...).
Le but des scripts proposés est de lire via bluetooth les infos de la batterie (du BMS en fait, c'est l'électronique qui gère et protège les cellules de la batterie) puis de tranmettre ces infos via wifi dont la portée est bien plus grande (plusieurs dizaines de mètres) en utilisant un petit microcontroleur ESP32 coûtant quelques euros.
Le projet se décompose comme suit :
-
l'ESP32 est programmé en utilisant un logiciel opensource (Arduino IDE) et est placé à proximité de la baterie ;
-
toutes les 2 minutes, l'ESP32 tente de lire les infos de la batterie, puis essaye d'envoyer les infos sur un serveur web local ou externe en appelant un script PHP ;
-
le script PHP décode la trame reçue et stocke les infos dans une base sqlite ;
-
un second script PHP permet la lecture des infos sur un smartphone sous forme de webapp, en affichant les principales valeurs (niveau de charge, voltage, courant, température), un graph de la journée, et les prévivions de production suivant l'ensoleillement des jours de la semaine à venir en se basant sur les prévisions d'openmeteo.com.
Programmation de l'ESP32
Pour programmer l'ESP32, il faut installer le logiciel
Arduino IDE 2, puis dans
"Fichier" puis "Préférences" il faut renseigner la carte additionnelle avec "https://dl.espressif.com/dl/package_esp32_index.json".
Brancher l'ESP32 avec un cable USB. Dans Arduino IDE, choisir la carte ESP32 correspondante dans "outils", "choisir carte" et sélectionner le modèle d'ESP32 correspondant et le port de communication USB.
Ouvrir ensuite le script seplosv4.ino présent dans le répertoire SCRIPT_ESP32 dans Arduino IDE. Puisque les bibliothèques bluetooth low energy et wifi sont assez grosses, il faut choisir un partionnement de l'ESP32 qui laisse le plus de place pour le programme. Pour cela il faut aller dans le menu "Outils", "Schema de partition" et choisir "Minimum SPIDFFS".
Dans le code, il faut renseigner les 4 variables suivants :
Compiler le programme en cliquant sur le premier icône dans la barre sous le menu. Installer éventuellement les librairies manquantes via le gestionnaire de librairies d'Arduino IDE.
Lorsque le programme compile sans erreur, flasher l'ESP32 en cliquant sur le deuxième icône dans la barre sous le menu.
L'ESP32 est prêt.
Ce script est sous licence Apache License, Version 2.0. Vous ne pouvez utiliser ce script qu'en accord avec la licence. Vous pouvez obtenir une copie de la licence à l'adresse suivante :
http://www.apache.org/licenses/LICENSE-2.0
Sauf si requis par loi applicable ou convenu par écrit, le script sous licence est distribué 'TEL QUEL', SANS GARANTIE NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour prendre connaissance des conditons spécifiques régissant les autorisations et les limitations en vertu de la Licence.
Vous pouvez utiliser, copier, modifier et redistribuer gratuitement, en accord avec la licence. Si vous voulez remercier le développeur, ou soutenir les développements futurs de ce script, vous pouvez utiliser le bouton ci-dessous pour faire un don.