Comment activer les services de plateforme cloud pour un BMS sans module WiFi
Quel problème résolvons-nous ?
De nombreux systèmes de gestion de batterie (BMS) ne disposent que d'interfaces de communication filaires comme RS485 ou CAN, sans WiFi intégré. Cela signifie que vous ne pouvez consulter les données qu'en vous tenant à côté de la batterie avec un câble – pas de surveillance à distance.
L'objectif de ce tutoriel est d'utiliser un module ESP32 à faible coût pour transférer les données du BMS vers une plateforme cloud, afin que vous puissiez vérifier l'état de la batterie depuis n'importe où avec un accès Internet, et même recevoir des alarmes de défaut.
Après avoir terminé ce tutoriel, vous maîtriserez :
-
La sélection du matériel et le câblage
-
L'accès direct au réseau local (simple mais limité)
-
La construction d'un serveur cloud pour une véritable surveillance à distance
1. Connaissances de base (Terminologie)
-
BMS – Système de gestion de batterie ; surveille la tension, le courant et la température, et protège la batterie.
-
RS485 – Une interface de communication filaire industrielle robuste, généralement avec des lignes A et B.
-
Protocole Modbus – Le « langage » utilisé par de nombreux BMS ; par exemple, la tension peut être obtenue en lisant une « adresse de registre » spécifique. Nous fournirons les commandes de lecture détaillées plus tard.
-
ESP32 – Un microcontrôleur à faible coût avec WiFi et Bluetooth. Il agit comme un « traducteur », convertissant les données RS485 du BMS en signaux WiFi.
-
MQTT – Un protocole de messagerie léger, idéal pour que les appareils IoT envoient des données à un serveur.
2. Préparation du matériel : Tout ce dont vous avez besoin
2.1 Liste du matériel de base
| Matériel | Exigence clé | Raison |
|---|---|---|
| Module ESP32 | Choisir un modèle avec connecteur d'antenne externe, tel que ESP32‑S3 (N16R8) | L'armoire de stockage d'énergie est une enceinte métallique qui bloque les signaux d'antenne interne. Une antenne externe est nécessaire pour faire sortir le signal WiFi. |
| Module TTL vers RS485 | Avec contrôle de flux automatique ; une version industrielle avec isolation est recommandée | Le contrôle de flux automatique commute automatiquement entre émission/réception, évitant les conflits de communication. L'isolation protège contre les interférences de mode commun qui peuvent griller les puces. |
| Module d'alimentation isolé | par ex. B0505S‑1W | Il peut y avoir une différence de potentiel entre la masse du BMS et la masse de l'ESP32. Sans isolation, les données peuvent être corrompues, ou pire, l'ESP32 peut brûler, ou l'échantillonnage du BMS peut être perturbé. |
| Module abaisseur DC‑DC | Large plage de tension d'entrée, tel que LM2596 ou MP1584EN | L'alimentation auxiliaire de la batterie est généralement de 12V–60V et doit être abaissée à 5V pour alimenter l'ESP32. |
Si « contrôle de flux automatique » vous semble confus, dites simplement au vendeur que vous avez besoin d'un « module TTL vers RS485 avec contrôle automatique d'émission/réception ».
Module TTL vers RS485 :

Pourquoi recommander particulièrement l'ESP32‑S3 (N16R8) ?
-
Jusqu'à 45 GPIO, capable de gérer deux interfaces UART simultanément (une pour le BMS et une pour un onduleur).
-
Cœur LX7 à 240 MHz, offrant plus de puissance de calcul – pratique si vous souhaitez ultérieurement exécuter des prédictions de durée de vie de batterie ou des analyses d'harmoniques FFT.
-
Le connecteur d'antenne externe garantit un signal WiFi fiable même dans une armoire métallique.
Module ESP32‑S3 :

