Based on Pflichtenheft v2.2, documents the full system design including daemon, API, frontend, and infrastructure with agreed deviations (Axum 0.8, SQLx 0.8, Vite 6, Tailwind 4). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4.9 KiB
Konfiguration der Füllstandsmessung
Übersicht
Der HC-SR04 Sensor wird oberhalb des Tanks montiert und misst die Distanz zur Flüssigkeitsoberfläche.
Konfigurationsvariablen
In src/main.cpp (Zeile 14-16):
#define TANK_HEIGHT 180.0 // Tank-Höhe in cm (innen)
#define SENSOR_MOUNT_OFFSET 20.0 // Montageabstand: Sensor über Tank-Oberkante in cm
#define SENSOR_MIN_DISTANCE 2.0 // HC-SR04 Mindestabstand (technische Grenze)
Parameter-Erklärung
1. TANK_HEIGHT (Tank-Höhe)
Die innere Höhe des Tanks von Boden bis Oberkante.
- Beispiel: Tank ist 180 cm hoch →
#define TANK_HEIGHT 180.0 - Wichtig: Nur die innere Höhe, ohne Montageabstand!
2. SENSOR_MOUNT_OFFSET (Montageabstand)
Der Abstand vom Sensor bis zur Tank-Oberkante.
- Beispiel: Sensor ist 20 cm über dem Tank montiert →
#define SENSOR_MOUNT_OFFSET 20.0 - Warum nötig?: Sensor kann nicht direkt am Tank befestigt werden, braucht Montageabstand
3. SENSOR_MIN_DISTANCE (Mindestabstand)
Technische Grenze des HC-SR04 Sensors (2 cm).
- Standard: 2.0 cm (nicht ändern!)
- Zweck: Warnung wenn Flüssigkeit zu nah am Sensor ist
Aufbau-Beispiel
↑
|
[ HC-SR04 ] | ← Sensor montiert an Decke/Halterung
|
20 cm | ← SENSOR_MOUNT_OFFSET
|
╔═══════════════╗ ← Tank-Oberkante
║ ║
║ Flüssigkeit ║
║ ↕ ║ ← Füllstand (variabel)
║ ║
║ 180 cm ║ ← TANK_HEIGHT
║ ║
║ ║
╚═══════════════╝ ← Tank-Boden
Berechnung
Leerer Tank:
Gemessene Distanz = SENSOR_MOUNT_OFFSET + TANK_HEIGHT
= 20 cm + 180 cm = 200 cm
Füllhöhe = 0 cm
Füllstand = 0%
Voller Tank:
Gemessene Distanz = SENSOR_MOUNT_OFFSET
= 20 cm
Füllhöhe = 180 cm (= TANK_HEIGHT)
Füllstand = 100%
Halb voller Tank:
Gemessene Distanz = 110 cm
Füllhöhe = 200 cm - 110 cm = 90 cm
Füllstand = (90 / 180) × 100 = 50%
Anpassung an Ihre Installation
Schritt 1: Tank-Höhe messen
Messen Sie die innere Höhe Ihres Tanks von Boden bis Oberkante.
Beispiel: 180 cm → #define TANK_HEIGHT 180.0
Schritt 2: Montageabstand messen
Messen Sie den Abstand vom Sensor bis zur Tank-Oberkante.
Beispiel: Sensor 20 cm über Tank → #define SENSOR_MOUNT_OFFSET 20.0
Schritt 3: Code hochladen und testen
-
Bei leerem Tank:
- Display sollte 0% anzeigen
- Serial Monitor zeigt Füllhöhe: 0 cm
-
Bei vollem Tank:
- Display sollte 100% anzeigen
- Serial Monitor zeigt Füllhöhe: 180 cm (= TANK_HEIGHT)
-
Falls nicht korrekt:
- Überprüfen Sie TANK_HEIGHT und SENSOR_MOUNT_OFFSET
- Passen Sie die Werte an
Fehlerdiagnose
Problem: Füllstand zeigt negative Werte oder 0% bei halbvollem Tank
Ursache: SENSOR_MOUNT_OFFSET oder TANK_HEIGHT falsch konfiguriert
Lösung:
- Messen Sie die tatsächliche Distanz bei leerem Tank
- Berechnen Sie:
SENSOR_MOUNT_OFFSET + TANK_HEIGHT = gemessene Distanz - Passen Sie die Werte entsprechend an
Problem: Füllstand zeigt über 100%
Ursache: Tank ist voller als erwartet oder TANK_HEIGHT zu klein
Lösung:
- Überprüfen Sie TANK_HEIGHT
- Code begrenzt automatisch auf max. 100%
Problem: "WARNUNG: Flüssigkeit zu nah am Sensor!"
Ursache: Flüssigkeit ist näher als SENSOR_MOUNT_OFFSET + SENSOR_MIN_DISTANCE
Lösung:
- Normal bei sehr vollem Tank (>95%)
- Sensor evtl. höher montieren wenn Warnung bei 100% auftritt
Beispiel-Konfigurationen
Kleiner Tank (100 cm, Sensor 10 cm darüber)
#define TANK_HEIGHT 100.0
#define SENSOR_MOUNT_OFFSET 10.0
Mittelgroßer Tank (180 cm, Sensor 20 cm darüber)
#define TANK_HEIGHT 180.0
#define SENSOR_MOUNT_OFFSET 20.0
Großer Tank (300 cm, Sensor 30 cm darüber)
#define TANK_HEIGHT 300.0
#define SENSOR_MOUNT_OFFSET 30.0
Kalibrierung
Methode 1: Bei leerem Tank
- Entleeren Sie den Tank komplett
- Laden Sie den Code hoch und notieren Sie die gemessene Distanz
- Berechnen Sie:
TANK_HEIGHT = gemessene Distanz - SENSOR_MOUNT_OFFSET
Methode 2: Bei vollem Tank
- Füllen Sie den Tank komplett (bis Oberkante)
- Laden Sie den Code hoch und notieren Sie die gemessene Distanz
- Diese Distanz = SENSOR_MOUNT_OFFSET
Methode 3: Mit Maßband
- Messen Sie TANK_HEIGHT mit Maßband (innere Höhe)
- Messen Sie SENSOR_MOUNT_OFFSET mit Maßband (Sensor bis Tank-Oberkante)
- Tragen Sie beide Werte ein
Genauigkeit
- HC-SR04 Genauigkeit: ±0.3 cm
- Messbereich: 2 cm - 400 cm
- Empfohlener Tank-Bereich: 50 cm - 300 cm
- Messintervall: 30 Sekunden (konfigurierbar via
TX_INTERVAL)