Erste Schritte mit der Baba App

Nachdem ihr alles zusammengebaut habt müsst ihr natürlich wissen, wie ihr euch mit dem ESP32 und folglich mit dem Bafang Motor verbindet.

Startet den ESP32. Wenn ihr den Buzzer (Piepser) angelötet habt, hört ihr ein Piepssignal nachdem der ESP gestartet ist. Hört ihr nichts, läuft euer ESP32 nicht richtig. Schaut mal nach auf der seriellen Schnittstelle (z. B. mit Putty) was der ESP32 so an Meldungen auswirft.

Verbindet euer Handy mit dem WLAN des ESP32. Der Name des WLANs ist BAFANG gefolgt von den 3 letzten Stellen der MAC-Adresse des ESP32. Also z. B. BAFANG-CC-8C-F8. Das Passwort lautet baba.bafang.<letzte Stelle des Namens>. Beachtet aber die Großschreibung!
Passwort des WLANs, abhängig vom Namen!

Kurze Erklärung warum ich das gemacht habe: Falls ihr mehrere BabaController zusammen betreibt, würdet ihr euch vielleicht in das falsche WLAN einbuchen und z. B. das Fahrrad eures Kumpels bedienen. Bisher hat bei mir die Unterscheidung an der letzten Stelle der MAC genügt. Sollte das bei euch nicht mehr genügen meldet euch. Ich kann das auch gerne so umbauen, dass ein eigenes Passwort vergeben werden kann. Derzeit halte ich das aber für unnötig.

Nachdem ihr euch verbunden habt, kommt eine Meldung, dass ihr über dieses WLAN keine Internetverbindung habt. Klickt dann auf "WLAN-Verbindung halten".

Erst jetzt die Baba App starten. Falls ihr diese zuvor schon gestartet hattet, beendet diese und startet sie neu. Ihr solltet wieder ein Piepsen vom ESP32 hören (sofern Buzzer angeschlossen).

Sollte das der erste Start der App sein, müsst ihr erst mal meinen Haftungsausschluss lesen. Ihr seit komplett selbst dafür verantwortlich was ihr mit meinem Projekt macht. Ich übernehme für keinerlei Schäden oder Forderungen die Haftung ...

Danach geht zuerst mal in die Einstellungen, bevor ihr was anderes macht. Ihr solltet, sofern der ESP32 eine Verbindung zum Bafang Motorcontroller hat, eine kurze Info zum Motor sehen. Solltet ihr z. B. bei Model: null sehen, wurde die Verbindung zum Motor nicht hergestellt. Die Bedienung der App ist dann auch sehr zäh und hängt (weil sie immer wieder auf Timeouts wartet).



Es ist normal, wenn ihr aus einem Unterpunkt zurück auf diese Hauptseite für die Einstellungen geht, dass dann der Kopf mit den Motordaten nicht wieder angezeigt wird.

Die Einstellungen in der Basiskonfiguration sind soweit selbsterklärend. Der Kilometerstand wird nicht auf dem ESP gespeichert, sondern auf eurem Handy. Dazu wird die ID des ESPs mit abgespeichert. Habt ihr also mehrere BabaController, zeigt euer Handy für jeden einen eigenen Kilometerstand an. Das gilt auch für die Betriebszeiten.

Stats Interval legt fest wie oft die Statistiken in die CSV bzw. GPX bzw. Datenbank geschrieben werden. Je häufiger, desto mehr Daten werden natürlich erzeugt. Die CSV- und GPX-Datei wird, sofern vorhanden, auf der externen SD-Karte gespeichert (Pfad: /Android/data/com.example.baba/files/BABA_statistics).

Die CSV-Statistik könnt ihr euch z. B. in Excel reinziehen und wilde Dinge damit tun 😁

