ESP32-basiertes Kraftort-Suchger�t mit GPS, LED-Ring und PlatformIO-Firmware.
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Alfred 76285f25b6 Initial Kraftort V1 foundation 1ヶ月前
.pio Initial Kraftort V1 foundation 1ヶ月前
data Initial Kraftort V1 foundation 1ヶ月前
docs Initial Kraftort V1 foundation 1ヶ月前
src Initial Kraftort V1 foundation 1ヶ月前
tests Initial Kraftort V1 foundation 1ヶ月前
CHANGELOG.md Initial Kraftort V1 foundation 1ヶ月前
PLAN.md Initial Kraftort V1 foundation 1ヶ月前
README.md Initial Kraftort V1 foundation 1ヶ月前
platformio.ini Initial Kraftort V1 foundation 1ヶ月前

README.md

Kraftort

V1-Firmware-Grundgeruest fuer ein tragbares ESP32-GPS-Geraet, das Naehe und Richtung zu konfigurierten Kraftorten auf einem 54er-WS2812B-Ring anzeigt.

V1-Status

Implementiert:

  • PlatformIO-Projekt mit Arduino auf ESP32
  • Modulare Firmware-Struktur (gps, geo, button, leds, state_machine, power, ble_maintenance)
  • Nicht-blockierende Main Loop mit State Machine
  • GPS-Datenstruktur und NMEA-Parser-Grundstruktur (RMC, GGA)
  • Geo-Funktionen (Haversine, Bearing, Scoring, LED-Mapping, nearest place)
  • Button-Grundlogik (Debounce, Short/Long-Press)
  • LED-Renderer-Grundstruktur mit Zustandsszenen
  • places.json-Laden via LittleFS
  • LittleFS/places.json loader gibt Fehler jetzt direkt per Serial aus, damit fehlende oder korrupte Konfigurationen sichtbar bleiben.
  • BLE-Maintenance-State loggt das Fenster und reagiert auf einfache Serial-Kommandos (status, stop, help) als pragmatischen Platzhalter.
  • Einfache Unity-Tests fuer Geo und State Machine

Noch Stub in V1:

  • BLE-Maintenance-Details (Service/Characteristics/Upload- und OTA-Pfad) bleiben Stub, die Serial-Kommandos sind nur pragmatische Platzhalter.
  • Erweiterte LED-Themes/Animationen
  • Erweiterte GPS-Qualitaetsheuristiken

Build und Test

Voraussetzung: installiertes platformio CLI.

pio run -e esp32dev

Tests lokal (native):

pio test -e native

Native Unity-Tests decken Geo-Mathematik, State-Transitions und Ausnahmefälle ab (BLE-Timeouts ohne Button, Rückfall auf GpsWait bei Fix-Verlust, DeepSleep aus Long-Press, etc.).

Optional auf Hardware:

pio run -e esp32dev -t upload
pio device monitor -b 115200

Projektstruktur

  • src/main.cpp: Setup, Main Loop, Modulverdrahtung
  • src/config.h: zentrale Konstanten
  • src/state_machine.*: Betriebszustaende und Uebergaenge
  • src/geo.*: Geometrie, Scoring und Zielauswahl
  • src/gps.*: GPS-Datenmodell + NMEA-Parser-Grundlage
  • src/button.*: Button-Events
  • src/leds.*: LED-Rendering-Basis
  • src/ble_maintenance.*: BLE-Wartung (Stub mit stabiler Schnittstelle)
  • src/power.*: Deep-Sleep-Einstieg
  • data/places.json: Beispiel-Kraftorte
  • tests/: Unity-Tests

Hardware-Default-Konfiguration (V1)

  • ESP32 DevKit (esp32dev)
  • GPS UART1: RX GPIO16, TX GPIO17, 9600 baud
  • WS2812B Data: GPIO5
  • Button: GPIO0 (active-low)

Alle Parameter sind zentral in src/config.h gepflegt.