NEWS
Wasserstand - kapazitiv (kein Ultraschall)
-
Hallo Leute,
bin erst seit gut einer Woche am basteln mit ioBroker und der ObiSteckdose usw. echt spannend dieses neue Feld.
Ich hab noch keinerlei Überblick über die Sensoren die es so gibt aber schon ein wenig gegoogelt. Es gibt hier für einen Zisternenfüllstand schon viele Ideen und fertige Vorschläge. Ich würde aber mein analog schon vorhandenes System gerne "digitalisieren".
Es gibt 5 Drähte die in die Zisterne hängen und auf unterschiedlichen Höhen abisoliert sind. Je nachdem wie hoch das Wasser steht gibt es einen "Kurzschluss" mit dem entsprechenden Kabel und es leuchten 1-2-3-4-5 Lampen.
Dazu würde ich es gerne wie hier gezeigt bauen, nur suche ich jetzt einen Weg um diese 1-5 Signale zu digitalisieren möglichst kompakt. In diesem Beispielbild sind es nur 2 Level … das würde ich gerne etwas detailierter haben also 4-5 vllt.
~~<link_text text="https://ssli.ebayimg.com/images/g/ILMAA ... s-l640.jpg">https://ssli.ebayimg.com/images/g/ILMAAOSwImRYI9wt/s-l640.jpg</link_text>" />
Hat da jemand eine Idee oder Hilfe zu?
Danke schon mal :)~~
-
wieso nicht über Ultraschall ???
Über Ultraschall geht es viel einfacher und vor allem genauer!
welche höhe hat der Behälter?
-
Ok, ja vllt. macht das wirklich mehr Sinn.
Kann ich denn auch 2 Tonnen mit einem Board anschließen … also an das LOLIN32 zwei Ultraschall Sensoren die einiges von einander entfernt angebracht werden (1mal vor und 1mal hinter dem Haus)?
Ist das von der Stromversorgung der Sensoren und den Dateneingängen möglich?
Und wie lang darf das Kabel zw. Sensor und dem Board max. sein?
Danke für die Hilfe
P.S. noch eine weitere Frage ... der Ultraschallsensor ... klappt das auch bei einem recht engen langen Rohr/Schacht? also wenn der Sensor nicht 100% senkrecht zur Wasseroberfläche angebracht ist ... stören dann nicht die seitlichen Reflektionen von den Schachtwänden, die auch verzögert wieder zurück kommen?
-
sorry, ich verstehe nicht wirklich was Du vor hast!
Ich habe Dir den Ultraschall angeboten, da in Verbindung mit einem ESP8266 Du die Füllstände über Wlan an IOBroker (MQTT-Server) übertragen hast.
Auch die Verdrahtung ist simpel. Der Ultraschallsensor muß aber passen!
Wie weit sind die Beh. entfernt? Ist dort noch WLAN vorhanden? Vermutlich nicht oder? Ist es überhaupt ein Behälter?
Sensoren gibt es viele. Ich habe mal mit einem JSN-SR04T gearbeitet, dieser läuft gut mit einem ESP8266. Bei dem hast Du ein Messwinkel von 75 Grad.
Da muß Du schon den Durchmesser des Beh. kennen,Volumen, die Behälterhöhe und den Einbauort des Sensors. Sonst ist die Plannung für den Poppo.
1526_zisterne-1.png -
Hi
sorry dann habe ich mich missverständlich ausgedrückt. WLAN ist ausreichend vorhanden, meine Frage ist, ob ich am ESP8266 Board oder am LOLIN32-Board (http://amzn.to/2nI0KKo) zwei Sensoren gleichzeitig anschließen kann (dann spare ich mir Board und Stromanschluss einmal).
Und damit zusammenhängend … wie lang dürfen die Kabel A und B sein ... also wie lang darf das 4adrige Kabel vom Sensor bis zum Board maximal sein?
ODER
"Muss" ich das so machen wie in Variante 2 .... also pro Sensor ein Board?
Variante 1:
~~http://up.picr.de/32827734ew.jpg" />
Variante 2:
~~http://up.picr.de/32827737dq.jpg" />
Und die andere Frage betrifft den Sensor … wenn die Zisterne bzw. der Schacht in dem das Wasser ist ... nur einen Druchmesser von 1 Meter hat und 6 Meter tief ist ... muss ich dann beim anbringen des Sensors drauf achten dass er 100% grade ist? oder hab ich da Spielraum? also wie exakt MUSS ich da arbeiten?
Danke~~~~
-
Hi,
ein ESP für zwei Sensoren müßte auch gehen. Hierbei muß man aber den Sketch umschreiben. Es gibt genügend Beispiele was man anpassen könnte.
Dies würde ich aber zum Schluß machen. Versuche erst mit einem Sensor! Zwei Sensoren machen die Sache noch komplizierter. :roll:
Um deine Frage mit der Kabellänge zu beantworten…. Ich würde die Kabel so kurz wie möglich halten. Die ESP´s oberhalb des Wasser-Beh. installieren um die Wlan -Verbindung nicht zu stören. Den Sensor mittig einbauen. Je genauer die Ausrichtung, desto genauer werden die Messergebnisse.
Welche Kabellänge müßtest Du haben? 5m Klingeldraht als Leitung ist da kein Problem. Habe ich selbst so hier zu Hause an meinem Gaszähler so gelöst!
Und bevor Du den Strom dahin legst, Du kannst es vorerst mit minimaler Aufwand auf Funktion testen (Batterie tut es für die Testzwecke auch!).
Erst wenn alles richtig läuft, werden die Kabel fest verlegt.
Das wichtigste aber ist dein Ultraschallsensor. Da habe ich etwas bedenken. Ein JSN-SR04T geht max 6m weit bei einem Abstrahlwinkel vom 75 Grad.
Bei einem Durchmesser von einem Meter bei 6m Tiefe ist es mir schwer zu sagen ob der Sensor plausible Werte liefern kann.
Bei einer Zisterne geht es ohne Probleme, Du hast leider etwas anderes (Schacht, Rohr)?
-
Hi,
Entfernung vom Sensor zur Hauswand wären 6-7 m und zwei Sensoren an einem Board würde 1mal das zweite Board einsparen, und die Stromversorgung vereinfachen wie auch WLAN Empfang usw.
ja das ist richtig, es ist ein Schacht (rund) von einer Drenage-Entwässerung.
Welchen Sensor würdest du ansonsten empfehlen?
Alternativ (aktuelle Messung aber analog!) wäre es 6 Drähte in den Schacht zu hängen und sie auf verschiedenen Höhen abzuisolieren.
Auf dem untersten (im Wasser) ist dann z.B. alle 2min Strom drauf, und ich muss schauen auf welcher "Höhe" also mit welchem weiteren Draht ein "Kurzschluss" entsteht.
Und diese analogen Kurzschlüsse mit verschiedenen Drähten müsste man dann digitalisieren. Wie würde man das denn machen? auch mit einem ESP8266? und wie konkret?
-
Nur so am Rande, es gibt mittlerweile auch Wasserdichte Sensoren, die sicher besser für den Einbau geeignet sind.
Bin auch schon lange am überlegen sowas in meine Zisterne einzubauen.
Du musst nur aufpassen, der Sensor benötigt 5V, der ESP verträgt nur 3,3V. Geht mit einem Spannungsteiler (2 Widerstände) problemlos.
LG
-
Nur so am Rande, es gibt mittlerweile auch Wasserdichte Sensoren, die sicher besser für den Einbau geeignet sind.
Bin auch schon lange am überlegen sowas in meine Zisterne einzubauen.
Du musst nur aufpassen, der Sensor benötigt 5V, der ESP verträgt nur 3,3V. Geht mit einem Spannungsteiler (2 Widerstände) problemlos.
LG `
welchen Sensor meinst Du genau? Den passenden Sensor haben wir nicht gefunden. Und ein JSN-SR04T was hier im Thread erwähnt ist läuft mit 3-5.5V DC. Und es ist auch laut Beschreibung wasserdicht…
-
@knopers1: Asche üner mei Haupt - hab ich mal wieder überlesen
Ja den hab ich eh gemeint
Ich hab trotzdem noch was diesbezüglich gefunden:
https://www.youtube.com/watch?v=N42Y-QOqwtA
Offenbar gibt es unterschiedliche Varianten.
Funktioniert deiner (JSN-SR04T) also direkt mit dem ESP ohne 5V Versorgung? In den Beschreibungen auf Amazon und Aliexpress hab ich überall nur 5V gefunden.
Hast du das Teil auch mal mit Tasmota verwendet? In den neueren Versionen wird da nämlich auch der HC-SR04 unterstütz - ob der aber kompatibel zum JSN-SR04T ist weiß ich aber nicht
Tschuldigung wenn ich den Beitrag unnötig verkompliziert habe.
LG Schubi
-
oder den hier an einen Homematic 0-10V Aktor:
https://shop.loxone.com/deat/ultraschallsensor.html
etwas teurer, aber dafür fix und fertig inkl. Messumformer …
Beste Grüße
-
So inzwischen alles vorbereitet um es einzubauen.
Das Kabel zwischen Sensor und NodeMCU kann recht lang sein, das hat beim Testen wunderbar geklappt, von daher werden die Sensoren vor Ort eingebaut, und dann jeweils ein 4-adriges Kabel bis zur "zentralen" NodeMCU gelegt.
Derzeit versuche ich den Sensor an den ioBroker anzuschließen per MQTT aber das will noch nicht wirklich:
Hier die Passage aus dem Code:
Serial.print("Attempting MQTT connection..."); // Create a random client ID String clientId = "ESP8266ClientDistanzmessung"; //clientId += String(random(0xffff), HEX); // Attempt to connect if (client.connect(clientId.c_str(),userName,passWord)) //if (client.connect(clientId.c_str())) { Serial.println("connected"); //once connected to MQTT broker, subscribe command if any client.subscribe("OsoyooCommand"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 6 seconds before retrying delay(6000); }
Bekomme immer den Fehlerstatus "rc=-2" keine Ahnung was das bedeutet. Der mqtt-Broker/Server auf dem ioBroker läuft.
Weiteres "Projekt" wird dann die Fähigkeit den NodeMCU über html zu updaten, damit ich nicht mehr mit dem Laptop hin muss.
P.S. eine Frage noch … aktuell ist der HC-SR04 an D1/D2 (Trigger&Echo) angeschlossen, GND-GND und Vcc<->Vin? (letzteres verstehe ich nicht, dachte ich kann Vcc(Sensor) an 3V am NodeMCU anschließen?
-
Bei Vin liegt, wenn du die NodeMCU via USB mit Spannung versorgst, normalerweise keine Spannung an.
Nach den Meldungen in diesem Post müdste der Sensor ja eh mit 3.3V funktionieren!
Passieren kann da nichts! -Außer das es nicht geht.
An 5V darfst du das Teil nicht anschließen, das wird die NodeMCU nicht aushalten! - nur mit Spannungsteiler!
-
Bezüglich der Verbindung mit MQTT - ich hab folgenden Code für eine Drehzahlmessung verwendet.
Bin gerade unterwegs - das Editieren ist etwa mühsam, deshalb der gesamte Code.
Die Bemerkung, dass der Broker nicht publishen darf - war nur bei mir, wegen der zeitkritischen Aufgabe erforderlich!
Ich verwende auch nicht den Standardport!
/ #include <arduino.h>#include <esp8266wifi.h>#include <pubsubclient.h>void callback(char* topic, byte* payload, unsigned int length); WiFiClient espClient; PubSubClient client("192.168.0.221", 1888, callback, espClient); volatile unsigned long RPM_T2, RPM_Count; unsigned long RPM , RPM_T1; unsigned long i; //char* message_buff; void callback(char* topic, byte* payload, unsigned int length) { // handle message arrived } //ioBroker darf keine States senden!!!! WWWIIIICCCCHHHTTTTIIIIGGG !!!!!!!! void unterbrechung () { RPM_Count++; RPM_T2 = millis(); // Serial.println("Interrupt"); }; void setup() { pinMode(14, INPUT_PULLUP); RPM_T1 = 0; RPM_T2 = 0; RPM_Count = 0; attachInterrupt ( digitalPinToInterrupt (14), unterbrechung, FALLING); Serial.begin(9600); WiFi.begin("Schubi", "XXX"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.print("Connected, IP address: "); Serial.println(WiFi.localIP()); Serial.println("Start erfolgreich!"); if (client.connect("Engine_1")) { Serial.println("Connected to MQTT broker");} } void loop() { if (RPM_T2 > RPM_T1) { RPM = (unsigned)(long)(60000 * RPM_Count / (RPM_T2 - RPM_T1)); RPM_T1 = RPM_T2; RPM_Count = 0; } else { RPM = 0; } noInterrupts(); client.publish("Engine_1/Drehzahl/", String(RPM).c_str()); interrupts(); //i++; //Serial.print("Drehzahl= "); //Serial.println(RPM); delay(500); }</pubsubclient.h></esp8266wifi.h></arduino.h>