Das GPX File könnt ihr z. B. in das Tool MyTourBook importieren oder auch in Komoot. Das File enthält neben der normalen GPS Spur auch Waypoints. Die Baba App setzt automatisch jeden Kilometer eine Markierung, sowie alle 15 Minuten. Zusätzlich wird eine Markierung bei der Höchstgeschwindigkeit, bei der Höchsttemperratur, der niedrigster Temperatur und des höchsten Puls gesetzt.

Die Daten zum Gewicht, Geburtstag und Geschlecht werden für die Kalorienberechnung benutzt. Ich habe mir hier für eine von gefühlt 1000 Formeln zur Berechnung der Kalorien entschieden. Wenn ihr der Meinung seit, dass diese komplett daneben ist, schreibt einen Kommentar - am besten mit der von euch empfohlenen Formel. Vielleicht baue ich dann die App um, dass man sich für eine von mehreren Formeln entscheiden kann. Das Trainingsziel wird in der Anzeige 4 (durchlaufende Anzeige auf dem Hauptbildschirm) bei kCal angezeigt und geht vom vorgegebenen Ziel auf 0 zurück.

Die BT-Fernbedienung ist optional. Falls ihr eine habt und diese mit dem Handy verbunden ist, können die Tasten vor und zurück für die Assistlevel Up/Down benutzt werden. Optional könnt ihr auch die Tasten +/- nehmen. Ich empfehle euch allerdings für die Assistlevel keine BT-Fernbedienung. Diese legt sich zwischendurch immer wieder schlafen und braucht eine gefühlte Ewigkeit zum Aufwachen. Wenn sie "Wach" ist, funktioniert sie gut. Meine Empfehlung ist aber, dass ihr dafür den Garagendrücker benutzt.

Über die Play/Stopp Taste der BT-Fernbedienung könnt ihr, sofern aktiviert, die Spracheingabe benutzen. Dazu solltet ihr natürlich die Deutsche Sprache offline verfügbar gemacht haben (Systemeinstellungen von Android).

Welche Sprachbefehle zur Verfügung stehen könnt ihr hier nachlesen. Wenn ihr mehr möchtet, hinterlasst einen Kommentar.

Der letzte Punkt mit der Wartung ist noch nicht fertig. Geplant ist hier, dass ein gelber Werkzeugschlüssel erscheint, wenn ein Wartungsjob ansteht (z. B. Bremsbeläge erneuern). Wenn ihr 0 auswählt, ist die Funktion deaktiviert.

Als nächstes geht zurück und auf den Punkt "Automatische Assistlevel". Dort könnt ihr, sofern ihr einen Pulsgurt und einen Kadenzsensor mit dem ESP32 verbunden habt, den ESP32 die Unterstützungsstufen automatisch schalten lassen. Natürlich gibt es Grenzen für die Automatik, richtig eingestellt funktioniert diese aber sehr gut.


Mit Zielpuls wird festgelegt ab welchem Puls das Level hochgeschaltet wird. Dabei berechnet der ESP auch wie schnell sich der Puls ändert. Steigt dieser sehr langsam, wird das hochschalten verzögert. Grundsätzlich wird zusätzlich die zwei Zeilen weiter unten angegebene Wartezeit gewartet bis das Level angepasst wird. Fällt der Puls wieder unter Zielpuls, wird das Level verringert. Auch hier wird berücksichtigt wie schnell der Puls fällt. Wie schnell der Puls steigt und fällt ist natürlich auch von eurem Fitnesslevel abhängig.

Level Down bis auf 0: fällt der Puls unter dieses Level wird gemäß Wartezeit das Unterstützungslevel nach und nach bis auf 0 heruntergeschaltet.

Oberste Kadenz: wenn die angegebene Kadenz überschritten wird, wird das Unterstützungslevel heruntergeschaltet. Umgekehrt wird natürlich nur Hochgeschaltet solange die Kadenz unterhalb der angegebenen Kadenz ist.

