Files
Winden-Telemetry/README.md
T
FCS 0d2ff764ea
build_release.yaml / Build (push) Successful in 6m19s
build_release.yaml / Release (push) Successful in 19s
Dokumentation um Webinterface, Einstellungen und OTA-Update erweitert
2026-08-28 18:07:57 +02:00

131 lines
4.4 KiB
Markdown

[![build status](https://gitea.rabe11.de/FCS/Winden-Telemetry/actions/workflows/build_release.yaml/badge.svg?event=push)](https://gitea.rabe11.de/FCS/Winden-Telemetry/releases)
![Gitea Release](https://img.shields.io/gitea/v/release/FCS/Winden-Telemetry?gitea_url=https%3A%2F%2Fgitea.rabe11.de)
# Winden-Telemetry
Der eigene Projektcode steht unter der MIT-Lizenz. Die verwendeten
Drittanbieterbibliotheken bleiben unter ihren jeweiligen Original-Lizenzen.
Eine Übersicht der Komponenten, Versionen und Lizenzbedingungen steht in
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md); der vollständige Lizenztext
für den Projektcode steht in [LICENSE](LICENSE).
Übertragung der IAS des Segelflugzeuges an die Winde
### Hardware:
- [Heltec LoRa 32 (V3)](https://heltec.org/project/wifi-lora-32-v3/)
- SG90 Servo
- MS4525 differenz Drucksensor
- 12 LED Ring WS2812b 50mm
- BMP180 Temperatur und Luftdrucksensor
- DC-DC Step Down Wandler 3A MP1584
- Relais
### Features:
- [x] LORA zum Übertragen
- [x] Airspeed via differenz Drucksensor
- [x] Webinterface über eigenen Access Point
- [x] min/max speed per Webinterface einstellbar
- [x] Kennzeichen per Webinterface einstellbar
- [x] maximale Übertragungszeit per Webinterface einstellbar (Standard: 90 Sekunden)
- [x] Firmware-Upload per Webinterface für beide Firmwarevarianten
- [x] Analoge Anzeige in der Winde
- [x] Farbige LEDs für Limits
- [x] Übertragungszeit Begrenzen
- [ ] Übertragung Rundumleuchten Signal an Start
- [x] Luftdrucksensor für Höhe und Vario
### Webinterface und Firmware-Update
Beide Firmwarevarianten starten einen eigenen WLAN-Access-Point. Der
voreingestellte WLAN-Name ist bei Sailplane `Sailplane-D1234` und bei der
Winde `Winde-Telemetry`.
- Passwort: `telemetry`
- Webadresse: `http://192.168.4.1/`
Im Webinterface können WLAN-Name und WLAN-Passwort sowie Callsign, minimale und maximale Geschwindigkeit
gespeichert werden. Die Werte bleiben nach einem Neustart erhalten. Die
Sailplane-Firmware lädt sie beim Start und verwendet sie für die Telemetrie,
die Schlepp-Erkennung und die maximale Übertragungszeit. Die Winden-Firmware verwendet die gespeicherten
Grenzen für die Anzeige beim Start; empfangene Telemetriegrenzen werden danach
weiterhin aus dem LoRa-Paket übernommen.
Für ein Firmware-Update die zur jeweiligen Hardware passende `.bin`-Datei aus
`.pio/build/<environment>/` auswählen. Nach erfolgreichem Upload startet das
Gerät automatisch neu.
## Aufbau
Pin Layout Heltec WiFi LoRa (v3)
![Heltec WiFi LoRa (v3)](https://heltec.org/wp-content/uploads/2023/09/pin.png)
### Anschlusszuordnung
| Heltec WiFi LoRa (v3) Pin | MP1584 |SG90 Pin | BMP180 Pin | MS4525 Pin | LED Ring Pin |
| --- | --- | --- | --- | --- | --- |
| GND | OUT -| GND | GND | GND | GND |
| 3.3 V| | | VCC | VCC | VCC |
| GPIO 6| | | | | IN |
| GPIO 7| | 1 PWM (Orange)| | |
| GPIO19| | | SDA| SDA |
| GPIO20| | | SCL| SCL|
| 5V | OUT + | VCC | | |
## PCB
Die Platine ist so gestaltet das sie individuell bestückt werden kann, je nach Verwendung
![Platine bestückt](img/Winden_Telemetry_PCB.png)
![Platinen Vorderseite](img/Winden_Telemetry_PCB_front.png)![Platinen Rückseite](img/Winden_Telemetry_PCB_back.png)
[Schaltplan](img/Winden_Telemetry_Schematic.pdf)
| Bauteil | Modul Segelflugzeug | Modul Winde | Modul SKP |
| --- |--- |--- |--- |
| J1 | x | x | x | optional|
| A1 | x | x | x | optional|
| I2C_1 | MS4525 | optional| optional|
| I2C_2 | BMP180 | optional| optional|
| I2C_3 | optional| optional| optional|
| I2C_4 | optional| optional| optional|
| GPIO3 | optional| optional| optional|
| GPIO4 | optional| optional| optional|
| GPIO5 | optional| Eingang Warnleuchte |optional|
| GPIO6 | optional| LED Ring | optional|
| GPIO7 | optional| Servo | für Relais|
## Programmablauf Segelflugzeug
```mermaid
flowchart TD
A(["Start"])
A --> B{"ist Senden an?"}
B --> | Ja | C{"Sende Timer <90 sec"}
I --> | Nein | E{"is airborn?"}
C --> | Nein | F["Sende Schleppen komplett"] -->G["is airborn=true"] -->L["Lowspeedtimer = 0"]
C --> | Ja | D["Sende Speed"]
D --> Z["Warte 1 Sekunde"]
L ----> H["Senden aus"] -->Z
Z --> B
B --> | nein | I{"Speed < 30 km/h"}
E --> | nein |J["Senden an"] -->P["Start Sendetimer"] --> D
I --> | ja| K["Lowspeedtimer + 1"]
K --> M{"lowspeedtimer >90"}
M --> | ja | N["is airborn=false"] --> Z
M --> | nein | Z
E --> | ja |O["Lowspeedtimer = 0"] --> Z
```