Die überarbeitete Firmware liess sich prüfen und fehlerfrei übersetzen, blieb auf dem Gerät aber stumm - keine Werte, keine Ausgabe über die serielle Schnittstelle. Der Umbau war zu gross für das, was sich ohne Gerätezugriff absichern lässt: config und compile sagen nichts über das Laufzeitverhalten. Die Firmware setzt jetzt wieder auf dem bewährten Stand 1.0 auf und ändert daran nur zweierlei: die Kalibrierung über Bluetooth funktioniert (die Charakteristik war beschreibbar, hatte aber keine Aktion hinterlegt und tat nichts), und der ESP-NOW-Rest ist entfernt, der bei jedem Messwert ein "hallo" an eine feste MAC schickte. Kein notify, kein aktives Setzen der Werte, kein Zugriff auf den BLE-Server aus dem Boot-Ablauf heraus. In der App fällt damit ein Denkfehler auf: fehlende Kalibrier-Offsets galten als "nicht kalibriert" statt als "unbekannt". Bei Firmware, die sie nicht meldet, stünde dauerhaft eine Warnung, die sich nicht abstellen lässt. Gewarnt wird jetzt nur, wenn das Gerät ausdrücklich Nulloffsets meldet. Der Rücksetz-Knopf hing an derselben Bedingung und wäre sonst unerreichbar gewesen. Das Abfragen im Takt war bereits als Rückfallebene eingebaut und trägt diesen Aufbau ohne Änderung. Ausserdem nimmt die .gitignore jetzt virtuelle Python-Umgebungen aus. Eine solche war versehentlich mitversioniert worden - über 14000 Dateien, die maschinenabhängig sind und im Repo nichts zu suchen haben. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
96 lines
3.6 KiB
Markdown
96 lines
3.6 KiB
Markdown
# VanAlign Pro – Neigungsmessung für den Camper
|
||
|
||
ESP32-S3 mit MPU6050, der Längs- und Querneigung des Fahrzeugs misst und über
|
||
Bluetooth bereitstellt. Zum Ausrichten beim Parken: die Anzeige zeigt, welche
|
||
Seite höher steht und wie weit es noch ist.
|
||
|
||
> Teile dieses Projekts wurden mit KI-Unterstützung erstellt.
|
||
|
||
## Firmware
|
||
|
||
`esp32_ble.yaml` – die einzige Datei, die für den Betrieb gebraucht wird.
|
||
|
||
```bash
|
||
cd firmware/vanalign
|
||
esphome run esp32_ble.yaml
|
||
```
|
||
|
||
### Bluetooth-Schnittstelle
|
||
|
||
Dienst `2a24b789-7aab-4535-af3e-ee76a35cc42d` (wird beworben, das Gerät ist
|
||
darüber auffindbar).
|
||
|
||
| Charakteristik | UUID (Ende) | Zugriff | Inhalt |
|
||
|---|---|---|---|
|
||
| Pitch | `…3424` | lesen | Längsneigung, Float32 little-endian, Grad |
|
||
| Roll | `…3425` | lesen | Querneigung, Float32 little-endian, Grad |
|
||
| Kalibrieren | `…3427` | schreiben | ein Byte: `0` setzt zurück, alles andere kalibriert |
|
||
|
||
Der Client fragt Pitch und Roll im Takt ab; Camper Monitor tut das zweimal je
|
||
Sekunde.
|
||
|
||
Positiver Pitch heißt: das Heck steht höher. Positiver Roll: die rechte Seite
|
||
steht höher.
|
||
|
||
### Kalibrierung
|
||
|
||
Fahrzeug eben stellen, dann ein beliebiges Byte ungleich `0` auf `…3427`
|
||
schreiben – oder in Camper Monitor auf *Auf aktuelle Lage kalibrieren* tippen.
|
||
Die Offsets werden dauerhaft gespeichert und überstehen einen Neustart.
|
||
|
||
## Was sich gegenüber 1.0 geändert hat
|
||
|
||
Bewusst wenig – siehe unten.
|
||
|
||
* **Kalibrierung funktioniert jetzt überhaupt.** Die Charakteristik `…3427` war
|
||
zwar beschreibbar, hatte aber keine Aktion hinterlegt und tat nichts. Der
|
||
Kalibrier-Knopf war nur über den Webserver erreichbar, der auskommentiert
|
||
ist – kalibrieren war damit auf keinem Weg möglich.
|
||
* **Der ESP-NOW-Rest ist entfernt.** Er schickte bei jedem einzelnen Messwert
|
||
ein `"hallo"` an eine fest eingetragene MAC-Adresse.
|
||
|
||
## Was bewusst nicht geändert wurde
|
||
|
||
Eine weitergehende Fassung hatte `notify` auf Pitch und Roll, setzte die Werte
|
||
aktiv bei jeder Messung und stellte die Kalibrier-Offsets zum Auslesen bereit.
|
||
Sie liess sich mit `esphome config` prüfen und fehlerfrei übersetzen – auf dem
|
||
Gerät blieb sie danach jedoch stumm, ohne jede Ausgabe über die serielle
|
||
Schnittstelle.
|
||
|
||
Woran genau es lag, ist offen. Verdächtig sind das Setzen der Werte aus dem
|
||
`on_boot`-Ablauf heraus, bevor der BLE-Server bereit ist, sowie zwei
|
||
Benachrichtigungen zehnmal je Sekunde. Weil sich das nur am Gerät klären lässt,
|
||
bleibt es beim bewährten Aufbau: Pitch und Roll sind reine Lesewerte mit
|
||
hinterlegtem Ausdruck, der Client fragt ab.
|
||
|
||
Die verworfene Fassung ist in der Projektgeschichte unter *Neigungsmesser
|
||
VanAlign einbinden* nachlesbar, falls jemand daran weiterarbeiten will.
|
||
|
||
Die UUIDs sind unverändert, die vorhandene WebApp läuft weiter.
|
||
|
||
## Clients
|
||
|
||
* **Camper Monitor** (iOS) – die App in diesem Projekt. Geräteart
|
||
*Nivellierung*: grafische Libelle, Kalibrierung aus der App, zusammen mit
|
||
den übrigen Geräten im Fahrzeug.
|
||
* Die ursprüngliche WebBLE-Oberfläche liegt weiterhin im Projekt
|
||
`VanAllign-Pro` unter `WebAPP/`.
|
||
|
||
## Weitere Dateien
|
||
|
||
Unter `experimente/` liegen `esp32_switch.yaml` (Umschalten zwischen WLAN und
|
||
BLE) und `esp32_EspNow-rec.yaml` (ESP-NOW-Empfänger). Beide gehören nicht zum
|
||
Neigungsmesser und werden für den Betrieb nicht gebraucht – sie sind nur
|
||
aufgehoben, weil sie Ideen aus der Entstehungszeit festhalten.
|
||
|
||
## Herkunft
|
||
|
||
Übernommen aus dem eigenständigen Projekt `VanAllign-Pro`. Dort liegen
|
||
weiterhin die WebBLE-Oberfläche (`WebAPP/`, durch die iOS-App abgelöst) und
|
||
unter `bin/` die gebauten Binärdateien der Version 1.0.
|
||
|
||
## Voraussetzungen
|
||
|
||
* ESP32-S3, MPU6050 an I²C (SDA GPIO8, SCL GPIO9)
|
||
* ESPHome (geprüft mit 2026.6.5)
|