Batterie Monitor für Autobatterie

Begonnen von Wzut, 21 Januar 2020, 10:24:43

Vorheriges Thema - Nächstes Thema

andies

Da muss ich nochmal nachfragen (und das mit Theorie passt schon - wenn ich überhaupt von was Ahnung habe, dann bestenfalls davon). 1V und 1024 geht ja nicht, weil ich faktisch diese 1V auf 13,3 oder 14,4 oder so hochregle. Wenn ich keinen Transistor mit definierter Verstärkung dazwischenschalte, dann gilt doch 14,4/1024 bit, und das sind dann 0,01V Genauigkeit? Ich beobachte weiter an meiner Batterie, dass die Schwankungen doch sehr groß sind (oder liegt das am Wemos?) und ich freue mich, wenn ich auf 0,05V komme. Zwei Stunden später sind es dann auf einmal 0,08V mehr oder weniger; vermutlich arbeitet die Batterie. Aber das beobachte ich gerade.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Hallo andies,

das mit den 0.01 bei 12 Volt kommst schon eher hin.
Dein Wemos sieht keine 12 Volt. Beispiel im Anhang wie ich es machen würde. Der ADC sieht bei 12 Volt Eingangsspannung nur 0.6 Volt.
Und diese 0.6 Volt kann er auf 1024 Bit auflösen. D.h. rechnerisch auf etwa 600 uV/Bit.
Den Messwert kannst du ja nachher im Programm bearbeiten wie du willst.
Also bei meinem Beispiel mit den Faktor 20, dann werden 12 Volt angezeigt, bei einer Auflösung von 0.01 Volt.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

Ich habe eine Frage, papa romeo. Könnte man nicht auf Umwegen die Kapazität der Batterie abschätzen:

  • Ich messe die Spannung bzw lade bis 12.6 V auf.
  • Ich starte zwei, drei Mal, fahre aber nicht los.
  • Ich messe erneut die Spannung.
So würde ich beispielsweise herausbekommen, dass jeder Startvorgang X% der Gesamtkapazität der Batterie kostet (12.4V sollen 80% entsprechen, das kann ich also herausbekommen). Und aus der Anzahl der Startvorgänge, die ich schaffe, müsste ich doch in etwa wissen, wie gut die Batterie noch ist? Wenn das so geht - gibt es da Erfahrungswerte?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Guten Morgen andies,

...klar geht das ... wobei wir somit wieder bei den Anfängen wären.

Der Batterie Monitor macht nicht´s anderes, nur eben dass er den Motor nicht starten muß, sondern dieses "Starten des Motors" durch eine kurzzeitige höhere Strom-Belastung über einen Shunt simuliert.
(Schonender für die Batterie, da diese Belastung im ms-Bereich liegt und der Ladezustand der Batterie damit nur unwesentlich, gegenüber "Startversuchen des Motors" verändert wird.)

Während dieser Belastung werden dann die entsprechenden Werte für Ri, U0 usw. ermittelt, woraus dann der Zustand der Batterie abgeleitet werden kann.

Das gleiche geht natürlich auch über eine oder mehrere "Differenzmessungen". So wie du es vorschlägst. Also die Werte der unterschiedlichen Belastungen miteinander vergleichen.

Stellt sich aber die Frage was aufwändiger, sinnvoller oder einfacher zu realisieren ist.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Nach einiger Zeit habe ich wieder mal eine Frage. Die Ruhespannung sagte mir ja, dass ich besser spätestens im Winter die Batterie tausche und eine Innenwiderstandsmessung in der Werkstatt bestätigte das (die wollten sogar gleich tauschen).

Nun beobachte ich aber, dass mein Spannungsregler manchmal (alle zwei, drei Wochen) richtig heiss wird und dann anscheinend keine Leistung mehr für den wemos liefert. Ich messe da ca 50 Grad an dem LMS 1117 und verstehe nicht, wieso. Warum wird der heiss? Da ist doch nur ein deep sleep wemos dran?! Was passiert da?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Hallo andies,

du meinst wahrscheinlich den AMS1117 ... oder ?

Ich habe auch festgestellt dass Diese an 5 Volt tadellos funktionieren, aber wenn sie z.B. an 12 Volt betrieben werden, immer wieder mal Schwierigkeiten machen.
Deswegen habe ich bei meinen Projekten meistens auch noch die Option für 3.3 Volt Regler im TO-220 Gehäuse (z.B. LD1117V33) vorgesehen, sollte die Speisespannung
doch mal größer 5 Volt sein.

Wenn du die Möglichkeit hast, so einen Regler einzusetzen, würd ich das mal versuchen.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

danke, und ja, ich meinte den AMS.

Ist schon ärgerlich, wenn man solche Dinge immer via trial-and-error und nicht aus dem Datenblatt herausbekommt.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

...lt. Datenblatt müsste er leicht und locker 12 Volt vertragen, aber wie gesagt, die Praxis zeigt leider anderes ...
Wahrscheinlich fährt er in bestimmten Situationen an der Grenze seiner Ptot (Verlustleistung) und regelt dann runter.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

