So aktivieren Sie Cloud-Plattform-Dienste für ein BMS ohne WiFi-Modul
Welches Problem lösen wir?
Viele Batteriemanagementsysteme (BMS) verfügen nur über kabelgebundene Kommunikationsschnittstellen wie RS485 oder CAN, ohne integriertes WiFi. Das bedeutet, Sie können Daten nur einsehen, wenn Sie mit einem Kabel neben der Batterie stehen – keine Fernüberwachung.
Ziel dieses Tutorials ist es, ein kostengünstiges ESP32-Modul zu verwenden, um BMS-Daten auf eine Cloud-Plattform zu übertragen, sodass Sie den Batteriestatus von überall mit Internetzugang überprüfen und sogar Fehler-Alarme erhalten können.
Nach Abschluss dieses Tutorials beherrschen Sie:
-
Hardwareauswahl und Verkabelung
-
Direkter lokaler Netzwerkzugriff (einfach, aber eingeschränkt)
-
Aufbau eines Cloud-Servers für echte Fernüberwachung
1. Grundwissen (Terminologie)
-
BMS – Batteriemanagementsystem; überwacht Spannung, Strom und Temperatur und schützt die Batterie.
-
RS485 – Eine robuste industrielle kabelgebundene Kommunikationsschnittstelle, meist mit A- und B-Leitungen.
-
Modbus-Protokoll – Die „Sprache", die viele BMS verwenden; z. B. kann die Spannung durch Lesen einer bestimmten „Registeradresse" ermittelt werden. Die detaillierten Lesebefehle stellen wir später bereit.
-
ESP32 – Ein kostengünstiger Mikrocontroller mit WiFi und Bluetooth. Er fungiert als „Übersetzer" und wandelt die RS485-Daten des BMS in WiFi-Signale um.
-
MQTT – Ein leichtgewichtiges Nachrichtenprotokoll, ideal für IoT-Geräte, um Daten an einen Server zu senden.
2. Hardwarevorbereitung: Alles, was Sie brauchen
2.1 Übersicht der Kernhardware
| Hardware | Wichtige Anforderung | Grund |
|---|---|---|
| ESP32-Modul | Modell mit externem Antennenanschluss wählen, z. B. ESP32‑S3 (N16R8) | Das Batteriegehäuse ist ein Metallschrank, der interne Antennensignale blockiert. Eine externe Antenne ist nötig, um das WiFi-Signal herauszuführen. |
| TTL-zu-RS485 Modul | Mit automatischer Flusskontrolle; Industrieversion mit Isolierung empfohlen | Automatische Flusskontrolle schaltet automatisch zwischen Senden/Empfangen um und vermeidet Kommunikationskonflikte. Die Isolierung schützt vor Gleichtaktstörungen, die Chips zerstören können. |
| Isoliertes Stromversorgungsmodul | z. B. B0505S‑1W | Zwischen BMS-Masse und ESP32-Masse kann eine Spannungsdifferenz bestehen. Ohne Isolierung können Daten verfälscht oder schlimmer: der ESP32 zerstört oder die BMS-Messung gestört werden. |
| DC-DC-Abwärtswandler | Weiter Eingangsspannungsbereich, z. B. LM2596 oder MP1584EN | Die Hilfsspannung der Batterie beträgt meist 12–60 V und muss auf 5 V heruntergeregelt werden, um den ESP32 zu versorgen. |
Falls „automatische Flusskontrolle" verwirrend klingt, sagen Sie dem Händler einfach, Sie brauchen ein „TTL zu RS485 Modul mit automatischer Sende-/Empfangssteuerung".
TTL zu RS485 Modul:

Warum besonders den ESP32‑S3 (N16R8) empfehlen?
-
Bis zu 45 GPIOs, kann zwei UART-Schnittstellen gleichzeitig bedienen (eine für das BMS, eine für einen Wechselrichter).
-
LX7-Kern mit 240 MHz, bietet mehr Rechenleistung – praktisch, wenn Sie später Batterielebensdauer-Vorhersagen oder FFT-Oberwellenanalysen durchführen möchten.
-
Externer Antennenanschluss sorgt für ein zuverlässiges WiFi-Signal selbst im Metallschrank.
ESP32‑S3 Modul:

