Batteriebänke werden häufig in Unterbrechungsfreien Stromversorgungen (USV), bei der Speicherung erneuerbarer Energie und bei netzunabhängigen Anwendungen eingesetzt. Die Überwachung des Zustands und der Leistung dieser Batterien ist jedoch nach wie vor eine Herausforderung, da herkömmliche USV-Systeme mehrere Batterien als eine Einheit behandeln, was zu nicht ausbalancierten Ladezuständen und Ineffizienz führt. PbMonitor ist eine einfache, aber effektive Überwachungslösung, die Spannung, Strom und Temperatur von Blei-Säure- und Li-Ion Batterien in Echtzeit verfolgen kann. Die gesammelten Daten werden über MQTT an Home Assistant übertragen, was eine Überwachung und Automatisierung in Echtzeit ermöglicht. Dieses Batterieüberwachungssystem hilft Ihnen, den Überblick über Ihre Batterien zu behalten und bietet eine Lösung für das Batteriemanagement in verschiedenen Anwendungen.

Eine praktische Lösung

Energiespeichersysteme insbesondere in USV-Konfigurationen verwenden häufig mehrere Batterien in Reihe, um die Spannungsanforderungen zu erfüllen. Diese Topologie vereinfacht zwar die Energieversorgung, bringt jedoch erhebliche Herausforderungen in Bezug auf die Ladungsbalancierung, die Überwachung des Zustands der einzelnen Zellen und den unterschiedlichen Ladezustand mit sich. Herkömmliche USV-Systeme behandeln die Batteriebank als eine einzelne Einheit und verfügen nicht über die erforderliche Granularität, um Ungleichgewichte zwischen den einzelnen Zellen zu erkennen, was zu einem vorzeitigen Ausfall und einer geringeren Betriebseffizienz führen kann.

PbMonitor Battery-Monitoring System
Bild 1. Das PbMonitor-System überwacht die 48-V-Batteriebank in Echtzeit.

Der Anstoß zur Entwicklung von PbMonitor (Bild 1) entstand aus einer praktischen Notwendigkeit heraus, ein USV-System mit vier in Reihe geschalteten 12-V-Bleibatterien zu kontrollieren, die eine nominale 48-V-Versorgung gewährleisten (Bild 2). Ohne ein spezielles Überwachungssystem blieben die einzelnen Batteriespannungen jedoch unbekannt, was das Risiko einer Über- oder Unterladung der einzelnen Zellen beziehungsweise Batterien mit sich brachte. Nach fast eineinhalb Jahren Betrieb war es dringend erforderlich, ein System zu implementieren, das den Zustand der Batterien diagnostizieren, Leistungsabweichungen erkennen und eine proaktive Wartung ermöglichen würde.

The 48-V battery pack configuration. PbMonitor Battery-Monitoring System
Bild 2. Die Konfiguration von vier 12-V-Bleibatterien
in Reihe ergibt eine 48-V-Batterie.

Die Motivation für dieses Projekt ergab sich aus meiner eigenen Verwendung von Blei-Säure-Batterien, die den Bedarf an einer speziellen Überwachungslösung deutlich machte. Dies inspirierte mich zu dem Namen PbMonitor, wobei "Pb" für Blei steht, was sich mit dem Hauptaugenmerk auf die Überwachung und Optimierung der Leistung von Blei-Säure-Batterien deckt.

Dies inspirierte den Autor zum Namen PbMonitor, wobei Pb für Blei steht, was auf die Überwachung und Optimierung der Leistung von Blei-Säure-Batterien hindeutet. PbMonitor wird aber nicht nur in USV-Umgebungen, sondern auch in Systemen für erneuerbare Energien eingesetzt. Durch diese Überwachung können die Batterielebensdauer verlängert, vorausschauende Wartungsstrategien optimiert und die Zuverlässigkeit von Energiespeicherlösungen insgesamt verbessert werden.

Architektur des Batterie-Überwachungssystems

Der PbMonitor basiert auf dem ESP32-C3-Mikrocontroller, der zuverlässige WLAN- und BLE-Kommunikation für die Echtzeitüberwachung bietet. Für hochauflösende Spannungs- und Strommessungen wurde der externe Analog/Digital-Wandler MCP3008 von Microchip integriert, der eine 10-Bit-Präzision über acht Kanäle bietet und über SPI mit dem ESP32-C3 verbunden ist, wie in der Blockschaltung (Bild 3) dargestellt.

PbMonitor Battery-Monitoring System Block diagram
Bild 3. Blockschaltbild des Projekts.