andies

Nach einiger Zeit sind mir zwei Macken aufgefallen. Manchmal war das Messgerät heiss und ich wusste nicht, warum. Ich habe zuerst den Spannungswandler vermutet und mir dann einen beschafft, der 30V aushält:
LM1086CT-3.3 TO220

Das scheint aber nicht alles zu sein. Im Tasmota-Wiki fand ich durch Zufall noch einen Hinweis. Ich habe ja Tasmota 9.5 auf dem Wemos, um die Spannung auszulesen. Der ESP geht stündlich in deepsleep, weil ich nur stündliche Werte benötige. Wenn das Auto aber nicht in der Garage steht und ausserhalb, also in der Stadt oder so, aufwacht, kann er sich ja nicht mit dem Netz verbinden (denn das ist nur in der Garage). Anscheinend geht er dann nicht in den deepsleep, sondern bleibt einfach fortdauernd wach - was ja ziemlicher Mist ist und meine Probleme gut erklären könnte. Theo schlägt im Wiki vor, durch eine Rule dann deepsleep zu erzwingen, und zwar so
Rule1 ON Dimmer#Boot DO RuleTimer1 61 ENDON ON Rules#Timer=1 DO DeepSleepTime 3600 ENDON
Nicht von dem trigger dimmer#boot irritieren lassen, der muss so heissen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Papa Romeo

Wollte mich mal eigentlich wieder mal diesem Thema zuwenden und bin dabei irgendwie auf das PZEM-003 gestoßen. Ein kleines DC-Mess-Modul für bis zu 300 Volt und 300 Ampere.
Je nachdem ob für das Grundmodul (bis 10A) oder mit Shunt bis zu 300 A, in der Preislage von knapp 10 - 15 Euro.

Im Netz gibt es dazu auch schon diverse Anleitungen wie man dieses Modul WiFi fähig machen kann. Mir hat aber dabei nicht gefallen, dass bei allen Anleitungen immer die
ModBus - Anbindung, sei es durch komplettes Auslöten oder Ablöten eines Pin´s des MAX485, außer Funktion gesetzt wird.

Also habe ich mir das mal näher angeschaut, ob es eventuell eine Möglichkeit gibt, beide Anbindungen, also Kabel (ModBus) und WiFi (ESP8266) nutzbar zu machen.

Das Ergebnis ... es funktioniert ... und sogar mit weniger Aufwand als all die anderen Anleitungen, wenn man mit dem Rx-Signal für das Auswerte-IC U3 entsprechend umgeht.

Die Lösung ist ein kleiner Miniatur-Schiebeschalter, den man wie folgt integriert. Den Kollektor-Pin des Opto-Kopplers U2 von der Platine ablöten und nach oben biegen.
Das nun frei gewordene Lötpad wird mit dem Mittelanschluss des Schalters verbunden. Ein Schaltausgang kommt an den hoch gebogenen Pin des Opto-Kopplers,
der andere Schaltausgang liefert das RX-Signal für den ESP8266. Das Tx-Signal des Auswerte-Bausteines U3 wird einfach parallel an den ESP geführt.

Da mein Miniaturschalter eine 2xUM Ausführung war, habe ich den anderen Schaltzweig dann gleich noch so genutzt, dass wenn die ModBus-Verbindung aktiv ist,
der ESP deaktiviert wird, indem ihm die Versorgungsspannung genommen wird.

Als Option habe ich noch ein Miniatur-Relais verbaut, dass, wenn am USB-Anschluss eine Versorgungspannung anliegt, das Modul auch wirklich über diesen Weg
gespeist und die Speisung über das angeschlossene ,,Messobjekt" definitiv unterbunden wird. Dazu wird der Arbeitskontakt des Relais über die 12V Z-Diode Z2 gelegt.
Durch den Kurzschluss der Z-Spannung wird dann dem Transistor Q1 die Basisspannung genommen und er sperrt. Ich halte diese Option für sinnvoll,
da der Betrieb mit dem ESP doch einer höheren Strombelastung für das Messobjekt bedeutet, diese Mehrbelastung aber nicht in das Messergebnis mit einfließt.
Will man diese Mehrbelastung erfassen, muss der Minus-Anschluss des Messobjektes und der der Last vertauscht und die gemessene Spannung rechnerisch korrigiert werden.
(--> Spannungsabfall über dem Shunt addieren)

Als zweite Option habe ich auf der Platine eine 3.5 mm Klinken-Print-Buchse angebracht. Hier führe ich einen GPIO (14) bestückt mit einem 5 kOhm Pullup
(2 x 10 kOhm parallel) für z.B. One-Wire-Sensoren nach außen.

Als dritte Option habe ich dem USB-Anschluss noch einen 10:1 Teiler, bestehen aus einem 10 kOhm und zwei parallelen 180 kOhm Widerständen, verpasst.
Über A0 des ESP kann somit die Eingangsspannung erfasst und bei z.B. Akku-Betrieb entsprechende Maßnahmen eingeleitet oder Meldungen abgesetzt werden.

