NEWS
Wasserstands-/Füllstandssensor,Wasserpegelschalter
-
Guten Morgen Andreas,
bei mir ist das so angeschlossen: (Habe an D1 und D2 noch ein Sh1106 Display angeschlossen)
Den Wert musst du eigentlich nicht umrechnen. Dieser wird in der Einheit cm übertragen. In der Tasmota Software ist ja noch ein Mittelwertfilter hinterlegt. Schätze mal dass die Software alle par Sekunden misst. Wie oft übertragen wird kannst du mit dem Parameter teleperiod einstellen. Entweder fest in die Software eintragen wenn du selbst compilieren willst, oder in der Konsole mit teleperiod und einer Zahl. Zulässig sind 0 für ausschalten oder 10 - 3600 sekunden.
Mein Werte im obigen Bild stimmt zwar messtechnisch auch überhaupt nicht, liegt bei mir aber am Einbau des Sensors, den ich übers Wochenende ändern werde.
Die weitere Verarbeitung des Signals kannst du dann z.B. in Javascript machen.
Ich will bei mir die Ölmenge im zylindrischen Erdtank bestimmen. Das Script dazu habe ich schon geschrieben und sieht so aus:
// Maximale Füllmenge im Erdtank const maxVolume = 7000; // Liter //maximale Füllhöhe const MaxOelLevel = 160; // cm // Gemessener Abstand von Sensor zu Öloberfläche var AirLevel = 0; // cm // Korrekturwert wegen Sensormontage im Erdtank ( Domschacht) var AirLevelOffset = 16; // cm // Errechneter Ölstand im Tank var OelLevel = 0; // cm // Menge Öl in Erdtank var Oelvolume = 0; // Peiltabelle von Thyssen Krupp // Wert links Pegelstand von Grund ab gemessen in cm, // Wert Rechts Fuellstand in Liter const Peiltabelle = new Map([ [ 0, 0 ], [ 1, 5 ], [ 2, 15 ], [ 3, 28 ], [ 4, 43 ], [ 5, 61 ], [ 6, 80 ], [ 7, 101 ], [ 8, 124 ], [ 9, 149 ], [ 10, 174 ], [ 11, 201 ], [ 12, 230 ], [ 13, 259 ], [ 14, 289 ], [ 15, 320 ], [ 16, 352 ], [ 17, 385 ], [ 18, 419 ], [ 19, 455 ], [ 20, 491 ], [ 21, 528 ], [ 22, 565 ], [ 23, 603 ], [ 24, 642 ], [ 25, 682 ], [ 26, 723 ], [ 27, 764 ], [ 28, 806 ], [ 29, 848 ], [ 30, 891 ], [ 31, 935 ], [ 32, 979 ], [ 33, 1024 ], [ 34, 1069 ], [ 35, 1114 ], [ 36, 1160 ], [ 37, 1206 ], [ 38, 1254 ], [ 39, 1303 ], [ 40, 1352 ], [ 41, 1401 ], [ 42, 1450 ], [ 43, 1500 ], [ 44, 1550 ], [ 45, 1601 ], [ 46, 1652 ], [ 47, 1703 ], [ 48, 1755 ], [ 49, 1808 ], [ 50, 1861 ], [ 51, 1914 ], [ 52, 1967 ], [ 53, 2020 ], [ 54, 2074 ], [ 55, 2128 ], [ 56, 2183 ], [ 57, 2238 ], [ 58, 2293 ], [ 59, 2348 ], [ 60, 2403 ], [ 61, 2458 ], [ 62, 2513 ], [ 63, 2569 ], [ 64, 2625 ], [ 65, 2681 ], [ 66, 2737 ], [ 67, 2793 ], [ 68, 2849 ], [ 69, 2905 ], [ 70, 2961 ], [ 71, 3017 ], [ 72, 3073 ], [ 73, 3130 ], [ 74, 3187 ], [ 75, 3244 ], [ 76, 3301 ], [ 77, 3358 ], [ 78, 3415 ], [ 79, 3472 ], [ 80, 3529 ], [ 81, 3586 ], [ 82, 3643 ], [ 83, 3700 ], [ 84, 3757 ], [ 85, 3814 ], [ 86, 3871 ], [ 87, 3928 ], [ 88, 3984 ], [ 89, 4040 ], [ 90, 4096 ], [ 91, 4152 ], [ 92, 4208 ], [ 93, 4264 ], [ 94, 4320 ], [ 95, 4376 ], [ 96, 4432 ], [ 97, 4488 ], [ 98, 4543 ], [ 99, 4598 ], [ 100, 4653 ], [ 101, 4708 ], [ 102, 4763 ], [ 103, 4818 ], [ 104, 4873 ], [ 105, 4927 ], [ 106, 4981 ], [ 107, 5034 ], [ 108, 5087 ], [ 109, 5140 ], [ 110, 5193 ], [ 111, 5246 ], [ 112, 5298 ], [ 113, 5349 ], [ 114, 5400 ], [ 115, 5451 ], [ 116, 5501 ], [ 117, 5551 ], [ 118, 5600 ], [ 119, 5649 ], [ 120, 5698 ], [ 121, 5747 ], [ 122, 5795 ], [ 123, 5841 ], [ 124, 5887 ], [ 125, 5932 ], [ 126, 5977 ], [ 127, 6022 ], [ 128, 6066 ], [ 129, 6110 ], [ 130, 6153 ], [ 131, 6195 ], [ 132, 6237 ], [ 133, 6278 ], [ 134, 6319 ], [ 135, 6359 ], [ 136, 6398 ], [ 137, 6436 ], [ 138, 6473 ], [ 139, 6510 ], [ 140, 6546 ], [ 141, 6582 ], [ 142, 6616 ], [ 143, 6649 ], [ 144, 6681 ], [ 145, 6712 ], [ 146, 6742 ], [ 147, 6771 ], [ 148, 6800 ], [ 149, 6827 ], [ 150, 6852 ], [ 151, 6877 ], [ 152, 6900 ], [ 153, 6921 ], [ 154, 6940 ], [ 155, 6958 ], [ 156, 6973 ], [ 157, 6986 ], [ 158, 6996 ], [ 159, 7001 ], [ 160, 9999 ] // error ]) ; // Name des Tasmota Gerätes const Geraetename = 'DVES_568D91'; //Staus Verbindung zu Tasmota var StatusVerbindung = 0; // String der verbundenen Tasmota Geräte var sonoffname; StatusVerbindung = getState("sonoff.0.info.connection").val; // Prüfe Verbindung zu Tasmota prüfen //console.log(StatusVerbindung); sonoffname = StatusVerbindung.search(Geraetename); // Suchen ob Tasmota Gerätename vorhanden //console.log(sonoffname); if( sonoffname != -1) { var Messwert = getState("sonoff.0.DVES_568D91.SR04_Distance").val; // Hole Daten von Ultraschallsensor console.log( 'Luftmessweg' + Messwert + 'cm') ; AirLevel = Messwert - AirLevelOffset; // Montagehöhe von Sensor abziehen OelLevel = MaxOelLevel - AirLevel; // Errechne die Füllhöhe im Erdtank console.log( 'Ölmessweg ' + OelLevel + ' cm') ; if ((OelLevel >= 0) && (OelLevel < MaxOelLevel)) { Oelvolume = Peiltabelle.get(Math.round(OelLevel)); console.log( 'Ölmenge ' + Oelvolume + ' Liter') ; // sendTo("telegram.0", "send", { // text: 'Heizpatrone Stufe 1 Ein' // }); } else {console.log('Fehler in Messung'); Oelvolume = 9999; console.log( 'Ölmenge ' + Oelvolume + ' Liter') ; } } else{ console.log('Keine Verbindung zu Tasmota Gerät'); Oelvolume = 9999; } code_text
Gruß Stephan
-
Hallo Stephan,
jetzt ist alles im grünen Bereich.
Muss nur noch das Script anpassen.
Hatte ganz vergessen, dass der Sensor unter 20cm nur Mist misst!Hatte gestern einen halben Tag gebraucht um auf das Nodemcu Sonoff zu flashen.
Zuerst habe ich es mit ESPeasy Flashtool probiert. Hat aber nicht funktioniert.
Dann mit Arduino versucht zu flashen. Bis ich dann die richtige Einstellung hatte, war der halbe Tag rum.
Aber jetzt funktioniert es ja.Vielen Dank für die Hilfe!
-
Soweit hat bei mir alles funktioniert.
War mein erster Date mit NodeMCU und Co.Seit drei Tagen habe ich aber folgendes Phänomen, dass mein HC SR04 jeden Abend anfängt die Messungen umzudrehen.
D.h. was tagsüber 20% Füllmenge sind, sind Abends plötzlich 80%.Kann es sein, dass der HC SR04 defekt ist?
Ich benutze folgendes Script:
Aber daran kann es nicht liegen, da die Datenpunkte ja schon umgedreht sind.
Hat das schon mal jemand gehabt?
-
Hier mal meine Ausführung. Kosten ~25€ (2 * Fensterkontakt von Aqara + Füllstandssonde von Ali)
Aber nur 2 Pegel! -
@Superdad Ich würde an deiner Stelle mal die Rohwerte vom SR04 mit dem History oder anderen Datenbank Adaptern aufzeichnen um den Fehler einzugrenzen.
-
@heinzie wusste bis eben nicht dass es die Dinger auch als Doppelschwimmer gibt.
Ist so auch eine schöne und einfache Lösung. Hast du schon Erfahrungswerte ob die Dinger hängen bleiben/festgammeln?
ich habe 2 einzelne Schwimmer mit 3D-Druck-Teilen und 50er-HT-Rohr verbaut. Ist so beliebig anpass- & erweiterbar.
So können die Fische schon mal keine Fehlalarm auslösen
Ein Wasserdichter DS1820 sitzt auch noch in der unteren Hülse. Auslesen werde mit einem Wemos.
Muss da mal weitermachen damit das Rohr im Frühjahr in den Teich kann. Technik soll in ein kleines Modellbauhäuschen mit Steg für die Rohrmontage.
Hintergrund der Spielerei: Unser Bachlauf/Verdunstung und Pfanzen die in den Teich hängen sorgen für Wasserverlust.
Wenn der untere Schwimmer auslöst soll das Hauswasserwerk Brunnenwasser nachpumpen bis der obere Schwimmer wieder voll signalisiert. -
@xbow42 sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:
@heinzie wusste bis eben nicht dass es die Dinger auch als Doppelschwimmer gibt.
Ist so auch eine schöne und einfache Lösung. Hast du schon Erfahrungswerte ob die Dinger hängen bleiben/festgammeln?
ich habe 2 einzelne Schwimmer mit 3D-Druck-Teilen und 50er-HT-Rohr verbaut. Ist so beliebig anpass- & erweiterbar.
So können die Fische schon mal keine Fehlalarm auslösen
Ein Wasserdichter DS1820 sitzt auch noch in der unteren Hülse. Auslesen werde mit einem Wemos.
Muss da mal weitermachen damit das Rohr im Frühjahr in den Teich kann. Technik soll in ein kleines Modellbauhäuschen mit Steg für die Rohrmontage.
Hintergrund der Spielerei: Unser Bachlauf/Verdunstung und Pfanzen die in den Teich hängen sorgen für Wasserverlust.
Wenn der untere Schwimmer auslöst soll das Hauswasserwerk Brunnenwasser nachpumpen bis der obere Schwimmer wieder voll signalisiert.Deine Lösung ist natürlich sehr inteersant. leider habe ich noch keinen 3D Drucker, musste also das nehmen was leicht verfügbar ist.
Erfahrungen bezüglich festgammeln usw.. habe ich noch keine. Hoffe das mir das erspart bleibt, da sie nur im geschlossenem System verwendet werden. Die gibt es sogar auch einstellbar Link -
auch gut. Geschloßen ist mein System auch fast, bis auf die Wasser- & Luftlöcher. Ich hoffe nur die Kabeldurchführungen halten auf dauer dicht. Vorteil an meiner Lösung, je nach Einbaulage kann das Schaltverhalten bestimmt werden. Für ioBroker ja auch kein Ding die Schalter.states zu invertieren. Für meinen Anwendungsfall (gegenpolig eingebaut) ist alles im "grünen Bereich" wenn beide Schalter 0 liefern.
-
Mein low budget outdoor system zum bestimmen des tankinhaltes (sowie zum messen des durchsatzes der Wasserpumpe) besteht aus einem:
- Wemos D1 Mini (1,8€)
- Tilt Stop (0,8€)
- Ultrasonic Sensor, wasserdicht (3,5€)
Der Tilt stop ist nur ein doppelter Boden falls der ultrasonic Sensor versagen sollte (nach mehreren Monaten bisher noch nicht der Fall).
Auf dem wemos d1 mini läuft esphome und alle Berechnungen für und um den Tank, wie:
- Aktuelles Volumen in L
- Aktuelles Volumen in %
- Aktuelle Füllstand Höhe in cm
- Aktuelle Füllrate in Liter/Minute (ergo aktueller Durchsatz der Wasserpumpe)
- Aktuelle Entnahmerate Liter/Minuten (Bewässerung Garten)
- Tilt stop Aktivierung (mit Signal an das Wasserpumpenrelai)
- Durchschnittliche Füllrate letzte 5 Minuten
- Durchschnittliche Füllrate letzten 10 Minuten.
- Durchschnittliche Entnahmerate letzte 5 Minuten
- Durchschnittliche Entnahmerate letzten 10 Minuten
- Füllstand minimal heute
- Füllstand maximal heute
- Füllstand minimal Monat
- Füllstand maximal Monat
und ein paar weitere die ich gerade nicht im Kopf habe, werden direkt auf dem ESP gemacht, edgecomputing ist gerade hipp
Und das Ergebniss des ultrasonic Sensors etwas zu beruhigen (und keine flackernden Werte zu haben) benutze ich außerdem ein moving_average auf dem esp. So habe ich keine großen Ausreißer bei den Messungen.
-
@ecki945 Wird der errechnete Liter Wert in einen Datenpunkt gespeichert und nur als Telegram Nachricht verschickt.
-
Habe nun endlich meinen ersten ToF (Time of Flight) 940nm Laser Sensor bekommen. Mit etwa 2€ ist dieser nicht fast um die hälfte billiger als die (wasserdichten) Ultraschallsensoren sondern hat in Theorie auch noch eine höhere Genauigkeit sowie weniger Störeinflüsse. In der Praxis wird vor allem interessant wie er sich im Zusammenspiel mit dem Wasser verhält. Werde mich die Tage mal ran' wagen und diesen parallel zum vorhanden Ultrasonic installieren.
-
Wie muss ich den SR04 an einem MCULuanBoard Anschließen bezüglich Betriebsspannung. Leider bringt er mir komische Werte wenn ich VCC an 3V anschließen.
-
@Basti97 said in Wasserstands-/Füllstandssensor,Wasserpegelschalter:
MCULuanBoard
Das board kannte ich bis dato noch gar nicht.
Wie muss ich den SR04 an einem MCULuanBoard Anschließen bezüglich Betriebsspannung
Hier hilft eine ca. 2 sekündige google Suche welche dieses Datenblatt enthüllt in dem die korrekte Betriebsspannung des SR04 genannt wird. Sagen wir mal so: Mit 3V lagst du daneben und viel mehr Möglichkeiten gibt es nicht mehr...
-
@OpenSourceNomad Das weiß ich jetzt auch das sie mit 5V betrieben werden. Nun fehlt nur noch ein Logik Level um die Spannung auf 3 V herunter zu bringen.
-
@Basti97 said in Wasserstands-/Füllstandssensor,Wasserpegelschalter:
Nun fehlt nur noch ein Logik Level um die Spannung auf 3 V herunter zu bringen.
Wenn du das ganze mit einem esp betreiben willst ist das nicht nötig da diese 5v tolerant auf den io pins sind
-
@OpenSourceNomad Aber es würde ja nicht schaden ein Logik Level C. zunehmen. Ich habe bezüglich maximal Spannung für die einzelnen Boards noch keine richtige Beschreibung gefunden. Genauso wie mit den Analogen Eingang mit der Max. Spannung bei den einen heißt es 1V wo anders 3V. Da weiß man nicht so richtig.
-
@Basti97 said in Wasserstands-/Füllstandssensor,Wasserpegelschalter:
Aber es würde ja nicht schaden
ist aber trotzdem einfach total überflüssig, Materialverschwendung und darüber hinaus noch unnötig fehlerstiftend
Das die digitalen i/o pin's (analog daher ausgenommen) des esp8266 auch 5V abkönnen hat übrigens selbst Teo Swee Ann, CEO von Espressif schon 2017 bestätigt.
Und bezüglich deinen Ungereimtheiten des Analogeingangs vom esp8266's: Dieser, namentlich ADC, kann tatsächlich nur 1V ab. Bei so ziemlich jedem board (d1 mini, nodemcu, ...) ist aber schon ein voltage divider eingebaut, dann heißt der pin plötzlich A0 und kann 3V ab.
Ich habe bezüglich maximal Spannung für die einzelnen Boards noch keine richtige Beschreibung gefunden
Geheimtipp: Internet
-
@OpenSourceNomad Ok Naja das Problem mit dem A0 hatte ich schon mehrmals auf vielen Seiten bei den einen steht nur 1V. Ich habe nochmal geguckt auf dem Board steht wirklich A0 ist mir noch nicht richtig aufgefallen. Ich habe mich schon gewundert weil es Bilder im Internet gibt in den einer ein Regentropfensensor einfach an den Analog Eingang angeschlossen hatte. Woher sehe ich jetzt wirklich ob er auch 3 V an den Analogeneingang unterstützt außer wenn es zu spät ist.
-
@opensourcenomad Hallo, hast du das Ding (ist ja schon ein paar Jahre her) nun erfolgreich in Betrieb genommen? Ich suche noch nach einer Outdoor Lösung zur Messeung des Teichwasserstandes...