Das ESP Programm
Dieser Abschnitt beschäftigt sich mit dem Programm, welches auf dem ESP läuft.
Grundsätzlich bin ich bei der Architektur so vorgegangen, dass alle Informationen zu der gerade gefahrenen Strecke in mehreren Dateien abgelegt werden. Warum in mehreren Dateien? Nun ich wollte keine Datenbank einsetzen, das wäre mit Kanonen auf Spatzen, aber ich wollte es für den Sketch so einfach wie möglich halten.
Und so werden alle Daten vom GPS Empfänger in eine Datei geschrieben, und alle Daten die beim Start notwendig sind, also aktuelle Zeit, aktueller Kilometerstand aus einer Datei gelesen.
Die Daten, die für die Übertragung auf das Handy notwendig sind, werden in der dritten Datei gespeichert und mittels Bluetooth als Datenstream ans Handy gesendet, wenn eine Verbindung zum Handy besteht.
Darüber hinaus erzeuge ich noch an jedem Tag an dem gefahren wird eine Log Datei, die ist aber nur für die Fehleranalyse notwendig. Nach jetzt gut 4 Wochen Betrieb kam es bisher noch zu keinem Fehler.
Einige Informationen sind im Laufe der Entwicklung auch obsolete geworden, da ich im letzten Jahr noch mit den Radumdrehungen gearbeitet habe, da war ich noch nicht in der Lage den CAN Bus auszulesen.
Fangen wir mit der init.txt Datei an.
der Inhalt:
{"tick":"1","tour":"0.00 km","since":"0:00","max":"0.00","year":"666.01 km","total":"6736.05 km","lastkm":"4.28","duration":"0:16","datelast":"03.04.2021"}
tick; wird nicht mehr zur Berechnung benötigt, wird nur noch im Android Programm zur Identifizierung des Datenstreams genutzt, wird irgendwann mal weg fallen
tour: enthält die Anzahl der Kilometer seit dem Start der aktuellen Tour.
since: seit wann wird die Tour gefahren, und später dann als Info über die TourZeit
max: die Maximale Geschwindigkeit während dieser Tour
year: die Anzahl der Kilometer die in diesem Jahr zurückgelegt wurde
total: die Anzahl der Kilometer die das Rad zurückgelegt hat CANBus ID 0x202
lastkm: die Anzahl der Kilometer der letzten Tour
duration: die Dauer der letzten Tour
datelast: das Datum an dem die Tour gefahren wurde.
Diese Daten werden mit der Funktion Send_BT_Summary ans Handy gesendet wenn das Rad steht und eine Verbindung besteht. Aber auch alle 100m in die Datei auf der SD Karte im Rad geschrieben.
der Inhalt der setup.txt:
{"raumf":"2250","l_date":"20210405","l_start":"1630","l_startkm":"6736.05"}
l_date: ist das Datum an dem die aktuelle tour gestartet wurde. ist das aktuelle Datum größer als dieses, dann beginnt er eine neue Tour und schließt diese ab.
l_start: ist die Uhrzeit an dem die aktuelle tour gestartet wurde
l_startkm: ist der Kilometerstand an dem die aktuelle Tour gestartet wurde.
l-date ist, dann wird an diese Datei noch ein die folgenden Informationen der aktuellen Tour angehängt, beginnend mit der geschlossenen eckigen Klammer. ],"durt":"0:59","dist":"15.00","avsp":"15.00","maxsp":"28.05"}
Diese Datei wird dann wie folgt benannt 2021-04-05_1630_1500_059.txt und im Data Verzeichnis der SD Karte im ESP abgespeichert. Ist das Handy dann in Reichweite und besteht eine BT Verbindung wird es ans Handy übertragen und steht dann der APP unter History zur Verfügung.
a:) der ESP32 einen eingebauten CAN Controller hat,
b:) damit kann das CAN Interface sehr viel kleiner ausfallen.
Viel Spaß beim lesen, wenn jemand Fragen hat, einfach melden.
Ulli
Keine Kommentare:
Kommentar veröffentlichen