Das Ganze funktioniert mit einem ESP01, einem Wemos oder einem ESP12.
Beim ESP01 fällt natürlich die USB-Überwachung dann weg und zum "Flashen" muss er vom Modul getrennt werden.
Beim Wemos und beim ESP12 besteht dann auch die Möglichkeit z.B. Deepsleep einzusetzen oder statt der Stereo-Buchse eine 4-polige
Buchse zu verbauen, die z.B. dann statt den One-Wire den I2C-Bus nach außen führt.

Als weitere Option wär noch ein Schaltausgang denkbar, der z.B. bei der Messung von Akkus die keinen BMS haben, dann bei Erreichen der Ladeschlussspannung
den Akku trennt.

Bisher hab ich TASMOTA auf dem ESP. Die Auflösungen liegen hier, für die Spannung bei 10 mV, für den Strom bei 10 mA und für die Leistung bei 0.1 W.
Werde mir also noch mal einen eigenen Sketch basteln, um zu sehen ob da eine höhere Auflösung möglich ist.

Alles was im Schaltplan in grünen umrahmt ist, ist optional. Für den eigentlichen Betrieb ist nur der Umschalter (reicht auch ein 1 x UM) und der ESP erforderlich.
Wird ein ESP12 eingesetzt braucht man noch vier Widerstände mit 10 kOhm um an den GPIO´s 0,1,2 und 15 die Pegel für die ,,Bootbedingungen" herzustellen.

Für mich werde ich noch einen Step-Up-Wandler in die USB Versorgung integrieren, damit ich auch einfache LiPo-Zellen (3.3 – 4.2 Volt) für den Betrieb verwenden kann.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

#131
... ESP12 schnell mal mit nem kleinen Auslese-Sketch beschrieben ... gerade mal 19 Zeilen ... Auflösung ist gleich wie bei TASMOTA.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

... und so könnte ein Akku-Aktivator, ähnlich dem Elektor-Modul vom Threadanfang, mit dem modifizierten PZEM-003 realisiert werden ....

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

#133
... hab mal ein bisschen weiter gemacht. Um die WLAN-Daten, bei mobilem Betrieb, nicht nach ,,außen" tragen zu müssen,
habe ich den Umbau inzwischen um einen NRF24l01 erweitert.
Somit kann man die WLAN-Funktion des ESP12 deaktivieren und die Messdaten über diesen NRF an ein Anzeige-Gateway senden,
welches aus einem AZ-Touch 2.8 Zoll, bestückt mit einem ESP12, einem NRF24l01 und einem BME680 (optional) besteht.

Ich hänge die Beispielsketche für den Transmitter und den Gateway mit an. Für den Transmitter gibt es zwei Sketche. Einmal mit und einmal ohne WiFi. Beim Gateway habe ich den Touch (Sketchanteil stammt von hier: https://www.hwhardsoft.de/deutsch/projekte/arduitouch-esp/)  mal zum Testen so weit integriert, dass mit der
PIN-Eingabe nur der Ausgabebildschirm freigeschaltet wird. Betätigt man den Touch im Ausgabemodus, kommt man wieder zurück zur PIN-Eingabe. PIN ist 1234.

Eine Übertragung der Daten über MQTT ist vorbereitet wird aber noch nicht ausgeführt.

Für das Projekt habe ich mal vorerst zwei Anwendungsfälle im Sinn.

1.   Akku-Kapazitätsmessung
Mittels des Schaltausganges wird über einen FET oder ein Relais dem
Akku ein Entladewiderstand bis zum Erreichen der Ladeschlussspannung zugeschaltet und die entnommene Energie gemessen.

2.   Akku-Vitalitätsmessung (Innenwiderstand)
Mittels des Schaltausganges wird der Akku für ca. 100 us mit einem
sehr niedrigen Lastwiderstand (R ~ 0.05 – 0.1 Ohm) belastet. Während dieser Belastung wird der Strom und die Klemmenspannung gemessen und
darüber der Innenwiderstand und der max. Kurzschlussstrom ermittelt.


Für den AZ-Touch habe ich schon eine Platine erstellt, um die PIN´s der Module entsprechend zuzuweisen. Funktioniert auch tadellos. Eine Platine für den ESP12 und den NRF im PZEM ist zwar entwickelt, aber noch nicht produziert.
Im Moment läuft das noch über ,,Freiluftverdrahtung".

Die Sketche sind natürlich noch nicht fertig. Hier gibt es noch Potential für Erweiterungen, dass über den Touch z.B. die Ladeschlussspannungen oder
ähnliche Vorgaben an den Transmitter übermittelt oder verschiedene Modi geschaltet werden können, da GPIO 01 und GPIO 16 auch noch Aufgaben übernehmen könnten.
Verbaut man so ein modifizierten PZEM-Modul fest im Fahrzeug, wäre auch eine Überwachung des Akkus bzw. das Zuschalten der ,,Reaktivierung" usw. über mobile Geräte möglich.

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary