Firmware des Neigungsmessers ins Projekt übernehmen

Die ESPHome-Firmware lag bisher im eigenständigen Projekt VanAllign-Pro.
Da die App der einzige Client ist, gehören Firmware und App zusammen:
ändert sich die Bluetooth-Schnittstelle, muss beides gemeinsam angefasst
werden.

Übernommen sind die Firmware selbst und die beiden Experimente zu
WLAN/BLE-Umschaltung und ESP-NOW, letztere nach experimente/ einsortiert
und als nicht betriebsnotwendig gekennzeichnet. Die WebBLE-Oberfläche
bleibt im Ursprungsprojekt - sie ist durch die App abgelöst und bringt
2 MB Bilder mit, die in einem iOS-Projekt nichts zu suchen haben.

Die .gitignore schliesst jetzt die ESPHome-Build-Verzeichnisse aus; im
Ursprungsprojekt fehlte das, dort liegen inzwischen 233 MB Bauartefakte
neben den Quellen.

Am neuen Ort mit esphome config gegengeprüft.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
BiasF
2026-08-30 15:12:30 +02:00
co-authored by Claude Opus 5
parent 1b9486aad4
commit 9406a749e5
6 changed files with 414 additions and 2 deletions
+79
View File
@@ -0,0 +1,79 @@
# 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, benachrichtigen | Längsneigung, Float32 little-endian, Grad |
| Roll | `…3425` | lesen, benachrichtigen | Querneigung, Float32 little-endian, Grad |
| Offsets | `…3426` | lesen, benachrichtigen | zwei Float32: die gespeicherten Kalibrierwerte |
| Kalibrieren | `…3427` | schreiben | ein Byte: `0` setzt zurück, alles andere kalibriert |
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
* **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.
* **Die Werte werden gesendet, statt abgefragt.** Pitch und Roll haben jetzt
`notify`. Vorher musste der Client im Sekundentakt lesen, was für eine
Wasserwaage zu träge ist.
* **Die gespeicherten Offsets sind auslesbar**, sodass ein Client zeigen kann,
ob überhaupt schon kalibriert wurde.
* **Der ESP-NOW-Rest ist entfernt.** Er schickte bei jedem einzelnen Messwert
ein `"hallo"` an eine fest eingetragene MAC-Adresse.
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)