2.2 Verkabelungslogik (genau befolgen)
-
Kommunikationsverkabelung:
BMS RS485 A & B Leitungen → TTL-zu-RS485 Modul A & B Klemmen → Modul TX an ESP32 GPIO16 (RX2), Modul RX an ESP32 GPIO17 (TX2).
Alle Geräte müssen eine gemeinsame Masse (GND) haben. Modul VCC an 5 V oder 3,3 V (je nach Spezifikation). -
Stromverkabelung:
Batterie P+ & P− → Eingang des Weitbereichs-Abwärtswandlers → Ausgang 5 V → Eingang isoliertes Strommodul (B0505S) → isolierter 5 V Ausgang → ESP32 5 V und GND Pins.
Hinweis: Vor dem Verkabeln immer die Stromversorgung trennen, Polarität doppelt prüfen und die Stromisolierung niemals weglassen.
3. Lösung Eins: Direkte LAN-Verbindung (schnell zum Testen, aber keine Dauerlösung)
Dieser Ansatz macht den ESP32 zu einem kleinen Webserver. Sie können die Batteriedaten anzeigen, indem Sie im selben WiFi-Netzwerk einen Browser auf dem Handy öffnen.
Schritt 1: Hardwareverbindung
Verkabelung wie in „Hardwarevorbereitung" beschrieben abschließen.
Schritt 2: MicroPython-Code schreiben
(Wir stellen das BMS Modbus-Protokolldokument bereit) Der Code erledigt drei Dinge:
-
Verbindet sich mit Ihrem WiFi.
-
Liest periodisch BMS-Register (z. B. Spannung ist an Adresse 0x1300 gespeichert).
-
Bettet eine einfache HTML-Seite zur Anzeige der gelesenen Werte ein.
Sie verwenden die Thonny IDE, um den Code auf den ESP32 zu flashen. (Thonny wird später ausführlich erklärt.)
Schritt 3: Auf dem Handy anzeigen
Im seriellen Monitor von Thonny sehen Sie die IP-Adresse, die dem ESP32 nach der WiFi-Verbindung zugewiesen wurde, z. B. 192.168.1.50. Verbinden Sie Ihr Handy mit demselben WiFi, öffnen Sie einen Browser und geben Sie diese IP-Adresse ein, um die Batteriedatenseite zu sehen.
Erhebliche Nachteile dieses Ansatzes (Warum wir in die Cloud wechseln müssen)
-
Nur zu Hause einsehbar: Kein Zugriff, sobald Sie das Haus verlassen, es sei denn, Sie richten eine Portweiterleitung auf Ihrem Router ein (sehr unsicher).
-
Keine Verlaufsdaten: Der ESP32 hat extrem begrenzten Speicher; er kann keine jahrelangen Daten speichern, Monatsberichte können nicht erstellt werden, und Sie können nicht herausfinden, was eine nächtliche Auslösung verursacht hat, da kein Fehlerprotokoll existiert.
-
Abstürze bei mehreren Benutzern: Wenn zwei oder drei Personen gleichzeitig die Seite öffnen, kann der ESP32 aufgrund von Speichermangel neu starten.
-
Keine proaktiven Alarme: Wenn die Batterietemperatur zu hoch ist oder die Zellspannungsdifferenz Grenzwerte überschreitet, kann es Ihnen keine Push-Benachrichtigung senden. Wenn Sie die Seite nicht aktiv prüfen, erfahren Sie nicht, dass etwas nicht stimmt.
Deshalb brauchen wir eine echte Serverlösung.
4. Lösung Zwei: Cloud-Server-Architektur (Die ultimative Lösung)
Architekturüberblick:
BMS —[RS485]—> ESP32 —[WiFi/MQTT]—> Cloud-Server (EMQX Message Broker) —> Python-Skript —> MySQL-Datenbank —> Web/App-Anzeige
Der ESP32 sammelt und lädt nur Daten hoch; Datenspeicherung und Webanzeige werden von einem professionellen Server übernommen.
Schritt 1: Cloud-Server kaufen
-
Betriebssystem: Ubuntu 20.04 oder 22.04 LTS (beste Python-Kompatibilität und am stabilsten für BT Panel).
-
Wichtig: Öffnen Sie sofort nach dem Kauf folgende Ports in der Firewall (Sicherheitsgruppe) Ihres Cloud-Anbieters:
-
1883 (MQTT-Standardport)
-
18083 (EMQX-Dashboard)
-
8888 (BT Panel Zugang)
-
3306 (MySQL, falls Fernverwaltung nötig)
-
80 und 443 (Webdienste)
-
Schritt 2: Lokale Entwicklungsumgebung – Thonny IDE
Thonny ist ein ausgezeichnetes Werkzeug für die MicroPython-Entwicklung; es wird verwendet, um Firmware zu flashen, Code hochzuladen und Echtzeitprotokolle des ESP32 anzuzeigen.
-
Thonny herunterladen und installieren.
-
Thonny öffnen, auf die Interpreter-Auswahl unten rechts klicken und „MicroPython (ESP32)" wählen.
-
Wenn der ESP32‑S3 nicht erkannt wird, gehen Sie zu „Run → Select Interpreter", klicken Sie auf „Install or update MicroPython" und wählen Sie die entsprechende S3-Firmware zum Flashen.
Schritt 3: Erforderliche Software auf dem Server installieren
Wir verwenden BT Panel (Baota Panel), um die Serververwaltung zu vereinfachen.
3.1 BT Panel installieren
Entsprechend Ihrem Serversystem (Ubuntu) den Installationsbefehl von der offiziellen BT-Website holen und per SSH auf Ihrem Server ausführen.
3.2 Notwendige Plugins im BT Panel installieren
Im BT Panel Backend anmelden, zum „App Store" gehen und installieren:
-
Docker Manager – um EMQX (MQTT Message Broker) schnell bereitzustellen.
-
Python Project Manager – macht Ihr Python-Datenverarbeitungsskript zu einem Systemdienst, der bei Absturz automatisch neu startet.
-
MySQL 5.7+ – zum Speichern der Batterieverlaufsdaten.
-
Nginx – wird als Reverse Proxy für Webseiten und zum Hosten von OTA-Firmware-Dateien verwendet.
Schritt 4: EMQX (MQTT Broker) mit Docker bereitstellen
Im BT Panel den Docker Manager öffnen, nach emqx suchen, das offizielle Image verwenden, um einen Container zu erstellen, und die Ports 1883 und 18083 zuordnen.
Rufen Sie //Ihre-Server-IP:18083 auf, um das EMQX-Dashboard zu öffnen, und erstellen Sie einen Benutzernamen und ein Passwort, die der ESP32 bei der Verbindung verwendet.
Schritt 5: Das Cloud-Datenverarbeitungsskript schreiben
Schreiben Sie auf Ihrem PC oder direkt auf dem Server ein Python-Skript, das:
-
Die
paho-mqttBibliothek verwendet, um die von EMQX empfangenen Batteriedaten abzuhören. -
Die Daten analysiert und in der MySQL-Datenbank speichert.
-
Mit
FastAPIerweitert werden kann, um API-Endpunkte für Webseiten oder zukünftige mobile Apps bereitzustellen.
Erforderliche Python-Bibliotheken installieren (im Server-Terminal oder im Python Project Manager):
Schritt 6: ESP32-Code (MicroPython)
Wir stellen Ihnen das BMS Modbus-Protokolldokument zur Verfügung. Basierend darauf schreiben Sie den ESP32-Code, um:
-
WiFi zu verbinden.
-
Eine Verbindung zum MQTT-Server herzustellen (mit der öffentlichen IP Ihres Servers, Port, Benutzername und Passwort).
-
Periodisch RS485-Daten zu lesen (Spannung, Strom, Temperatur usw.).
-
Diese in JSON zu verpacken und an ein bestimmtes MQTT-Topic zu veröffentlichen.
Speichern Sie den Code als main.py und laden Sie ihn mit Thonny auf den ESP32 hoch (dadurch läuft er beim Einschalten automatisch).
Schritt 7: Frontend-Anzeige
Sie können Nginx verwenden, um eine HTML-Seite zu hosten, die die FastAPI-Schnittstelle mit JavaScript aufruft, um Echtzeit-Überwachungs-Dashboards und Verlaufsdiagramme zu erstellen. Dieser Teil kann je nach Bedarf individuell entwickelt oder mit fertigen Dashboard-Tools erstellt werden.
5. Systemeffekte und Zusammenfassung der Vorteile
Nach Abschluss der obigen Bereitstellung verfügen Sie über:
-
Zugriff von überall: Überprüfen Sie den Status Ihres Energiespeichersystems, wo immer Sie Internet haben.
-
Verlaufsdatenbank: Jede Spannungs-, Strom- und Fehleraufzeichnung wird in MySQL gespeichert und ermöglicht Tages-/Monatsberichte und Fehlerverfolgung.
-
Hohe Parallelität und Stabilität: Servertaugliche MQTT- und Webdienste können mehrere gleichzeitige Benutzer problemlos verarbeiten.
-
Proaktive Alarme: Schreiben Sie Regeln im Cloud-Skript, um Sie bei abnormalen Daten aktiv per E-Mail, SMS oder App-Push zu benachrichtigen.
-
Industrietaugliche Stabilität: Das störfeste Design des ESP32‑S3, die externe Antenne und die Stromisolierung gewährleisten einen zuverlässigen Langzeitbetrieb im Metallschrank.
-
Einfache Wartung: Thonny + BT Panel reduzieren den Schwierigkeitsgrad von Firmware-Upgrades und Serververwaltung erheblich und erleichtern zukünftige Funktionsiterationen.
-
Vollständiges Lebenszyklus-Archiv: Für jedes Batteriepaket wird eine Cloud-Gesundheitsakte erstellt, die manipulationssichere Daten für die Anlagenbewertung und Garantiepolicen liefert.
Wenn Sie von Grund auf beginnen, folgen Sie einfach diesem Tutorial Schritt für Schritt, und Sie können ein traditionelles BMS ohne WiFi in ein modernes IoT-Energiespeichergerät verwandeln. Dies ist nicht nur eine technische Übung, sondern ein wichtiger Schritt in Richtung intelligentes Energiemanagement. Was sind die Vorteile? Erfahren Sie mehr über Smart BMS mit WiFi.
Wenn Sie während des Prozesses auf unbekannte Begriffe oder Elemente stoßen, können Sie sich gerne an das Seplos-Ingenieurteam wenden.
Kälte vs. Hitze: Was ist schlimmer für Ihre Energiespeicherbatterie?
Von der Hardware zum intelligenten Asset: Warum Ihr Energiespeichersystem unbedingt ein Seplos WiFi-BMS benötigt
For more questions, please
contact us