Hallo Kollegen,
ich hatte mich mal mit einem Thema „Wasserstand“ beschäftigt. Ich habe im Keller meiner Garage 6x 1000 Liter Tanks. Ich möchte jetzt diesen Stand ermitteln können, damit ich mit meinem IP-Symcon div. Aufgaben erledigen kann. Diese Waren:
- Anzeige Wasserstand (möglichst in kleine Schritte / genau)
- Ermittlung Leer, damit die Pumpe vom Strom getrennt wird
- Ermittlung Voll, damit ich meine Regenrohre umleiten kann
Ich habe im Forum verschiedenste Möglichkeiten gefunden, die aber alle nichts für mich waren. Entweder zu Teuer oder zu kompliziert.
Also habe ich angefangen zu überlegen wie ich dies am einfachsten ins IP-Symcon bekomme. Meine ersten Ideen kam von einem ELV Funk Temperaturfühler, dem ich verschiedenen Ohm Wert vorgaugen wollte, um diese im IP-Sycon um zu wandeln.
Leider nennt sich mein Beruf am Ende Elektroniker, hab aber leider nicht viel Ahnung in Elektronik.
Dann kam ich auf folgende Idee:
Warum nehme ich nicht einfach einen Stab, mach mehre Messpunkte, die ohne Wasser Ohm wert x und mit Wasser Wert y haben. Dies habe ich 100 mal getestet und habe es hinbekommen. Vielleicht kann jemand jetzt mit dieser Erfahrung sich auch einen Wasserstandsfühler bauen.
Ich habe ein 40er Abflussrohr genommen und dort in einem ausgemessenen Abstand immer Löscher gebohrt. Durch diese habe ich ein 1,5 mm³ Kupferdraht durchgesteckt und 3 mal um das Rohr gewickelt, bis es anschließen wieder in das Loch gequetscht wurde. Das andere Ende habe ich oben aus der Öffnung nach ca. 20 cm Abgeschnitten.
Mein Stab ist 1,20 m lang und hat insgesammt 16 Messpunkte (2x DS2423). Ich habe ganz unten und einmal in der Mitte des Rohrers einen zusätzlichen Massepunkt angebracht.
Meine Schaltung funktioniert jetzt wie folgt:
Ich habe an einem Kontakt des DS2423 ein 1,4 KOhm Wiederstand gelötet, der mit +5V verbunden ist. Des Weiteren geht ein Kabel zum untersten Fühlpunkt. Das ganze habe ich insgesamt 16x gemacht. Ist an einem Fühlpunkt Wasser vorhanden, so empfängt das IP-Symcon ein False, ist kein Wasser vorhanden ein True. Als Verbindungskabel zwischen meiner BOX mit dem 1-Wire und dem Fühler, habe ich einfach ein Druckerverlängerungskabel mit Centronix Stecker genommen.
Ich habe je DS2423 8 Variablen angelegt a1-a8 und b1-b8. Diese Werte ich mit einem Script jede Minute aus, um einen Liter Wert zu ermitteln. In dem hier Dargestellten Script, müsst Ihr nur noch euren Faktor ändern. Mein Tank hat insgesamt 6000 Liter, die durch 16 Messpunkte geteilt ergeben bei mir 375 Liter je Punkt.
Was mich die ganze Zeit nur beschäftigt hatte, war ob der Kupferdraht auf Dauer das Regenwasser aushält. In der Firma haben wir eine ähnliche Konstellation und der Draht hat bereits 5 Jahre auf dem Buckel und das war für mich OK.
Hier 2 Bilder von dem Messstab und das Script. Für weitere Fragen oder Bilderwünsche, könnt Ihr mich gerne anschreiben.
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : tank_min_ltr.ips.php
Trigger :
Interval :
*/
$a1 = getValueBoolean("tank_a1");
$a2 = getValueBoolean("tank_a2");
$a3 = getValueBoolean("tank_a3");
$a4 = getValueBoolean("tank_a4");
$a5 = getValueBoolean("tank_a5");
$a6 = getValueBoolean("tank_a6");
$a7 = getValueBoolean("tank_a7");
$a8 = getValueBoolean("tank_a8");
$b1 = getValueBoolean("tank_b1");
$b2 = getValueBoolean("tank_b2");
$b3 = getValueBoolean("tank_b3");
$b4 = getValueBoolean("tank_b4");
$b5 = getValueBoolean("tank_b5");
$b6 = getValueBoolean("tank_b6");
$b7 = getValueBoolean("tank_b7");
$b8 = getValueBoolean("tank_b8");
$fakt = 375;
// Tank Ltr auf 0 setzen
SetValueInteger("tank_ltr", 0);
// Berechnung der Liter
if($a1 == False) {
SetValueInteger("tank_ltr", $fakt * 1);
SetValueInteger("tank_designer_pos", 1);
}
if($a2 == False) {
SetValueInteger("tank_ltr", $fakt * 2);
SetValueInteger("tank_designer_pos", 2);
}
if($a3 == False) {
SetValueInteger("tank_ltr", $fakt * 3);
SetValueInteger("tank_designer_pos", 3);
}
if($a4 == False) {
SetValueInteger("tank_ltr", $fakt * 4);
SetValueInteger("tank_designer_pos", 4);
}
if($a5 == False) {
SetValueInteger("tank_ltr", $fakt * 5);
SetValueInteger("tank_designer_pos", 5);
}
if($a6 == False) {
SetValueInteger("tank_ltr", $fakt * 6);
SetValueInteger("tank_designer_pos", 6);
}
if($a7 == False) {
SetValueInteger("tank_ltr", $fakt * 7);
SetValueInteger("tank_designer_pos", 7);
}
if($a8 == False) {
SetValueInteger("tank_ltr", $fakt * 8);
SetValueInteger("ttank_designer_pos", 8);
}
if($b1 == False) {
SetValueInteger("tank_ltr", $fakt * 9);
SetValueInteger("tank_designer_pos", 9);
}
if($b2 == False) {
SetValueInteger("tank_ltr", $fakt * 10);
SetValueInteger("ttank_designer_pos", 10);
}
if($b3 == False) {
SetValueInteger("tank_ltr", $fakt * 11);
SetValueInteger("tank_designer_pos", 11);
}
if($b4 == False) {
SetValueInteger("tank_ltr", $fakt * 12);
SetValueInteger("tank_designer_pos", 12);
}
if($b5 == False) {
SetValueInteger("tank_ltr", $fakt * 13);
SetValueInteger("tank_designer_pos", 13);
}
if($b6 == False) {
SetValueInteger("tank_ltr", $fakt * 14);
SetValueInteger("tank_designer_pos", 14);
}
if($b7 == False) {
SetValueInteger("tank_ltr", $fakt * 15);
SetValueInteger("tank_designer_pos", 15);
}
if($b8 == False) {
SetValueInteger("tank_ltr", $fakt * 16);
SetValueInteger("tank_designer_pos", 16);
}
?>
Grüße Andy Meyer