Ladegerät mit App und CAN-Bus für Emco Novi
Verfasst: Mi 19. Sep 2018, 18:36
Für meine Freundin habe ich einen Emco Novi aus der Flotte von Emmy in Berlin für wenig Geld bekommen können. Da von den teuersten Teilen (=Akkus) gleich zwei enthalten sind, ich mir zur Not auch das Erneuern der Zellen zutraue und allgemein günstig an Ersatzteile komme, bin ich das Wagnis einfach mal eingegangen. Der Roller ist wie erwartet schon ordentlich herunter gewirtschaftet und weist sichtbare Spuren von Stürzen etc. auf, aber der Rahmen scheint gerade und alle wichtigen und sicherheitsrelevanten Teile funktionieren einwandfrei.
Da Emmy leider kein Ladegerät mitgeliefert hat und ich kein teures originales Ladegerät kaufen wollte, habe ich nach Alternativen gesucht. Ich hatte zufällig noch ein Eltek Flatpack herumliegen, welches mit einer maximalen Spannung von 57,6 V eigentlich perfekt für die Akkus ist. Allerdings musste eine Stromregelung her, denn der maximale Strom von 41,7 A ist eindeutig zu hoch.
Das Flatpack verfügt über CAN-Bus, aber leider kann man darüber keinen Strom vorgeben sondern nur eine Spannung. Dies wird über einen zusätzlicher PID-Regler gelöst, der die Spannung so regelt dass sich der gewünschte Strom einstellt.
Verwendet habe ich einen ESP32 Microcontroller mit einem TJA1051 CAN Transmitter. Darauf läuft neben einem PID Regler auch das Blynk-Framework, welches die einfache Gestaltung und Interaktion mit einer App via Bluetooth ermöglicht. Mit der App kann ich den Ladestrom und die Ladeschlussspannung (CV) einstellen sowie das Ladegerät ein- und ausschalten. Zusätzlich bekomme ich Informationen zur Temperatur des Ladegerätes und zur Netzspannung.
Via CAN übermittelt das Flatpack den aktuellen Ladestrom an den Controller. Der PID vergleicht den mit seinem Sollwert und errechnet eine Abweichung, die in eine entsprechende Spannung umgerechnet wird. Die vom PID berechnete Spannung wird anschließend via CAN-Bus an das Ladegerät gesendet, welches die Ausgangsspannung unmittelbar anpasst. Dies wiederholt sich solange bis der Ladestrom den gewünschten Wert erreicht.
Die Blynk-App funktioniert grundsätzlich gut, allerdings ist die Verbindung zeitweise sehr instabil. Manchmal hält die Verbindung zwei Minuten ohne Probleme, manchmal reißt sie nach zwei Sekunden wieder ab. Ich bin mir noch nicht sicher ob das an der Hardware, der Software oder einer Mischung aus allem liegt. Offiziell ist die Bluetooth-Funktionalität von Blynk noch im Beta-Status.
Den Code inkl. Stückliste habe ich auf Github veröffentlicht, er ist allerdings stellenweise etwas unsauber und nicht perfekt kommentiert. Grundsätzlich funktioniert das mit jedem CAN fähigen Ladegerät, es muss kein Eltek Flatpack sein. Allerdings benötigt ihr das entsprechende CAN-Protokoll – das ist nicht immer einfach so zu bekommen. Die App könnt ihr einfach per Drag&Drop basteln, Blynk hat auch ein paar sehr gute Tutorials.
Optisch könnte man das ganze sicherlich noch schöner machen, aber in diesem Fall war es einfach ein Bastelprojekt bei dem Funktionalität wichtiger war als die Optik. Den Inhalt der Abzweigdose zeige ich euch besser gar nicht erst, es musste schnell gehen
Fragen beantworte ich gern hier im Thread.
Gruß Lennart
Da Emmy leider kein Ladegerät mitgeliefert hat und ich kein teures originales Ladegerät kaufen wollte, habe ich nach Alternativen gesucht. Ich hatte zufällig noch ein Eltek Flatpack herumliegen, welches mit einer maximalen Spannung von 57,6 V eigentlich perfekt für die Akkus ist. Allerdings musste eine Stromregelung her, denn der maximale Strom von 41,7 A ist eindeutig zu hoch.
Das Flatpack verfügt über CAN-Bus, aber leider kann man darüber keinen Strom vorgeben sondern nur eine Spannung. Dies wird über einen zusätzlicher PID-Regler gelöst, der die Spannung so regelt dass sich der gewünschte Strom einstellt.
Verwendet habe ich einen ESP32 Microcontroller mit einem TJA1051 CAN Transmitter. Darauf läuft neben einem PID Regler auch das Blynk-Framework, welches die einfache Gestaltung und Interaktion mit einer App via Bluetooth ermöglicht. Mit der App kann ich den Ladestrom und die Ladeschlussspannung (CV) einstellen sowie das Ladegerät ein- und ausschalten. Zusätzlich bekomme ich Informationen zur Temperatur des Ladegerätes und zur Netzspannung.
Via CAN übermittelt das Flatpack den aktuellen Ladestrom an den Controller. Der PID vergleicht den mit seinem Sollwert und errechnet eine Abweichung, die in eine entsprechende Spannung umgerechnet wird. Die vom PID berechnete Spannung wird anschließend via CAN-Bus an das Ladegerät gesendet, welches die Ausgangsspannung unmittelbar anpasst. Dies wiederholt sich solange bis der Ladestrom den gewünschten Wert erreicht.
Die Blynk-App funktioniert grundsätzlich gut, allerdings ist die Verbindung zeitweise sehr instabil. Manchmal hält die Verbindung zwei Minuten ohne Probleme, manchmal reißt sie nach zwei Sekunden wieder ab. Ich bin mir noch nicht sicher ob das an der Hardware, der Software oder einer Mischung aus allem liegt. Offiziell ist die Bluetooth-Funktionalität von Blynk noch im Beta-Status.
Den Code inkl. Stückliste habe ich auf Github veröffentlicht, er ist allerdings stellenweise etwas unsauber und nicht perfekt kommentiert. Grundsätzlich funktioniert das mit jedem CAN fähigen Ladegerät, es muss kein Eltek Flatpack sein. Allerdings benötigt ihr das entsprechende CAN-Protokoll – das ist nicht immer einfach so zu bekommen. Die App könnt ihr einfach per Drag&Drop basteln, Blynk hat auch ein paar sehr gute Tutorials.
Optisch könnte man das ganze sicherlich noch schöner machen, aber in diesem Fall war es einfach ein Bastelprojekt bei dem Funktionalität wichtiger war als die Optik. Den Inhalt der Abzweigdose zeige ich euch besser gar nicht erst, es musste schnell gehen
Fragen beantworte ich gern hier im Thread.
Gruß Lennart