ESP32-basiertes Kraftort-Suchger�t mit GPS, LED-Ring und PlatformIO-Firmware.
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
Alfred 4a3bbca18b Document project status and next steps 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 个月前
.gitignore Ignore PlatformIO build artifacts 1 个月前
CHANGELOG.md Initial Kraftort V1 foundation 1 个月前
PLAN.md Initial Kraftort V1 foundation 1 个月前
README.md Document project status and next steps 1 个月前
STATUS.md Document project status and next steps 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.

Status-Überblick

Details zu erledigten, laufenden und geplanten Aufgaben stehen in STATUS.md.

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.