Die Spannungsmessung erfolgt über ein Netzwerk von Präzisionswiderständen, die einen Spannungsteiler bilden, der mit dem Eingangsbereich des ADCs kompatibel ist. Für die Strommessung verwendet das System das ACS72981-Modul von Pololu mit einem Chip von Allegro MicroSystems . Dieses hochpräzise Halleffekt-Stromsensormodul ermöglicht eine bidirektionale Verfolgung des Stroms, was für die Überwachung von Lade- und Entladezyklen entscheidend ist. Dieses Modul wurde auch schon im AmpVolt-Projekt verwendet und hat sich als zuverlässiger Sensor für Strommessungen erwiesen .

Darüber hinaus überwachen Thermistoren sowohl die Umgebungs- als auch die Batterietemperatur kontinuierlich und liefern für die Langlebigkeit und Betriebssicherheit der Batterie wichtige thermische Daten. Die überwachte Batteriebank besteht aus vier in Reihe geschalteten 12-V-Bleibatterien, die ein 48-V-System bildet, das eine diskrete Spannungsnachführung erfordert, um ein Ungleichgewicht zu verhindern.

Abonnieren
Tag-Benachrichtigung zu Strom & Energie jetzt abonnieren!

Der Schaltplan

Der Schaltplan (Bild 4) folgt einem strukturierten Ansatz zur Erfassung der Batterieparameter. Jeder Batterieknoten ist mit einem Spannungsteiler (R1...R8) verbunden, um die Spannung auf einen für den ADC MCP3008 (IC1) geeigneten Bereich zu skalieren, der mit einer 10-Bit-Auflösung und einer Eingangsspannungsgrenze von 0...3,3 V arbeitet. In einem in Reihe geschalteten Batteriesystem wie diesem kann die Messung einzelner Batteriespannungen aufgrund der gemeinsamen Anschlusspunkte problematisch sein. Um den Messprozess zu vereinfachen und die Hardwarekomplexität zu reduzieren, wird deshalb die Spannung am Pluspol jeder Batterie im Verhältnis zur Systemmasse gemessen. Diese Methode liefert kumulierte Spannungen (zum Beispiel 12 V, 24 V, 36 V und 48 V). Der MCP3008 ADC (IC1) tastet diese Spannungen nacheinander ab, die dann in der Firmware verarbeitet werden, indem die Spannung jeder Batterie von der davor liegenden subtrahiert wird.

PbMonitor battery-monitoring system schematic
Bild 4. Der Schaltplan.

Dieser Ansatz macht eine komplexe Schaltung zur Messung der Differenzspannung überflüssig, reduziert die Anzahl der erforderlichen ADC-Kanäle und vermeidet Probleme mit einer erdfreien Masse, die bei der direkten Messung einzelner Zellspannungen auftreten können. Darüber hinaus werden genaue Messwerte erfasst, ohne dass die bei der direkten Zellenmessung auftretenden Isolationsprobleme auftreten.

Der ±50-A-Stromsensor ACS72981 von Pololu an K2 wird zur Messung des bidirektionalen Stromflusses verwendet und liefert Echtzeitdaten sowohl für Lade- als auch Entladezyklen. Dieser Hall-Effekt-Sensor gibt eine analoge Spannung aus, die mit dem Strom variiert. Bei 0 V beträgt die Ausgangsspannung 1,67 V als Referenzpunkt. Wenn der Strom im Uhrzeigersinn fließt (Entladen), steigt die Spannung mit einer Rate von 0,0264 V/A, während ein Strom entgegen dem Uhrzeigersinn (Laden) zu einer entsprechenden Abnahme der Spannung führt.

Der Ausgang des Sensors wird vom ADC MCP3008 gelesen, der die Spannung für die weitere Verarbeitung digitalisiert. Der ADC MCP3008, der mit 3,3 V arbeitet, ist für den Single-Ended-Modus konfiguriert, wobei alle acht Kanäle für Batteriespannungs-, Strom- und Temperaturmessungen verwendet werden. Der ADC löst mit 10 Bit auf und besitzt eine maximale Abtastrate von 75 kSamples/s bei 3,3 V. Wenn jedoch alle acht Kanäle verwendet werden, reduziert sich die effektive Abtastrate pro Kanal aufgrund der sequenziellen Abtastung. Mit einem SPI-Takt von 1 MHz kann der ADC eine Abtastrate von etwa 9...10 kSamples/s pro Kanal erreichen, was eine zuverlässige Echtzeitüberwachung gewährleistet.

