PiezoPressure Wasserdrucksensor – Konfiguration im LTX Logger

Hintergrund: Wie misst der Sensor?

Der PiezoPressure ist ein Piezo-Drucksensor. Sein internes Sensormodell bestimmt, worauf der Referenzdruck bezogen wird:

Sensor-Modus Kürzel Referenz Beschreibung
PR Relativ Atmosphärendruck Kapillare im Kabel lässt Atmosphärendruck ans Sensorelement
PA / PAA Absolut Vakuum Versiegeltes Referenzvolumen, misst Gesamtdruck

Der Rohwert beider Typen wird intern in Bar geliefert.

Hinweis – Sensoranschluss: Der Drucksensor kann im SDI-12-Modus oder im I2C-Modus betrieben werden. In beiden Fällen ist die interne Verarbeitung der Messwerte identisch. Im SDI-12-Modus wird der Sensor von einer externen Elektronik gemessen, die den Absolutdruck liefert. Im I2C-Modus ist der Sensor direkt an den LTX Logger angeschlossen, und die Firmware liest den Druckwert über den I2C-Bus aus.


Physikalische Umrechnung

1 Bar = 10,197 m Wassersäule (Süßwasser)

Grundlage: g = 9,806 m/s², ρ = 1000 kg/m³


Fall 1: Absolut messender Sensor (Typ PA / PAA)

Problem: Der Sensor misst den vollen Absolutdruck:

p_absolut = p_Wasser + p_Atmosphäre

Der Atmosphärendruck muss daher abgezogen werden. Das erledigt die Firmware automatisch, wenn der Parameter src_index entsprechend gesetzt wird.

Interne Verarbeitung

// src_index >= 100: Barometrische Kompensation aktiv
chan_value.floatval = cache_value[0].floatval       // Absolutdruck in Bar
                     - (baro_vals.pressure / 1000.0); // Luftdruck mBar → Bar
// Ergebnis: reiner Wasserdruck in Bar

fval *= pchan->factor;  // Bar → Meter Wassersäule
fval -= pchan->offset;  // Ggf. Nullpunkt-Korrektur

Der interne Barometrische Sensor (MS5607) liefert baro_vals.pressure in mBar; die Division durch 1000,0 ergibt Bar.

Nebeneffekt: Wird src_index >= 100 erkannt, setzt die Firmware intern ein Flag. Der Baro-Sensor wird dann bei jeder Messung abgefragt – auch wenn er keinen eigenen Logging-Kanal hat.

Kundenkonfiguration – Kanalparameter (im LTX Logger)

Parameter Wert Erläuterung
physkan PK_MULTI_SDI12 (SDI12) oder PK_MULTI_KELLERLD (I2C) Bustyp
src_index 100 100 + Cache-Index 0 (Druck) → aktiviert Baro-Kompensation
factor 10.197 Umrechnung Bar → Meter Wassersäule
offset 0.0 Nur setzen, wenn ein fixer Nullpunkt-Offset gewünscht ist
unit mH2O Anzeigeeinheit

Voraussetzung: Das Gerät muss mit einem Barometrischen Sensor (MS5607) bestückt sein (Hardware-Flag HK_FLAGS & 16). Fällt der Baro-Sensor aus, gibt der Kanal einen Fehler zurück anstelle eines Messwerts.


Fall 2: Relativ messender Sensor (Typ PR, Kapillare im Kabel)

Kein Kompensationsbedarf: Die Kapillare im Sensorkabel verbindet die Rückseite des Sensorelements mit der Außenluft. Der Sensor misst damit automatisch nur den Überdruck des Wassers gegenüber der Atmosphäre:

p_relativ = p_absolut − p_Atmosphäre

Der Messwert in Bar entspricht direkt dem Wasserdruck.

Interne Verarbeitung

// src_index < 100: direkter Wert aus Cache, keine Kompensation
chan_value.floatval = cache_value[0].floatval;  // Relativdruck in Bar

fval *= pchan->factor;  // Bar → Meter Wassersäule
fval -= pchan->offset;  // Ggf. Nullpunkt-Korrektur

Kundenkonfiguration – Kanalparameter

Parameter Wert Erläuterung
physkan PK_MULTI_SDI12 (SDI12) oder PK_MULTI_KELLERLD (I2C) Bustyp
src_index 0 Cache-Index 0 (Druck), direkt – keine Kompensation
factor 10.197 Umrechnung Bar → Meter Wassersäule
offset 0.0 Nur bei gewünschter Nullpunkt-Korrektur
unit mH2O Anzeigeeinheit

Hinweis: Bei einem relativen Sensor ist keine Baro-Hardware erforderlich. Der Sensor muss jedoch physisch korrekt angeschlossen sein (Kapillare frei, nicht abgeknickt oder verstopft).


Zusammenfassung: src_index als Schalter

src_index-Wert Bedeutung
0 … (MAX_CACHE − 1) Direkter Rohwert aus der Messung – keine Baro-Kompensation
100 … (100 + MAX_CACHE − 1) Baro-kompensierter Wert: Rohwert − Luftdruck [Bar]

Der Offset von 100 zeigt dabei auf denselben SDI12/I2C Cache-Slot wie der direkte Wert: src_index = 100 entspricht cache_value[0] (Druck), src_index = 101 entspricht cache_value[1] usw.