- WiFi-Aktivierung für A/B-Test (bootCount ungerade = WiFi ON, gerade = WiFi OFF) - Zyklusende nach TOTAL_CYCLES*2 Boots implementiert - SERIAL_DEBUG-Guards für alle Debug-Ausgaben hinzugefügt - Secrets-Schutz: config.h in .gitignore, config_example.h als Template - Funktionsfehler behoben: esp_reset_cause → esp_reset_reason - Dokumentation aktualisiert (README, Info.md, CLAUDE.md) - USB-Anforderungen für Upload und Serial Monitor dokumentiert
76 lines
2.3 KiB
Markdown
76 lines
2.3 KiB
Markdown
# ESP32-C3 Power Measurement mit PowerProfiler Kit II
|
|
|
|
Dieses PlatformIO-Projekt misst die Stromaufnahme eines ESP32-C3 in verschiedenen Betriebszuständen (Deep Sleep, aktiv mit/ohne WLAN).
|
|
|
|
## Setup
|
|
|
|
### 1. Hardware-Verbindungen
|
|
- **PowerProfiler Kit II** → ESP32-C3 GND und VDD (Stromversorgung)
|
|
- **UART (Optional)** → RX/TX für Debug-Output
|
|
|
|
### 2. Konfiguration
|
|
Datei `include/config_example.h` kopieren zu `include/config.h` und anpassen:
|
|
```bash
|
|
cp include/config_example.h include/config.h
|
|
```
|
|
Dann in `include/config.h` bearbeiten:
|
|
- `SLEEP_DURATION_S`: Deep Sleep Dauer (Standard: 30s)
|
|
- `ACTIVE_DURATION_MS`: Zeit wach (Standard: 5s)
|
|
- `WIFI_SSID/WIFI_PASSWORD`: Deine WLAN Credentials eintragen
|
|
- `TOTAL_CYCLES`: Anzahl Messvorgänge
|
|
|
|
**⚠️ Wichtig**: `config.h` ist in `.gitignore` aufgeführt — Credentials werden nicht in git committed.
|
|
|
|
### 3. Kompilieren & Hochladen
|
|
**Voraussetzung**: ESP32-C3 per **Micro-USB** mit Computer verbinden
|
|
|
|
In VSCode mit PlatformIO:
|
|
```
|
|
Ctrl+Shift+P → PlatformIO: Build (USB nicht nötig)
|
|
Ctrl+Shift+P → PlatformIO: Upload (USB erforderlich!)
|
|
```
|
|
|
|
Oder Terminal:
|
|
```bash
|
|
pio run -e esp32-c3-devkitm-1 # Kompilieren
|
|
pio run -e esp32-c3-devkitm-1 -t upload # Hochladen (USB erforderlich!)
|
|
```
|
|
|
|
### 4. Serial Monitor
|
|
**Voraussetzung**: ESP32-C3 bleibt per USB angesteckt
|
|
|
|
```bash
|
|
pio device monitor -b 115200
|
|
```
|
|
|
|
Zeigt Echtzeit-Debug-Ausgabe der laufenden Firmware. Mit `Ctrl+C` beenden.
|
|
|
|
## Messbetrieb
|
|
|
|
Das Programm läuft automatisch in Zyklen:
|
|
- **Boot** → 5s aktiv (LED an)
|
|
- **Deep Sleep** → 30s (minimale Stromaufnahme)
|
|
- Neustart (RTC Timer weckt auf)
|
|
|
|
Jeder Boot gibt Informationen aus:
|
|
```
|
|
Boot #1
|
|
Reset Reason: 5 (DEEPSLEEP_RESET)
|
|
Cycle: 1/20 | WiFi: OFF
|
|
Going to sleep for 30 seconds...
|
|
```
|
|
|
|
## Messaufbau mit PowerProfiler Kit II
|
|
|
|
1. **Stromversorgung**: PowerProfiler liefert Strom + misst gleichzeitig
|
|
2. **Aufzeichnung**: Mit nRF Power Profiler App (Windows/macOS/Linux)
|
|
3. **Zykluswiederholung**: Firmware weckt sich selbst auf, zyklische Messung läuft automatisch
|
|
|
|
## RTC-Memory (Persistierung)
|
|
Die Variable `bootCount` bleibt über Deep Sleep erhalten, so können mehrere Experimente hintereinander laufen.
|
|
|
|
## Erweiterungen
|
|
- WLAN Scan/Connect hinzufügen: `WiFi.begin()` in `setup()`
|
|
- GPIO-Triggers für genaue Timing-Messungen
|
|
- BLE statt WLAN für noch höhere Stromwerte
|