Die Temperaturüberwachung erfolgt über die Thermistoren T1...T3, die ebenfalls an den MCP3008 angeschlossen sind und sowohl die Umgebungs- als auch die Batteriebedingungen kontinuierlich erfassen. Der Thermistor arbeitet als Teil eines Spannungsteilers, wobei sich sein Widerstand mit der Temperatur und so die gemessene Spannung ändern. Um den Widerstand des Thermistors zu ermitteln, wird der von ihm verursachte Spannungsabfall mit einer Spannungsteilerschaltung gemessen. Der Widerstand wird nach folgender Formel berechnet:

Pb eq1

wobei Rfixed der bekannte Wert des Vorwiderstands, Vmeasured der Spannungsabfall über dem Thermistor und Vref die Referenzspannung ist. Diese Spannung wird zur Berechnung des Widerstands verwendet, der dann mit der Steinhart-Hart-Gleichung in eine Temperatur umgerechnet wird:

Pb eq2

wobei die Temperatur in Kelvin, der Thermistorwiderstand und ABC (im Datenblatt des Thermistors angegeben) die thermistorspezifischen Koeffizienten sind. Die Temperatur wird schließlich in Celsius umgerechnet. Die Verwendung von Thermistoren ist effektiver als 1-Wire-Sensoren, da sie schnell und genau sind.

Der XIAO ESP32-C3 von Seeed Studio war aufgrund seiner Kompaktheit, der leistungsstarken ESP32-C3-Architektur und des gut durchdachten Formfaktors eine naheliegende Wahl für dieses Projekt. Seeed Studio hat bei der Entwicklung der XIAO-Boards gute Arbeit geleistet. Die Boards sind nicht nur klein, sondern auch sehr vielseitig, mit einer guten Ausstattung an I/O-Optionen für die Integration in verschiedene Anwendungen. Das Board kann direkt auf eine Platine gelötet oder über 2,54-mm-Stiftleisten eingesteckt werden, was sie sowohl für Prototypen als auch für endgültige Implementierungen äußerst flexibel macht.

Der ESP32-C3 (MOD1) ist über SPI mit dem ADC verbunden, wendet Kalibrierungsalgorithmen an und überträgt Daten über MQTT an einen Home-Assistant-Server. Ein Anschluss (K3) im 2,54-mm-Raster für das OLED-Display zur lokalen Anzeige der Echtzeitdaten ist ebenfalls vorhanden. Schließlich wird ein Low-drop-Spannungsregler AMS1117 (T1) von UMW für die Stromversorgung des gesamten Systems verwendet.

PbMonitor components list

Platinenlayout

Die Leiterplatte wurde kompakt gestaltet und misst nur 53,5 × 36 mm. Das Ziel war es, die Platine so klein wie möglich zu halten, damit sie beim Anschluss an das System nicht erdrückend wirkt. Wie in Bild 5 zu sehen ist, wurde das Pololu-Stromsensormodul strategisch auf der rechten Seite der Platine positioniert. Zur Erleichterung der Spannungsabtastung wurden horizontale JST-Steckverbinder im 2,54-mm-Raster verwendet, die sichere und zuverlässige Verbindungen gewährleisten. Derselbe Steckertyp wurde auch für die Thermistoren verwendet. Den Anschluss für das OLED-Display findet man in der Mitte der Platine, um eine optimale Sichtbarkeit zu gewährleisten, während das ESP32-C3-Modul auf der linken Seite positioniert wurde, um den zur Verfügung stehenden Platz effizient zu nutzen und die Signalintegrität zu gewährleisten. Das Layout wurde optimiert, um Rauschen zu minimieren sowie stabile ADC-Messwerte und einen zuverlässigen Betrieb in anspruchsvollen Umgebungen zu ermöglichen.

PbMonitor front and back PCB
Bild 5. Rendering der Ober- und Unterseite der Leiterplatte.

Software-Integration und Home Assistant

Die Firmware für PbMonitor wurde mit dem Arduino-Framework entwickelt und ist mit der Arduino-IDE und PlatformIO kompatibel. Der Sketch ist zusammen mit den vollständigen Hardware-Dateien im GitHub-Repository des Projekts verfügbar . Die Firmware stützt sich auf mehrere wichtige Bibliotheken, darunter WiFi.h für die Netzwerkkommunikation, SPI.h für die Verbindung mit dem MCP3008-ADC, Adafruit_MCP3008.h für die ADC-Verarbeitung, MQTTPubSubClient.h für die MQTT-Kommunikation mit Home Assistant sowie Adafruit_GFX.h und Adafruit_SSD1306.h für die Aktualisierung des OLED-Displays in Echtzeit.

