Contrôler son chargeur R48 et son JK BMS avec: ESP32 + écran OLED
Aujourd’hui, je vais te montrer comment j’ai poussé un peu plus loin mon projet de batterie DIY.
La dernière fois, je m’étais contenté de piloter mon chargeur R48 avec un ESP32 via un MCP2515.
Mais là, on muscle le truc : ajout d’un écran OLED, alimentation directe depuis la batterie, boîtier imprimé en 3D… et intégration complète dans Home Assistant.
Alimentation directe depuis la batterie
Pour éviter de passer par un câble USB (pas très pratique sur une installation fixe), j’ai ajouté un convertisseur XL7015. Il permet de transformer les ~50 V de ma batterie en un petit 5 V bien propre pour l’ESP32 et ses copains.
Le principe est simple :
entrée : + et – venant de la batterie (via le R48),
sortie : 5 V branchés sur l’ESP32,
un petit réglage au tournevis et hop, tension stable à 5 V.
L’écran OLED SSD1306
J’ai choisi un petit écran OLED SSD1306 (moins d’un pouce mais largement suffisant).
Il affiche différents menus :
état du JK BMS,
paramètres du R48,
extinction automatique au bout de quelques secondes (pour éviter le marquage).
Le câblage se fait en I2C : SDA sur D26, SCL sur D27 de l’ESP32.
J’avais tenté un écran couleur en SPI, mais ça plantait la comm avec le R48. Conclusion : rester simple, c’est mieux !
Un bouton pour naviguer
Pour passer d’un menu à l’autre, j’ai ajouté un petit bouton poussoir relié au GPIO D33.
Avec une résistance de 10kΩ en pull-up, ça marche nickel.
Petite astuce : j’ai modifié un bouton ON/OFF pour qu’il se comporte comme un simple “momentané” → un clic, et hop, on change de menu.
Montage et boîtier 3D
L’ensemble est intégré dans un boîtier imprimé en 3D (avec un petit logo Bricolo 2.0 pour le fun ).
L’écran est vissé en façade,
le bouton dépasse juste ce qu’il faut,
tout reste démontable (sauf le convertisseur soudé directement pour gagner de la place).
Petit conseil : si ton ESP32 capte mal en WiFi une fois enfermé, prends une version avec antenne externe.
Programmation avec ESPHome
J’ai repris la base du code trouvée sur GitHub (merci à XAudio ) et j’ai ajouté :
la gestion de l’écran,
le bouton de menu,
le JK BMS en Bluetooth,
le R48 via le MCP2515.
Tout ça compile sous ESPHome (attention, j’utilise une version de juillet, les dernières m’ont posé souci).
Une fois flashé sur l’ESP32, il ne reste plus qu’à l’intégrer dans Home Assistant.
voici le programme:
Intégration dans Home Assistant
Dans HA, c’est du gâteau :
Scanner le réseau (Advanced IP Scanner par ex.) pour trouver l’IP de ton ESP32.
Ajouter l’appareil dans ESPHome sous Home Assistant.
Et bim
tu récupères :
toutes les valeurs du JK BMS (tension cellules, température, etc.),
les infos du R48 (courant de charge, tension, etc.).
Résultat : un monitoring complet de ta batterie, piloté et affiché en temps réel.
Conclusion
Avec un peu de soudure, un écran OLED et une impression 3D, on transforme un simple ESP32 en véritable tableau de bord de batterie.
Tout est accessible depuis Home Assistant, et le projet reste évolutif (ajout d’autres menus, capteurs, etc.).
Les fichiers STL pour impression 3D sont dispos ici : Bricolo 2.0