2.2 Logique de câblage (à suivre exactement)
-
Câblage de communication :
Lignes BMS RS485 A & B → bornes A & B du module TTL vers RS485 → Module TX vers ESP32 GPIO16 (RX2), Module RX vers ESP32 GPIO17 (TX2).
Tous les appareils doivent partager une masse commune (GND). Module VCC à 5V ou 3,3V (selon ses spécifications). -
Câblage d'alimentation :
Batterie P+ & P− → entrée du module abaisseur à large entrée → sortie 5V → entrée du module d'alimentation isolé (B0505S) → sortie 5V isolée → broches 5V et GND de l'ESP32.
Remarque : Toujours couper l'alimentation avant le câblage, vérifier deux fois la polarité et ne jamais omettre l'isolation de l'alimentation.
3. Solution Un : Connexion LAN directe (rapide à tester, mais pas une solution à long terme)
Cette approche transforme l'ESP32 en un petit serveur web. Vous pouvez consulter les données de la batterie en ouvrant un navigateur sur un téléphone connecté au même réseau WiFi.
Étape 1 : Connexion matérielle
Terminez le câblage comme décrit dans « Préparation du matériel ».
Étape 2 : Écrire le code MicroPython
(Nous fournirons le document du protocole Modbus BMS) Le code fait trois choses :
-
Se connecte à votre WiFi.
-
Lit périodiquement les registres du BMS (par exemple, la tension est stockée à l'adresse 0x1300).
-
Intègre une page HTML simple pour afficher les valeurs lues.
Vous utiliserez l'IDE Thonny pour flasher le code sur l'ESP32. (Thonny est expliqué en détail plus tard.)
Étape 3 : Afficher sur votre téléphone
Dans le moniteur série de Thonny, vous verrez l'adresse IP attribuée à l'ESP32 après sa connexion au WiFi, par ex. 192.168.1.50. Connectez votre téléphone au même WiFi, ouvrez un navigateur et entrez cette adresse IP pour voir la page de données de la batterie.
Graves inconvénients de cette approche (Pourquoi nous devons passer au cloud)
-
Consultable uniquement à la maison : Aucun accès une fois parti, sauf si vous configurez une redirection de port sur votre routeur (très peu sécurisé).
-
Pas de données historiques : L'ESP32 a un stockage extrêmement limité ; il ne peut pas stocker des années de données, les rapports mensuels ne peuvent pas être générés, et vous ne pouvez pas savoir ce qui a causé un déclenchement nocturne car il n'y a pas de journal de défauts.
-
Plantage avec plusieurs utilisateurs : Si deux ou trois personnes ouvrent la page en même temps, l'ESP32 peut manquer de mémoire et redémarrer.
-
Pas d'alertes proactives : Si la température de la batterie est trop élevée ou si la différence de tension des cellules dépasse les limites, il ne peut pas vous envoyer de notification push. Si vous ne vérifiez pas activement la page, vous ne saurez pas qu'il y a un problème.
Par conséquent, nous avons besoin d'une véritable solution serveur.
4. Solution Deux : Architecture de serveur cloud (La solution ultime)
Aperçu de l'architecture :
BMS —[RS485]—> ESP32 —[WiFi/MQTT]—> Serveur Cloud (EMQX Message Broker) —> Script Python —> Base de données MySQL —> Affichage Web/Application
L'ESP32 collecte et télécharge uniquement les données ; le stockage des données et l'affichage web sont gérés par un serveur professionnel.
Étape 1 : Acheter un serveur cloud
-
Système d'exploitation : Ubuntu 20.04 ou 22.04 LTS (meilleure compatibilité Python et plus stable pour BT Panel).
-
Important : Immédiatement après l'achat, ouvrez les ports suivants dans le pare-feu (groupe de sécurité) de votre fournisseur cloud :
-
1883 (port MQTT par défaut)
-
18083 (tableau de bord EMQX)
-
8888 (accès BT Panel)
-
3306 (MySQL, si gestion à distance nécessaire)
-
80 et 443 (services Web)
-
Étape 2 : Environnement de développement local – IDE Thonny
Thonny est un excellent outil pour le développement MicroPython ; il est utilisé pour flasher le firmware, télécharger le code et afficher les journaux en temps réel de l'ESP32.
-
Télécharger et installer Thonny.
-
Ouvrir Thonny, cliquer sur le sélecteur d'interpréteur en bas à droite et choisir « MicroPython (ESP32) ».
-
Si l'ESP32‑S3 n'est pas reconnu, allez dans « Run → Select Interpreter », cliquez sur « Install or update MicroPython » et sélectionnez le firmware S3 correspondant à flasher.
Étape 3 : Installer les logiciels requis sur le serveur
Nous utilisons BT Panel (Baota Panel) pour simplifier la gestion du serveur.
3.1 Installer BT Panel
Selon votre système serveur (Ubuntu), obtenez la commande d'installation sur le site officiel de BT et exécutez-la via SSH sur votre serveur.
3.2 Installer les plugins nécessaires dans BT Panel
Connectez-vous à l'interface de BT Panel, allez dans l'« App Store » et installez :
-
Docker Manager – pour déployer rapidement EMQX (courtier de messages MQTT).
-
Python Project Manager – transforme votre script de traitement de données Python en un service système qui redémarre automatiquement en cas de plantage.
-
MySQL 5.7+ – pour stocker les données historiques de la batterie.
-
Nginx – utilisé comme proxy inverse pour les pages web et pour héberger les fichiers de firmware OTA.
Étape 4 : Déployer EMQX (Courtier MQTT) avec Docker
Dans BT Panel, ouvrez Docker Manager, recherchez emqx, utilisez l'image officielle pour créer un conteneur et mappez les ports 1883 et 18083.
Accédez à //votre-ip-serveur:18083 pour entrer dans le tableau de bord EMQX et créez un nom d'utilisateur et un mot de passe que l'ESP32 utilisera pour se connecter.
Étape 5 : Écrire le script de traitement des données cloud
Sur votre PC ou directement sur le serveur, écrivez un script Python qui :
-
Utilise la bibliothèque
paho-mqttpour écouter les données de batterie reçues par EMQX. -
Analyse les données et les stocke dans la base de données MySQL.
-
Peut être étendu avec
FastAPIpour fournir des points de terminaison API pour des pages web ou de futures applications mobiles.
Installez les bibliothèques Python requises (dans le terminal du serveur ou dans Python Project Manager) :
Étape 6 : Code ESP32 (MicroPython)
Nous vous fournirons le document du protocole Modbus du BMS. Sur cette base, écrivez le code ESP32 pour :
-
Se connecter au WiFi.
-
Se connecter au serveur MQTT (en utilisant l'IP publique de votre serveur, le port, le nom d'utilisateur et le mot de passe).
-
Lire périodiquement les données RS485 (tension, courant, température, etc.).
-
Les emballer en JSON et les publier sur un topic MQTT spécifié.
Enregistrez le code sous main.py et téléchargez-le sur l'ESP32 en utilisant Thonny (cela le fait s'exécuter automatiquement à la mise sous tension).
Étape 7 : Affichage frontal
Vous pouvez utiliser Nginx pour héberger une page HTML qui appelle l'interface FastAPI avec JavaScript pour réaliser des tableaux de bord de surveillance en temps réel et des graphiques historiques. Cette partie peut être développée sur mesure selon vos besoins ou construite avec des outils de tableau de bord prêts à l'emploi.
5. Effets du système et résumé des avantages
Après avoir terminé le déploiement ci-dessus, vous disposerez de :
-
Accès de n'importe où : Vérifiez l'état de votre système de stockage d'énergie où que vous ayez Internet.
-
Base de données historique : Chaque enregistrement de tension, courant et défaut est stocké dans MySQL, permettant des rapports quotidiens/mensuels et le traçage des défauts.
-
Haute concurrence et stabilité : Les services MQTT et Web de qualité serveur peuvent gérer plusieurs utilisateurs simultanés sans pression.
-
Alertes proactives : Écrivez des règles dans le script cloud pour vous notifier activement par e-mail, SMS ou notification push d'application lorsque les données sont anormales.
-
Stabilité de qualité industrielle : La conception anti-interférence de l'ESP32‑S3, l'antenne externe et l'isolation de l'alimentation garantissent un fonctionnement fiable à long terme à l'intérieur d'une armoire métallique.
-
Maintenance facile : Thonny + BT Panel réduisent considérablement la difficulté des mises à jour du firmware et de la gestion du serveur, facilitant l'itération future des fonctionnalités.
-
Archive complète du cycle de vie : Un dossier de santé cloud est créé pour chaque pack de batteries, fournissant des données infalsifiables pour l'évaluation des actifs et les politiques de garantie.
En partant de zéro, suivez simplement ce tutoriel étape par étape, et vous pourrez transformer un BMS traditionnel sans WiFi en un dispositif de stockage d'énergie IoT moderne. Ce n'est pas seulement une pratique technique, mais une étape clé vers la gestion intelligente de l'énergie. Quels sont les avantages ? Découvrez le Smart BMS avec WiFi.
Si vous rencontrez des éléments ou des termes inconnus pendant le processus, n'hésitez pas à contacter l'équipe d'ingénieurs Seplos.
Froid contre chaleur : Qu'est-ce qui est pire pour votre batterie de stockage d'énergie ?
De la simple hardware à l'actif intelligent : pourquoi votre système de stockage d'énergie doit impérativement intégrer un BMS WiFi Seplos
For more questions, please
contact us