+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    Jun 2005
    Ort
    Lichtenau / Baden
    Beiträge
    51

    Standard Wassestandsmelder

    Hi, ich hoffe ihr könnt einem neuling helfen.

    ausgangsituation:

    ein wasserbehälter (pool) soll via ips automatisch den wasserstand in einem bstimmten bereich halten.

    als (sensor-) sender hab ich ein FS20 S4M 2/4-Kanal-Sendemodul gedacht.
    als empfänger ein FS20 SM4 Empfangsmodul.

    von der wasserleitung geht es über ein 230V magnetventil (aus alter waschmaschine) in den pool.
    die "wasser-"hardware aus FS20-Empfängerund und ventil hab ich schon gebaut und gestestet. der direkt betrieb mit der fernbedienung klappt auch wunderbar.

    das script zur steuerung hab ich auch schon geschrieben. funktioniert im testbetrieb mit einem glas wasser auch schon ganz gut.

    herkömmliche "wassersensoren" erzeugen ein "dauersignal". der sender will aber nur impulse.

    da ich mit zwei sensoren arbeiten will (leer und voll) um einen füllbereich abzudecken, brauch ich eigentlich bei jedem sensor zwei signale.

    sensor 1 (voll):
    der sensor soll ein "false" senden wenn er trocken ist und ein "true" wenn er im wasser ist.

    für sensor 2 (leer)gilt das gleiche.

    durch diese doppelte kontrolle sind wasserschwankungen durch schwimmen weitgehend ignorierbar

    somit kann ich mir vier zustände anzeigen lassen:
    leer, wird gefüllt
    normal, wird gefüllt
    normal, ventil zu
    voll, ventil zu

    das problem:

    was für eine schaltung muss ich mir zwischen sensor und sender bauen um aus dem dauersignal meine beiden impulse zu generieren?

    zum verständnis kommt hier noch mein script:
    PHP-Code:
    <?
    /*
    *******************************
     IP-SYNCOM Event Scripting
    *******************************
    */

    //File: pool.ips.php

    // Varibalen

    $becken_voll GetValueBoolean ("sender.pool.Pool_Sensor_1.Status");
    $becken_leer GetValueBoolean ("sender.pool.Pool_Sensor_2.Status");
    $ventil      GetValueBoolean ("Empfänger.Pool.Pool_Switch_1.Status");



    // Wasser Hoch

    if (("$becken_voll== 1)                                     // Status "Becken Voll"
          
    &&
        (
    "$becken_leer== 1))                                    //Status "Becken Leer"
    {
        
    IPS_RunScript ("Empfänger.Pool.Pool_Switch_1_OFF");       //Magnetventil Zu

        
    echo "Wasserstand Hoch<br><br>Magnetventil zu";           // Textausgabe
    }


    // Wasser Niedrig

    elseif (("$becken_voll== 0)                                 // Status "Becken Voll"
              
    &&
            (
    "$becken_leer== 0))                                //Status "Becken Leer"
    {
        
    IPS_RunScript ("Empfänger.Pool.Pool_Switch_1_ON");        //Magnetventil auf

        
    echo "Wasserstand Niedrig<br><br>Magnetventil Offen";     // Textausgabe
         
    echo "<br> Füllung läuft!";                              // Textausgabe
    }


    // Füllen

    elseif (("$becken_voll== 0)                                 // Status "Becken Voll"
              
    &&
            (
    "$becken_leer== 1)                                 //Status "Becken Leer"
              
    &&
            (
    "$ventil== 1))                                     //Magnetventil Offen
    {
            echo 
    "Wasserstand Normal<br><br>Magnetventil Offen";  // Textausgabe
            
    echo "<br> Füllung läuft!";                           // Textausgabe
    }

    // Wasserstand Normal

    elseif (("$becken_voll== 0)                                 // Status "Becken Voll"
              
    &&
            (
    "$becken_leer== 1)
              &&
            (
    "$ventil== 0))                                     //Status "Becken Leer"
    {
        
    IPS_RunScript ("Empfänger.Pool.Pool_Switch_1_OFF");       //Magnetventil Zu

        
    echo "Wasserstand Normal<br><br>Magnetventil zu";         // Textausgabe
    }


    Else
    {
      
    IPS_RunScript ("Empfänger.Pool.Pool_Switch_1_OFF");         // Ventil ZU

      
    Echo " SENSORFEHLER !!!";                                         // Fehlermeldung

    }
    ?>
    ich hoffe ihr könnt mir helfen, oder mir natürlich auch andere möglichkeiten zeigen.
    ich bedanke mich auf jedefall schon mal im voraus dafür.

    dirk

  2. #2
    Registriert seit
    May 2005
    Beiträge
    311

    Hallo flyship,

    vor einem ähnlichen Problem stand ich auch schon. Ich habe mich dann für den FS20 SPIR (ELV) entschieden. Leider gibt es diesen Sender nur als Bausatz (SMD+FlatPack!) und man braucht einiges an SMD Löterfahrung.

    Alternativ kannst du dir noch den Kontaktmelder HMS100TFK ansehen. Dieser Melder ist für "normale" Eingangssignale vorgesehen.

    Ich hoffe das hilft dir erst einmal weiter...

    Schöne Grüße aus dem Harz

    Keule

  3. #3
    Registriert seit
    May 2005
    Beiträge
    1,854

    Eine weitere Möglichkeit wäre der Umbau eines Standard ELV WS2000 Temperatursensors. Da die Temperatur über einen veränderlichen Widerstand gemessen wird, könnte man diesen durch einen analogen Schwimmer ersetzen (wie im Tank) der über seinen je nach Füllstand unterschiedlichen Widerstand den Füllstand quasi als Temperatur ausgibt. Man kann sich ja dann eine Wertetabelle ablegen, welche "Temperatur" welchem Füllstand entspricht.
    So hat man schon mal einen Sonnensensor gebastelt (http://www.pc-wetterstation.de/wetter/solarsensor.html)

    Tommi

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,574

    Hallo,

    es gibt zwei Probleme:

    1. wie oben schon erwähnt, benötigen die FS20-Sender Impulse – dies kann man mit einer Elektronik
    oder einem einfachen RC-Glied realisieren. Dann hat man das nächste Problem:
    2. geht ein Funksignal „verloren“, weiß das System nicht mehr den Schaltzustand – es muß also öfters
    wiederholt werden. Wieder eine kleine Elektronik mit einem NE555? o.ä.

    Hier die schnelle, etwas teuere „Lösung für Helden“ mir dem HMS 100T (ähnlich der Lösung von Tommi):
    Den Fühler gegen zwei z.B. 10K Widerstände ersetzen, die parallel über die Schwimmschalter
    (Conrad, ab €10,-) geschaltet werden. Man bekommt also verschiedene Temperatur-Werte für die
    einzelnen Schaltzustande, die alle 5-6 Minuten wiederholt werden

    Ich habe mal eben eine „krumme Kurve“ aufgenommen (Widerstand geändert und Temperatur abgelesen).

    Viel Spaß beim Basteln

    MST

    PS: Vielleicht hat jemand noch weitere Ideen, wie man den HMS 100T „missbrauchen“ kann…
    Geändert von steiner (30.06.05 um 14:22 Uhr)

  5. #5
    Registriert seit
    Jun 2005
    Ort
    Lichtenau / Baden
    Beiträge
    51

    Danke schon mal für die bisherigen lösungen, werd mal drüber schlafen und ein wenig "basteln".

    wenn ich ne lösung hab werd ich die natürlich hier veröffentlichen.

    bin natürlich weiteren vorschägen nicht abgeneigt.

    dirk

  6. #6
    Registriert seit
    May 2005
    Beiträge
    1,854

    Der Hersteller von ezcontrol hat auch einen Funk-Füllstandssensor angekündigt. (http://www.ezcontrol.de/content/blogsection/4/56/)

    Tommi

  7. #7
    Registriert seit
    Jun 2005
    Ort
    Lichtenau / Baden
    Beiträge
    51

    hi, hab nun genug drüber geschlafen und gebastelt. nun hab ich ne lösung gefunden.

    dank fehlkauf von zwei fs20-uts einheiten (war der meinung die senden die temperatur und nicht nur nen impuls bei über-unterschreiten von temperaturgrenzwerten).

    irgenwann nachts, wärend dem schlafen, kam mir der gedanke wie die uts eigentlich die temperatur messen.
    mittels zeitmessung! je wärmer, umso weniger zeit braucht ein kondesator zum laden. also, je kleiner der widerstand.

    ergo, den temp-sensor wieder ausgebaut und einfach zwei drähte angelötet.
    diese zum testen in ein becher mit dem poolwasser getaucht, und siehe da es kam ein True signal.

    da der sensor auf zwei kanälen senden kann, hab ich beiden kanälen dieselbe adresse zugeteilt. nur mit unteschiedlichen kriterien.
    bei mir sendet der erste kanal ein true wenn er im wasser ist (temperatur über -38°) und der zweite ein false wenn er trocken ist (temperatur unter -38°).
    dadurch wird mein script viel übersichtlicher, da ich klare meldungen in der variablen hab ohne sie extra überprüfen oder zu reseten zu müssen!
    (wie es bei meinem regensensor der fall ist)

    werd das ganze in den nächsten tagen montieren und nochmal testen. wenn es klappt werd ich das ergebnis hier bekanntgeben.

    vielen dank nochmal für die "starthilfe", die hinweise mit den anderen temperatursensoren haben mich auf den weg gebracht. aber meine lösung behagt mir mehr. da es keine mechanischen teile gibt, die von meiner nichte (9,5) oder dem saugroboter beschädigt werden können.

    da die sensore mit 3V= arbeiten, sehen ich auch keinerlei gefahr für die nutzer des beckens.

    bis zu nächsten frage,

    dirk
    Geändert von flyship (09.07.05 um 00:11 Uhr)