Wartezeit bis die Automatik wieder aktiviert wird: legt fest, wie viele Sekunden gewartet wird bis die Automatik wieder aktiviert werden soll, nachdem ihr die Unterstützungslevel z. B. über die Fernbedienung manuell geändert habt. Solange ihr eure perfekten Einstellungen noch nicht gefunden habt, empfehle ich diesen Wert auf ca. 10 Sekunden zu setzen. Sobald ihr aber für euch gute Einstellungen gefunden habt, solltet ihr den Wert hoch setzen z. B. auf 60 oder 120 Sekunden. Beispiel: ihr steht vor einem steilen Anstieg und wisst bevor ihr losfahrt, dass ihr z. B. mindestens Level 6 benötigen werden um dort hoch zu kommen. Also stellt ihr vorher Level 6 ein. Es wäre ziemlich uncool, wenn die Automatik dann mitten im Berg das Level ändert weil euer Puls noch nicht hoch genug ist.


Danach geht zurück und geht in die Batterie-Einstellungen.

Alternative Batterie-% Berechnung nutzen legt fest, dass nicht die Batterieanzeige vom Bafang Motor angezeigt wird, sondern meine. Das Problem bei der Originalanzeige ist, dass diese sehr lange auf 100% steht und dann schnell abbaut. Hintergrund ist, dass die Batterie bis ca. 52 Volt als 100% voll angezeigt wird. Ein vollgeladener Akku hat aber mehr als 54 Volt (bei der 48 Volt Version). Deshalb mache ihr hier einen einfachen Dreisatz und berechne ständig anhand der maximalen Spannung und der Mindest-Volt Motorabschaltung wie voll die Batterie noch ist.

Anmerkung zur Mindest-Volt Motorabschaltung: der Parameter hier ist nur für die Batterieberechnung. Die Motoreinstellungen wird an andere Stelle vorgenommen. Allerdings habe ich bei meinen Tests festgestellt, dass meine Motoren (48 Volt) bereits bei 43,4 Volt abschalten, egal welche Einstellung ich im Motor vorgenommen habe.

Die Rest-KM werden entweder anhand der verbrauchten Wattstunden (WH) oder anhand der Volt berechnet (Default). Wichtiger Hinweis: bei beiden Einstellungen werden zu Beginn einer Tour 0 Rest-KM angezeigt. Erst mit der Laufzeit steigt die Rest-KM Anzeige. Das liegt daran, dass ich einfach berechne wie weit ihr bisher gefahren seit und wie viel Strom ihr dabei verbraucht habt. Dann berechne ich was an Strom übrig ist und berechne die Restkilometer über einen einfachen Dreisatz. Falls ihr dazu einen bessern Vorschlag habt, schreibt es in die Kommentare! Wenn es umsetzbar ist, ändere ich das gerne.

Die Option Verbrauch Wh multiplizieren mit Faktor ist notwendig, weil die ermittelten Wh (Wattstunden) relativ ungenau sind. Vom Motor wird der App mitgeteilt wie die aktuelle abgerufene Leistung ist. Der Motor meldet an die App alle 250-500 Millisekunden. Dazwischen liegen also viele Millisekunden wo auch Strom verbraucht wird - mehr oder weniger. D. h. diese Werte bekomme ich nicht mit und kann sie daher auch nicht berechnen. Ich rechne daher alle gemeldeten Werte zusammen und rechne sie in Wattstunden (Wh) um. Wenn ihr feststellt, dass der Wert am Ende einer Tour nicht stimmt, könnt ihr an dieser Stelle diesen Faktor hier erhöhen oder verringern. Wird z. B. am Ende angezeigt ihr hätten 500 Wh verbraucht, was bei 48V ca. 10,4Ah (Amperestunden) entspricht  und euer Ladegerät lädt euren Akku mit 2A könnt ihr das gut abschätzen. Lädt der Akku dann 6 Stunden entspricht das ca. 12 Ah. Das würde bedeuten, der von meiner App berechnete Wert war um ca. 1,6Ah zu niedrig. Also müsste der Faktor erhöht werden. Tastet euch hier langsam an einen guten Wert heran. Aber Vorsicht! Ihr solltet an diesem Wert nicht zu oft drehen. Der Wert steht am Ende in der Statistikdatenbank (und in der CSV-Datei). Wenn ihr also ständig an dem Wert herumdreht stimmt eure Langzeitstatistik nicht mehr. Bei mir funktioniert der Wert von 1.5 sehr gut.