Die Firmware berechnet über die Schwellwerte der Batteriespannungen auch einen Ladezustand (State of Charge, SoC) und ist für eine künftige Schätzung des Gesundheitszustands (State of Health, SoH) vorgesehen, bei der die Lade-/Entladezyklen und die Verschlechterung im Laufe der Zeit verfolgt werden sollen. Weitere geplante Funktionen werden im Abschnitt Zukünftige Verbesserungen am Ende des Artikel beschrieben.

Verschiedene Parameter in der Software sind konfigurierbar, darunter ADC-Kalibrierungsfaktoren, MQTT-Aktualisierungsintervalle und Schwellwerte für Batteriewarnungen. Die Firmware wendet Kalibrierungsalgorithmen an, um ADC-Rohwerte in reale Spannungs- und Strommessungen umzuwandeln, wobei vordefinierte Skalierungsfaktoren auf Grundlage von Spannungsteilern und Sensoreigenschaften verwendet werden. Die Genauigkeit der Spannungsmessungen liegt innerhalb von ±0,05 V, während die Strommessungen, die vom ACS72981-Sensor stammen, eine Auflösung von 0,0264 V/A besitzen, was eine genaue Erkennung selbst kleiner Stromschwankungen ermöglicht.

Die verarbeiteten Daten werden über MQTT an den Home Assistant übertragen, was eine nahtlose Integration in eine Smart-Home-Umgebung ermöglicht. Die MQTT-Topics sind für eine einfache Integration strukturiert und ermöglichen die Echtzeitüberwachung von Batteriespannung, -strom und -temperatur. Bild 6 zeigt, wie die Daten auf dem Dashboard des Home Assistant angezeigt werden. Dort können die Benutzer die Batterieleistung verfolgen und Warnmeldungen erhalten, wenn kritische Schwellwerte erreicht werden, indem sie in Home-Assistant-Automatisierungen erstellen.

Battery monitoring data on the Home Assistant dashboard.
Bild 6. Die Echtzeit-Überwachungsdaten des Akkus werden auf dem Dashboard des Home Assistant angezeigt.

Für Benutzer, die eine MQTT-Integration mit Home Assistant einrichten möchten, wurde die Schritt-für-Schritt-Prozedur bereits in einem anderen Artikel dokumentiert, in dem ich die gleiche Methode für ein ESP32-basiertes Energiemessgerät implementiert habe . Diese Anleitung kann für die Einrichtung von MQTT-Konfigurationen, Authentifizierung und Datenvisualisierung in Home Assistant herangezogen werden.

Abonnieren
Tag-Benachrichtigung zu Home Assistant jetzt abonnieren!

Batterieüberwachung mit PbMonitor

USV-Systeme laden Blei-Säure-Batterien mit einem mehrstufigen Ladeverfahren, um die Langlebigkeit und Effizienz der Batterie zu erhalten. Der Ladevorgang besteht in der Regel aus drei Stufen: Konstantstromladung, Aufladeladung und Erhaltungsladung. Während der Konstantstromladung liefert die USV einen hohen Strom, um die Batterien schnell zu laden, bis sie etwa 80 % ihrer vollen Kapazität erreichen. In der Aufladelaung wird die Spannung auf einem konstanten Niveau gehalten, während der Strom allmählich abnimmt, so dass die Batterien die volle Ladung ohne Überhitzung erreichen können. In der Phase der Erhaltungsladung kompensiert die USV die Selbstentladung und sorgt dafür, dass die Batterien stats vollständig geladen bleiben, ohne sie zu überladen.

Obwohl die Batterien voll geladen sind, liefert die USV kontinuierlich einen Erhaltungsstrom von 1 A. Dieser geringe Strom verhindert eine Sulfatierung, ein häufiges Problem bei Blei-Säure-Batterien, bei dem sich Bleisulfatkristalle auf den Batterieplatten bilden und die Kapazität und Effizienz verringern. Durch die Aufrechterhaltung dieses geringen Ladestroms sorgt die USV dafür, dass die Batterien in optimalem Zustand für den Standby-Betrieb bleiben.

Um den Lade- und Entladezyklus zu testen, wurden die Batterien vollständig aufgeladen und im Backup-Modus betrieben. Die USV lieferte eine Backup-Dauer von 4 Stunden und 40 Minuten, bevor sie sich entlud. Die während dieses vollständigen Ladezyklus gesammelten Daten (Bild 7) zeigten, dass Batterie 1 und Batterie 4 eine Ladespannung von 13,5 V erreichten, während Batterie 2 und Batterie 3 bis zu 14,23 V beziehungsweise 13,9 V aufluden. Diese Diskrepanz deutet auf ein Ungleichgewicht beim Laden hin, das auf Schwankungen des Innenwiderstands oder Unterschiede bei der Alterung der Batterien zurückzuführen sein könnte.

