Christian Mueller e706b22f31 Add design specification for LoRaWAN Web Portal
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>
2026-03-19 22:27:49 +01:00

4.9 KiB
Raw Permalink Blame History

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

  1. Bei leerem Tank:

    • Display sollte 0% anzeigen
    • Serial Monitor zeigt Füllhöhe: 0 cm
  2. Bei vollem Tank:

    • Display sollte 100% anzeigen
    • Serial Monitor zeigt Füllhöhe: 180 cm (= TANK_HEIGHT)
  3. 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:

  1. Messen Sie die tatsächliche Distanz bei leerem Tank
  2. Berechnen Sie: SENSOR_MOUNT_OFFSET + TANK_HEIGHT = gemessene Distanz
  3. 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:

  1. Überprüfen Sie TANK_HEIGHT
  2. 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

  1. Entleeren Sie den Tank komplett
  2. Laden Sie den Code hoch und notieren Sie die gemessene Distanz
  3. Berechnen Sie: TANK_HEIGHT = gemessene Distanz - SENSOR_MOUNT_OFFSET

Methode 2: Bei vollem Tank

  1. Füllen Sie den Tank komplett (bis Oberkante)
  2. Laden Sie den Code hoch und notieren Sie die gemessene Distanz
  3. Diese Distanz = SENSOR_MOUNT_OFFSET

Methode 3: Mit Maßband

  1. Messen Sie TANK_HEIGHT mit Maßband (innere Höhe)
  2. Messen Sie SENSOR_MOUNT_OFFSET mit Maßband (Sensor bis Tank-Oberkante)
  3. 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)