Danach geht wieder zurück und auf den Punkt Sensoren.

Hier wählt ihr aus, welche Sensoren eures Handys benutzt werden sollen. Ich werde später vielleicht weitere Sensoren hinzufügen.

GPS benutzen solltet ihr unbedingt einschalten. Manche Handys nutzen intern einen Höhenangabe nach WGS84. Ihr bemerkt das daran, dass die angezeigte GPS-Höhe viel zu hoch (ca. 40-50 Meter oder mehr) ist. Schaltet dann WGS84 ein, sonst lasst das ausgeschaltet. Falls ihr trotzdem noch eine falsche Höhe angezeigt bekommt, liegt das an mir. Ich habe hier eine sehr einfache Implementierung für die Umrechnung von WGS84 in normale GPS Höhe benutzt. Meldet euch bei mir falls es damit Probleme gibt.

Der BME280 Sensor muss, damit er richtige Werte anzeigt, initialisiert werden. Der Luftdruck ist immer abhängig von der Höhe und der Temperatur. Damit also zum Start die richtige Höhe zum Luftdruck zugeordnet wird, initialisiere ich den BMP280 mit der GPS Höhe. Das heißt, ihr müsst unbedingt vor dem Start der App ein vernünftiges GPS Signal haben. Habt ihr das nicht, könnt ihr die Höhe auch manuell vorgeben, davon rate ich aber ab.

Die Werte Luftdrucksensor und Luftfeuchtigkeit habe ich nicht weiter testen können, weil ich kein Handy habe was über solche Sensoren verfügt. Falls ihr eins habt, meldet euch mal ob das gut funktioniert. Die Werte dazu stehen dann auch in der CSV-Datei und in der Datenbank.

Danach geht wieder zurück und geht auf die Einstellungen zum Notruf.
Für das Senden einer SMS entstehen euch, je nach Handyvertrag, zusätzliche Kosten. Wenn ihr den Schalter aktiviert, werden automatisch Notruf-SMS an die Telefonnummern gesendet, die ihr unten eingetragen habt. Trennt mehrere Nummern durch Komma (,). Auf manchen Handys müsst ihr suchen wo das Komma bei der Nummerneingabe zu finden ist. Die App hat keinen Zugriff auf das Telefonbuch. Ihr könnt aber eine Nummer über die Zwischenablage einfügen. Bitte setzt immer +49 vor die Nummer und lasst die 0 weg - z. B. bei der normalen Nummer 01511234567890 müsst ihr dort +491511234567890 eintragen.

Notruf nach x Sekunden legt fest, wann, nach eintreten der Prüfkriterien, ein Notruf gesendet wird. In der Notruf-SMS ist die GPS-Position (als Google Maps Link) und der Puls enthalten.

Falls ihr öfters alleine, vielleicht sogar im Dunkeln, unterwegs seit, empfehle ich euch dringend diese Option zu nutzen. Eine SMS wird auch gesendet, wenn kein Internet verfügbar ist. Es muss aber Mobilfunkempfang vorhanden sein. Ihr solltet eurer Handy dabei immer in maximaler Lautstärke mitführen - warum kommt jetzt.

Die Bedingungen, die geprüft werden sind: Geschwindigkeit, GPS-Positionsänderung (mit Toleranz) sowie die Beschleunigungssensoren. Verändert sich keiner der Werte in der angegebenen Zeit, ertönt ein Alarmsignal. Ihr habt dann ca. 10 Sekunden Zeit den Alarm durch tippen auf einer der blinkenden Buttons abzubrechen. Tut ihr das nicht, geht die SMS raus. Das Alarmhorn hört immer wieder zwischendurch auf und ertönt wieder. Das habe ich dazu gemacht, damit ihr, falls ihr irgendwo im Wald liegt, hören könnt ob jemand nach euch ruft und ggf. Antworten könnt.