Charging and discharging trends of the battery bank, visualized using the Home Assistant History dashboard.
Bild 7. Lade- und Entladevorgänge der Batteriebank, angezeigt im Home Assistant History Dashboard.

Während der Entladung wurden bemerkenswerte Spannungsunterschiede festgestellt. Batterie 1 sank etwa 40 Minuten vor Ende des Entladezyklus auf 8 V, während Batterie 4 nur 10 Minuten vor der vollständigen Entladung auf 8 V sank. Im Gegensatz dazu behielten Batterie 2 und Batterie 3 höhere Spannungen bei und stabilisierten sich jeweils bei 11,5 V am Ende des Entladezyklus. Diese Unterschiede deuten darauf hin, dass Batterie 1 und Batterie 4 möglicherweise eine geringere Kapazität oder einen höheren Innenwiderstand haben, was zu einem früheren Spannungsabfall im Vergleich zu den anderen beiden Batterien führt. Dieses Ungleichgewicht unterstreicht die Bedeutung einer Echtzeitüberwachung, um schwache Batterien zu erkennen und Korrekturmaßnahmen zu ergreifen, bevor die Systemleistung beeinträchtigt wird.

Zukünftige Verbesserungen

Am PbMonitor könnten mehrere Verbesserungen vorgenommen werden, um Genauigkeit, Zuverlässigkeit und Benutzerfreundlichkeit zu verbessern. Auf der Softwareseite schwanken die Strommesswerte, wie in Bild 7 zu sehen ist, erheblich und pendeln zwischen Null und dem tatsächlichen Wert. Da die Messungen der Stromsensoren stabil bleiben, muss dieses Problem weiter untersucht werden. Die Implementierung von Filtertechniken wie gleitende Mittelwerte oder die Anpassung der ADC-Abtastrate könnten die Messwerte stabilisieren. Zu den weiteren Softwareverbesserungen gehören die Integration einer Taste zum Umschalten zwischen verschiedenen Display-Ansichten, die Verfeinerung Algorithmen des SoC (State of Charge) und SoH (State of Health) zur Verbesserung der Genauigkeit und die Implementierung einer internen Protokollierung zur Verfolgung historischer Daten. Das System könnte auch durch vorausschauende Analysen zur Abschätzung der Batterieüberbrückungszeit und des Trends zur Leistungsverschlechterung verbessert werden.

Was die Hardware betrifft, so ist das derzeitige Platinenlayout zwar kompakt, hat aber nur drei Löcher zur Befestigung der Platine, was möglicherweise keine ausreichende strukturelle Stabilität bietet. Eine geringfügige Vergrößerung der Platine und ein viertes Befestigungsloch würde die Gehäusemontage verbessern. Darüber hinaus würde das Hinzufügen von zwei weiteren Thermistoren die Überwachung aller vier Batterien statt nur der beiden mittleren ermöglichen und ein vollständigeres Wärmeprofil liefern. Künftige Versionen könnten auch eine Echtzeituhr (RTC) für die präzise Aufzeichnung von Lade- und Entladezyklen sowie EEPROM- oder SD-Kartenspeicher für die langfristige Datenspeicherung enthalten. Erweiterung der Konnektivitätsmöglichkleiten wie Bluetooth oder LoRaWAN könnten eine Fernüberwachung ermöglichen, während die Integration eines Summers oder von LED-Anzeigen Echtzeitwarnungen bei Spannungsanomalien liefern könnte. Darüber hinaus sollte unter Beibehaltung der MQTT-Funktion des Home Assistant eine Webserver-Funktion für Standorte hinzugefügt werden, an denen WLAN oder Home Assistant nicht zugänglich sind, und ein kleines Dashboard auf dem ESP32-Webserver zur Verfügung stellen, um den Systemstatus zu verfolgen.


 Anmerkung der Redaktion: Dieser Artikel (240704-02) erschien in Elektor Mai/Juni 2025.


Questions About the Battery-Monitoring System?

Wenn Sie technische Fragen oder Anmerkungen zu diesem Artikel haben, wenden Sie sich bitte an den Autor unter saad.imtiaz@elektor.com oder an die Elektor-Redaktion unter redaktion@elektor.de.