Geht wieder zurück und dann auf die Displayeinstellungen.

Hier könnt ihr einstellen, was in den einzelnen Kreisanzeigen angezeigt wird. Doppelauswahl ist nicht möglich.

Grundsätzlich könnt ihr auch den Touchscreen für die Assistlevel und die Schiebehilfe sowie für das setzen von Markierungen nutzen. Allerdings finde ich das unpraktisch und nutze dies nur zur Not. Assistlevel Up ist Touch auf Anzeige 1 (oben Links), Assistlevel Down ist Anzeige 3 (unten Links). Schiebehilfe ist Anzeige 2 (oben Rechts) und eine Markierung wird über Anzeige 4 (unten Rechts) gesetzt.

Die 4. Anzeige (unten Rechts) rotiert automatisch durch mit Höhenmeter über BMP280, Luftfeuchtigkeit, Temperatur DS18b20 und Kilokalorien. Mit der Rotationsgeschwindigkeit stellt ihr ein wie schnell sich diese Anzeige ändert.


Falls ihr einen Kadenzsensor nutzen möchtet, geht zurück und danach auf Kadenzsensor. 


Der Kadenzsensor wird nicht mit dem Handy gekoppelt, sondern mit dem ESP32. Klickt auf suchen, stellt sicher, dass der Kadenzsensor auch aktiv ist. Ggf. müsst ihr mal kurz die Kurbel drehen. Nach ein paar Sekunden sollte die Adresse des Sensors angezeigt werden. Wenn ihr länger wartet, kann es auch sein, dass er mehrfach angezeigt wird. Klickt dann einmal auf den Sensor, es sollte ein Kurze Meldung zu sehen sein und geht zurück. Das war schon alles. Zukünftig sucht der ESP vollautomatisch nach diesem Sensor. Ein erneutes Koppeln ist nicht notwendig.


Falls ihr einen Pulsgurt nutzt, klickt auf Pulsgurtsensor und sucht nach eurem Pulsgurt. Der Pulsgurt wird nicht mit dem Handy gekoppelt, sondern mit dem ESP32. Die Kopplung ist nur einmal notwendig und wird im ESP32 gespeichert. Der ESP sucht zukünftig immer vollautomatisch nach diesem Pulsgurt.

Hinweis: aktuell überprüfe ich nicht die Batteriezustände im Kadenzsensor oder im Pulsgurt. Diese könnt ihr z. B. mit der App nRF Connect auch überprüfen. Ansonsten bemerkt ihr eine leere Batterie daran, dass z. B. in der Statistik immer mal wieder der Puls weg ist oder keine Kadenz angezeigt wird. Dann ist die Batterie meist unter 2%.

Die Wartungserinnerungen sind noch nicht fertig. Sobald das fertig ist, schreibe ich was dazu.

Debug braucht ihr eigentlich nicht.

Über diese App - müsst ihr beim ersten Mal bestätigen.

Falls ihr jetzt noch die Einstellungen zu der Anzahl der Assist Level vermisst - diese gibt es nicht. Mit meiner App werden 9 Assist Level unterstützt. Wenn ihr nur 3 oder 5 oder XX nutzen wollt, könnt ihr ja mit meiner App einfach nur die Level programmieren, die ihr nutzt, alle höheren Level setzt ihr einfach auf 100%, fertig.

Das waren die Grundeinstellungen. Bei Fragen hinterlasst gerne einen Kommentar oder geht über das Pedelecforum.

Weiter geht es mit dem Hauptbildschirm der App - schaut dazu hier nach. Dort findet ihr was alles auf dem Bildschirm zu sehen ist und was dort noch so angeklickt werden kann.

Kommentare

Beliebte Posts aus diesem Blog