Forum: Mikrocontroller und Digitale Elektronik ESP01-S Wassermelder


von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche aktuell für mein Aquarium einen einfachen Wassermelder zur 
Erkennung von Wasseraustritt im Unterschrank zu erkennen. Falls Wasser 
austritt wird über MQTT eine Nachricht verschickt und ich so alarmiert.

Ich muss direkt dazu sagen, dass ich eher aus der Informatik-Richtung 
komme und Elektrotechnik für mich ein Buch mit 7 Siegeln ist. Daher 
verzeiht mir bitte, wenn ich nicht immer die richtigen Ausdrücke 
verwende und auch auf sehr detaillierte Hilfe angewiesen bin ;-)

Meine Vorlage für mein Vorhaben war folgende Seite:
https://www.smarthome-tricks.de/iobroker-tutorials/wassermelder-fuer-iobroker-ueber-esp8266-und-mqtt/

Im Grunde ist die Kernidee den ESP01-S in den Deepsleep zu schicken und 
2 Drähte so am ESP anzuschließen, dass sie bei Wasserkontakt einen Reset 
des ESPs auslösen. Während des Hochfahrens verbindet sich der ESP dann 
mit dem WLAN und dem MQTT-Broker und setzt die Nachricht ab und geht 
wieder in den Deepsleep.

Die SW-Seite funktioniert soweit auch, d.h. sobald ich den ESP über das 
Batteriepack einschalte wird eine MQTT-Nachricht verschickt und kommt 
auch bei meiner Hausautomatisierung an.

Was ich nicht hinbekomme ist der Reset. Die Schaltung, wie sie auf der 
Seite angegeben ist, scheint bei mir nicht zu funktionieren. Ich habe 
bereits sehr viel im Internet recherchiert und bin noch auf ein 
ähnliches Projekt gestoßen:
https://esp8266-server.de/Wassermelder.html

Grundsätzlich die gleiche Schaltung. Dort wird auch darauf hingewiesen, 
dass es scheinbar unterschiedliche Beschaltungen für den ESP-01s gibt 
und der CH_PD PIN normal hochohmig sein sollte (mehrere 100kOhm).
Bei mir scheint der EN-PIN (CH_PD) einen 12kOhm Widerstand zu haben. Das 
sagt zumindest die Messung mit einem Multimeter zwischen Vdd und CH_PH. 
Die vorgeschlagene Lösung den Widerstand zu entfernen habe ich auch 
gemacht. Jetzt messe ich zwischen Vdd und CH_PD 0 Ohm.
Trotzdem wird beim verbinden der beiden losen Kabel in der Schaltung 
kein Reset ausgelöst.

Ich habe auch gelesen, dass der CH_PD Pin im DeepSleep eigentlich LOW 
sein müsste. Wenn ich den im Betrieb gegen GND messe bekomme ich aber 
2,8V also die Spannung der Versorgung.

Ein Reset wird ausgelöst, wenn ich RST und GND verbinde. Allerdings ist 
das für meinen Usecase nicht hilfreich, weil der ESP erst hochfährt 
sobald ich die Verbindung zwischen GND und RST löse. Solang sie 
verbunden sind hänge ich in einem Dauerreset und die SW kommt nicht 
hoch.

Ich bin echt ziemlich verzweifelt, weil ich das Ganze "wer zieht welchen 
Pin auf High bei welchen Pullup-Widerständen", sprich Elektrotechnik ;-) 
einfach nicht verstehe.

Das hier sind die ESPs, die ich gekauft habe (falls es was hilft):
https://www.amazon.de/dp/B074RL7YR3?tag=kmedien-21&linkCode=ogi&th=1&psc=1

Den Sketch habe ich Euch auch angehängt. Wäre super wenn mir jemand 
sagen könnte woran es liegt bzw. was ich an der Schaltung ändern muss.

Danke & Gruß,
Flo

von Stefan F. (Gast)


Lesenswert?

Florian schrieb:
> Was ich nicht hinbekomme ist der Reset
> Bei mir scheint der EN-PIN (CH_PD) einen 12kOhm Widerstand zu haben.

Das ist normal so. Und deswegen funktioniert die Schaltung auch nicht. 
Der muss auf jeden Fall weg.

Das ESP-01 Modul (ohne s) hat an dem Pin keinen Pull-Up Widerstand.

> Jetzt messe ich zwischen Vdd und CH_PD 0 Ohm.

Dann hast du einen Kurzschluss gebaut.

Du musst die beiden Eingänge des ESP-01 Moduls so beschalten:
1
                           1MΩ
2
    +----(Wasser)----+----[===]---+
3
    |                |            |
4
    |                |    100nF   |
5
    |                +-----||-----+
6
    |  2,2kΩ         |            |
7
    +--[===]--+      |            |
8
    |         |      |            |
9
    o         o      o            o
10
 VCC 3,3V   /Reset   Enable      GND

Außerdem empfehle ich einen 100µF oder 200µF Elko direkt an die 
Anschlüsse VCC und GND des Moduls zu löten. Je näher er am Chip, umso 
besser. Der Kondensator verringert sporadische Aufhänger ganz erheblich.

Da gibt es noch mehrere Fallstricke:

1) Die meisten ESP Module hängen sich auf, wenn die Batteriespannung 
unter 2,8V fällt. Das passiert bei zwei AA Zellen recht schnell.

2) Den Kondensator habe hinzugefügt, damit das Ding nicht auf 
Radiowellen reagiert.

3) Du musst den Chip nach dem Einlegen der der Batterien einmal starten, 
weil er erst danach in den sparsamen Ruhezustand geht.

Ich würde den Sensor lieber mit einer CMOS Logikschaltung aufbauen, die 
den ESP erst bei Alarm mit Strom versorgt. Dazu 4 AA Zellen verwenden 
und einen Spannungsregler mit Enable-Eingang.

Dann wird das Ding mehrere Jahre laufen.

> Ich habe auch gelesen, dass der CH_PD Pin im DeepSleep eigentlich LOW
> sein müsste.

Das ist falsch.

> Ein Reset wird ausgelöst, wenn ich RST und GND verbinde.
> Allerdings ist das für meinen Usecase nicht hilfreich, ...

Es ist aus einem zweiten Grund nicht hilfreich: Solange der Chip im 
Reset-Zustand ist, nimmt er 23mA auf.

Lies http://stefanfrings.de/esp8266/index.html

von STK500-Besitzer (Gast)


Lesenswert?

Einen Taster mit Hilfe eines Zuckerwüfels so belasten, dass der 
Stromkreis offen ist. Sobald sich der Zuckerwürfel auflöst, wird der ESP 
mit Strom versorgt und kann Alarm schlagen.

von Florian (Gast)


Lesenswert?

Danke für die schnelle Antwort.

Das mit dem 12kOhm Widerstand ist mir noch nicht ganz klar.
Dort wo ich den ausgelötet habe muss ich doch die 2 SMD Anschlüsse mit 
Lötzinn verbinden, richtig? Sonst ist ja der Stromkreis nicht mehr 
geschlossen und es geht gar nix. Ohne diese Lötzinn-Verbindung messe ich 
ca 1.600MOhm zwischen Vdd und EN. Sobald ich die Verbindung mit Lötzinn 
schließe sind es 0 Ohm und der ESP funktioniert wieder.

Das mit dem Kurzschluss verstehe ich daher nicht. Wie soll ich sonst den 
Widerstand "ausbauen"?

Den Rest der Schaltung probiere ich morgen mal aus. Ist schon etwas 
spät.

Danke nochmal!
Gruß,
Flo

von Spess53 (Gast)


Lesenswert?

HI

>Ich muss direkt dazu sagen, dass ich eher aus der Informatik-Richtung
>komme und Elektrotechnik für mich ein Buch mit 7 Siegeln ist.

Dann kaufe dir ein ordentliches Aquarium. Meine Eltern und meine 
Schwiegereltern hatten vor Jahrzehnten Aquarien die über mehr als 20 
Jahre dicht geblieben sind. Gibt es das heutzutage nicht mehr?

MfG Spess

von Florian (Gast)


Lesenswert?

hi Spess,

wem genau hilft dieser "Tipp"?
Wenn ich nach Ratschlägen bei der Aquarienauswahl suche schreib ich in 
ein Aquaristikforum.

BTW besitze ich ein Becken der Firma Emmel. Das ist so mit die 
renommierteste Firma für Aquarienbau in Deutschland.

Ich möchte trotzdem einen Warnmelder. Sicher is sicher...

Gruß,
Flo

von STK500-Besitzer (Gast)


Lesenswert?

Florian schrieb:
> Ich möchte trotzdem einen Warnmelder. Sicher is sicher...

Wenn das Wasser im Unterschrank steht, ist es doch eh zu spät.

von Florian (Gast)


Lesenswert?

Hallo nochmal,

funktioniert leider immer noch nicht.
Aus deiner Schaltung geht für mich leider auch noch nicht hervor, wo ich 
+/- des Batteriepacks anschließen muss.

Ist wahrscheinlich ne echt dumme Frage, aber ich weiß es einfach nicht 
;-)

Danke & Gruß,
Flo

von Stefan F. (Gast)


Lesenswert?

Florian schrieb:
> Dort wo ich den ausgelötet habe muss ich doch die 2 SMD Anschlüsse mit
> Lötzinn verbinden, richtig?

Nein. Du willst doch, dass der Enable Eingang nur dann auf HIGH geht, 
wenn Wasser ausläuft.

Mit dem 12kΩ Widerstand hast du folgende Situation:
1
  +---(Wasser)---+
2
  |              |
3
  +----[===]-----+  12k
4
  |              |
5
  o              o
6
 VCC           Enable

Da ist nichts, was den ENABLE Eingang auf LOW (GND) zieht. Er liegt 
immer auf HIGH, der CHip ist immer aktiv.

Nun ersetzt du ihn durch Zinn:
1
  +---(Wasser)---+
2
  |              |
3
  +--------------+
4
  |              |
5
  o              o
6
 VCC           Enable

Da ist immer noch nichts, was den Eingang auf LOW zieht, zudem hast du 
deinen Wassersensor faktisch überbrückt, also wirkungslos gemacht.

Was du brauchst habe ich oben skizziert.

von Stefan F. (Gast)


Lesenswert?

Spess53 schrieb:
> Dann kaufe dir ein ordentliches Aquarium. Meine Eltern und meine
> Schwiegereltern hatten vor Jahrzehnten Aquarien die über mehr als 20
> Jahre dicht geblieben sind. Gibt es das heutzutage nicht mehr?

Sowohl am Becken als auch an den Schläuchen und dem Filter kann immer 
mal ein Leck entstehen. Und sei es nur Kondenswasser, dass sich irgendwo 
sammelt.

So ein Wassermelder kann helfen, teure Schäden zu vermeiden. Wer ein 
Aquarium betreibt, sollte so etwas benutzen. Wenn unsere Waschmaschine 
so ein Ding nicht integriert hätte, würde ich auch eins hinter die 
Waschmaschine legen.

von Stefan F. (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Wenn das Wasser im Unterschrank steht, ist es doch eh zu spät.

Es macht aber schon einen gewaltigen Unterschied, ob man das Leck (so 
wie in meinem Fall) früh nach 200ml bemerkt oder erst nach 100 Litern.

In unserem Haus besteht der Boden aus Holzbalken. Mal abgesehen davon, 
dass die Frau unter schon extremst angepisst war, als wir ein Leck in 
der Badezimmerwand hatten, möchte mir gar nicht ausmalen, welche Folgen 
schimmelnde Balken unter meinen Füßen haben.

von my2ct (Gast)


Lesenswert?

Florian schrieb:
> Meine Vorlage für mein Vorhaben war folgende Seite:
> 
https://www.smarthome-tricks.de/iobroker-tutorials/wassermelder-fuer-iobroker-ueber-esp8266-und-mqtt/

Sind die Leute heutzutage nicht mehr in der Lage, wenigstens den 
simpelsten Aufbau in Form eines lesbaren Schaltplanes darzustellen?

von Florian (Gast)


Lesenswert?

Besten Dank Stefan!
Hab's jetzt schlussendlich hinbekommen und es funktioniert wie erwartet.

Im Deepsleep braucht er jetzt 0,18mA was mit dem übereinstimmt, was ich 
bisher so gelesen habe.

Eine letzte Frage hätte ich noch... Status-LED zerstören ja/nein?
Die LED leuchtet ja nur kurz beim Booten und wird im deepsleep ja nicht 
genutzt. Macht also keinen Sinn die auszulöten oder zu zerstören, 
richtig?

Danke und schönes Wochenende noch,
Flo

von Stefan F. (Gast)


Lesenswert?

Florian schrieb:
> Im Deepsleep braucht er jetzt 0,18mA was mit dem übereinstimmt, was ich
> bisher so gelesen habe.

Das ist aber noch sehr viel! Es sollten ca. 0,025mA sein.

Lass die LED mal lieber drin. Im Vergleich zur Funkschnittstelle 
verbraucht sie sehr wenig Strom.

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Oh... hmm... woran kann das liegen?
Ich hatte keinen 2,2kOhm Widerstand und hab einen mit 2kOhm genommen. 
Problem?
 Unsauber gelötet?

Anbei noch ein Foto des hässlichen Entleins :-)

Gruß,
Flo

von Stefan F. (Gast)


Lesenswert?

Florian schrieb:
> Oh... hmm... woran kann das liegen?

Woran kann was liegen?

> Ich hatte keinen 2,2kOhm Widerstand und hab einen mit 2kOhm genommen

Sind die vertauscht? An den Reset Pin (links) gehört der (ungefähr) 
2,2kΩ Widerstand und an den Enable Pin (rechts) der (ungefähr) 1MΩ 
Widerstand mit Kondensator.

Messe die Spannungen nach. Beide müssen auf HIGH liegen, damit das Ding 
aktiv wird.

von Florian (Gast)


Lesenswert?

Hi,

also die Widerstände sollten richtig rum sein. Hab sowohl die 
Farbcodierungen nochmal verglichen, als auch im verlöteten Zustand 
nochmal gemessen.
- Zwischen VDD und RST messe ich ca. 1,7kOhm
- Zwischen GND und EN messe ich ca 0,293MOhm

Wieso eigentlich bei beiden unter den Werten der eingelöteten 
Widerstände?
Ich vermute mal ich messe im verlöteten Zustand damit nicht den Weg über 
die Widerstände sondern die Schaltung in die andere Richtung, weil dort 
der Widerstand jeweils kleiner ist, richtig?
Sehen die Werte plausibel aus?

Spannung hab ich im Betrieb auch nochmal gemessen.
- Nach dem Einschalten, d.h. ohne ersten Wasserkontakt messe ich 
zwischen GND und EN 0V
- Wenn die Leitungen im Wasser hängen sind es ~2,5V zwischen GND und EN

Zu guter Letzt nochmal Strom gemessen:
- beim ersten Mal Leitungen ins Wasser hängen ~120mA
- nachdem ich die Leitungen dann aus dem Wasser nehme 18uA... 
wahrscheinlich hab ich gestern einfach falsch abgelesen am Multimeter.

Passt damit alles? Schauen alle Werte vernünftig aus? ;-)

Danke nochmal!
Flo

von Stefan F. (Gast)


Lesenswert?

Florian schrieb:
> Wieso eigentlich bei beiden unter den Werten der eingelöteten
> Widerstände?

Weiß nicht, vielleicht ist dein Messgerät doof.
Solange die Messpannung wie üblich unter 0,3V ist, sollte dabei kein 
Messfehler entstehen.

Passt damit alles? Schauen alle Werte vernünftig aus?

Ja, abgesehen von den Widerstandswerten. Aber da Spannungen und Ströme 
passen, sind die Widerstände wohl auch in Ordnung.

von Roger (Gast)


Lesenswert?

Hallo!
Ich hänge genau an der gleichen Stelle, wie Florian und mir hilft der 
Beitrag sehr zum Verständnis.
Allerdings bin ich fachlich hinter Florian :-)
Ich weiss nicht wo genau der Widerstand ist, den ich auslöten soll.
Kann mir da jemand helfen?
Es geht um den ESP01S.
Danke & Grüße,
Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Ich weiss nicht wo genau der Widerstand ist, den ich auslöten soll.
> Kann mir da jemand helfen?
> Es geht um den ESP01S.

Und es geht um den Pull-Up Widerstand am Enable Eingang.

Das Datenblatt vom ESP Chip sagt dir, welcher Pin am Chip der Enable 
Eingang ist. Dann suchst du mit einem Multimeter (Durchgangsprüfer) den 
Widerstand, der direkt mit diesem Pin und VCC verbunden ist.

Nach meinem Kenntnisstand hat das ESP-01(S) Modul keinen Pull-Up 
Widerstand am Enable Eingang.

Falls doch: überlege dir vorher ob du so fein löten kannst. Die Bauteile 
sind brutal klein.

von Brain 2.0 (Gast)


Lesenswert?


von Roger (Gast)


Lesenswert?

Hallo und Danke für die schnellen Antworten.
Wenn der ESP01S keinen Widerstand hat, dann umso besser. Dann kann ich 
mir das sparen.
Allerdings messe ich genau wie Florian im Eingangs Thread die 12kOhm 
Widerstand zwischen EN und den 3,3V.
Wie kann ich es dann hinbekommen, dass der Reset ausgelöst wird?
Danke & Grüße,
Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Wie kann ich es dann hinbekommen, dass der Reset ausgelöst wird?

Den Widerstand finden und entfernen.

von Forist (Gast)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Auf manchen Leitungen ist im Schaltplan ein "X". Weiss jemand was das 
bedeutet?

Der Schaltplan ist mir suspekt. Demnach ist GPIO16 herausgeführt, aber 
weder beim ESP-01 noch beim ESP-01S ist einer der 6 Pins so beschriftet. 
Soweit ich weiß gibt es bei beiden Modulen zudem keine interne 
Verbindung zwischen GPIO16 und dem Reset Eingang.

Hier ist der Plan vom Hersteller AI-Thinker vom ESP-01 (ohne Pull-Up): 
https://www.microchip.ua/wireless/esp01.pdf

AZ-Delivery hat für das ESP8266-01S Modul diesen Plan (mit Pull-Up): 
https://www.tutos.eu/vault/3506ESP8266_01S_Modul_Datenblatt.pdf

Offenbar sind ESP8266-01S und ESP-01S identisch.

von Brain 2.0 (Gast)


Lesenswert?

Da hat der von mir zitierte Artikel offensichtlich ein falsches 
Schaltbild eingefügt, sorry....
Im Schaltbild von AZ sind di ja eindeutig vorhanden. Aber da wurde ein 
falsches Bild des ESP abgelichtet.

Ich werde meine ESP8266-01S mal nachmessen.
Sollte aber mit Widerstand sein.

von Stefan F. (Gast)


Lesenswert?

Brain 2.0 schrieb:
> Aber da wurde ein
> falsches Bild des ESP abgelichtet.

Ja ist mir auch aufgefallen.

Schlampige Doku scheint in China Standard zu sein - immer noch.

von Rainer V. (a_zip)


Lesenswert?

Stefan ⛄ F. schrieb:
> Schlampige Doku scheint in China Standard zu sein - immer noch.

Das ist nicht notwendigerweise schlampig. Sie machen es halt wie die 
meisten C&P-Junkies, nur dass sie auch noch mit der völlig bescheuerten 
Schrift zurecht kommen müssen...und das klappt doch mittlerweile schon 
richtig gut! Wenn ich an die frühen Dokumente aus China (natürlich nicht 
nur von dort, aber...), dann ist man heute richtig begeistert :-)
Gruß Rainer

von Roger (Gast)


Lesenswert?

Hallo,
ich habe den Widerstand gefunden und durchtrennt.
Allerdings funktioniert der Vorschlag hier aus der Diskussion bei mir 
nicht:
1
                      1MΩ
2
    +----(Wasser)----+----[===]---+
3
    |                |            |
4
    |                |    100nF   |
5
    |                +-----||-----+
6
    |  2,2kΩ         |            |
7
    +--[===]--+      |            |
8
    |         |      |            |
9
    o         o      o            o
10
 VCC 3,3V   /Reset   Enable      GND

Allerdings die einfachere Variante aus dem Ursprungslink funktioniert:
1
                      1MΩ
2
    +----(Wasser)----+----[===]---+
3
    |                |            |
4
    |                |    100nF   |
5
    |                +-----||-----+
6
    |                             |
7
    |                             |
8
    |                             |
9
    o                             o
10
 Enable                          GND

Nun bin ich nicht sicher, ob das ein Problem bedeutet, oder alles OK 
ist?
Für einen Hinweis wäre ich wieder mal sehr dankbar.

Danke & Grüße, Roger

von Stefan F. (Gast)


Lesenswert?

So zieht das Wasser den Enable Eingang auf LOW (disable) und ohne Wasser 
hat der Pin nun wahrscheinlich einen undefinierten Zustand. Ich glaube 
nicht das das so funktioniert. Hast du mal die Stromaufnahme 
kontrolliert?

Du hast doch sicher ein Multimeter mit dem du die Spannung an Reset+GND 
sowie Enable+GND messen kannst. Reset muss immer (annähernd) 3,3V haben. 
Und bei Enable bewirken 3,3V dass der Chip aktiv ist und 0V dass er 
deaktiviert wird.

von Brain 2.0 (Gast)


Lesenswert?

Eine sichere und bessere Alternative wäre die Verwendung des analogen 
Pins mit einem vorgeschalteten Transistor. So lässt sich auch die 
Ansprechschwelle über den analogen Wert bestens einstellen.

von Roger (Gast)


Lesenswert?

Boah bist Du immer so schnell :-)
Also es sind bei beiden immer annähernd 3,3V.

Aber die Software versetzt den ESP ja immer beim Hochfahren direkt in 
den DeepSleep. Ist dadurch nicht der Zustand definiert?
Und nur wenn Wasser EN und GND verbindet fährt er wieder hoch, meldet 
„Wasserschaden“ und geht direkt wieder in den DeepSleep.

Eigentlich so, wie ich es gerne hätte.

von Brain 2.0 (Gast)


Lesenswert?

Oh, sorry, der ESP8266-01 hat ja keinen analogen Pin. Also einen Wandler 
auf I2C davor und gut ist.

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Also es sind bei beiden immer annähernd 3,3V.

Dann hast du offenbar den falschen Widerstand entfernt.

> Aber die Software versetzt den ESP ja immer beim Hochfahren
> direkt in den DeepSleep. Ist dadurch nicht der Zustand definiert?

Welcher zustand? Ich habe von den Pegeln an den Eingängen geschrieben. 
Wenn die nicht in Ordnung sind kann die Software nicht richtig arbeiten.

> Und nur wenn Wasser EN und GND verbindet fährt er wieder hoch,

Das ist falsch herum, kann eigentlich nicht sein. Schau ins Datenblatt 
des ESP8266, wie dort der Enable Eingang beschrieben ist.

> Eigentlich so, wie ich es gerne hätte.

Hast du die Stromaufnahme gemessen?

@Brain 2.0
Deine Vorschläge gehen am Sinn der Schaltung vorbei. Sie soll im 
Ruhezustand nur 10µA aufnehmen!

von Brain 2.0 (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Sie soll im
> Ruhezustand nur 10µA aufnehmen!

Ok, dann macht es so keinen Sinn.
Sorry, war mit entfallen.

von Roger (Gast)


Lesenswert?

Wie den falschen Widerstand entfernt? Ahhh…
War der einzige, den ich mit 12K finden konnte und er war unmittelbar 
neben dem EN Pin, wie von Dir vermutet.

Strommessen muss ich am Sonntag probieren.

Aber derzeit ist es so, dass die Software per HTTP den Befehl in der 
Haussteuerung auslöst, wenn ich:
- die Batterie einsetze
- die Kontakte ins Wasser halte

von Stefan F. (Gast)


Lesenswert?

Stecke das Modul mal von allem ab und messe dann mit dem Multimeter im 
20kΩ bereich zwischen dem Enable Pin und VCC. Was zeigt dein gerät an?

Wenn du den richtigen Widerstand entfernt hast muss es "0L" (unendlich) 
anzeigen.

von Roger (Gast)


Lesenswert?

Hallo Stefan,
sorry hat etwas gedauert.
Du hattest Recht! Hab den falschen Widerstand zerstört.
Der hatte zwar 12K aber zwischen EN und VCC messe ich nun immer noch 12K 
:-(
Bin so langsam überfragt...
Wäre denn ein anderes Modul für dieses Projekt zu empfehlen?
Obwohl ich ja von diesen ESP01S noch ein paar zum Testen hätte.
Finde nur leider sonst keinen 12K Widerstand.
Danke, Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Wäre denn ein anderes Modul für dieses Projekt zu empfehlen?

Ja, das ESP-01 ohne S.

Ich benutze meistens das ESP-12F, bei dem kann ich mit selbst ausdenken 
wo ich welche Pull-Widerstände (extern) anschließe. Dafür ist es etwas 
größer.

von Roger (Gast)


Lesenswert?

Hi Stefan,
ich dachte der ESP-01(S) wäre gerade für den Batteriebetrieb des 
Wassermelders prädestiniert.
Ist der ESP-12F ähnlich gut für den Batteriebetrieb?
Und funktioniert die obige Schaltung genauso?
Danke, Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> ich dachte der ESP-01(S) wäre gerade für den Batteriebetrieb des
> Wassermelders prädestiniert.

Nee, die S Version ist dafür die falsche, wegen dem Pull-Up Widerstand.

> Ist der ESP-12F ähnlich gut für den Batteriebetrieb?

Ja. Der hat gar keine Pull-Widerstände. Man beachte die Hinweise auf 
http://stefanfrings.de/esp8266/index.html#esp12

> Und funktioniert die obige Schaltung genauso?

Du musst einen zusätzlichen Widerstand an GPIO15 hinzufügen, wie auf der 
Webseite gezeichnet.

von Roger (Gast)


Angehängte Dateien:

Lesenswert?

Hi Stefan,
wow nicht schlecht! Was würde ich ohne Dich tun :-)
Habe jetzt mal dein Bild von der Webseite versucht anzupassen auf den 
Wassermelder.
Passt das so?
VIELEN DANK!
Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Passt das so?

Nein völlig falsch. Schau dir dein Bild nochmal an.

VCC ist die Stromversorgung, die hast du durch das Wasser unterbrochen. 
Außerdem wolltest du nicht einen 1MΩ Widerstand und einen Kondensator 
unterbringen?

Hast du dir Gedanken darüber gemacht, wie du dein Programm (Sketch) in 
das Modul downloadest?

Mich wundert, warum du ohne Ahnung dein eigenes Ding drehen willst. 
Halte dich doch einfach an die ursprüngliche Anleitung, dann 
funktioniert das auch!

> Du musst die beiden Eingänge des ESP-01 Moduls so beschalten:
1
                           1MΩ
2
    +----(Wasser)----+----[===]---+
3
    |                |            |
4
    |                |    100nF   |
5
    |                +-----||-----+
6
    |  2,2kΩ         |            |
7
    +--[===]--+      |            |
8
    |         |      |            |
9
    o         o      o            o
10
 VCC 3,3V   /Reset   Enable      GND

> Außerdem empfehle ich einen 100µF Elko direkt an die Anschlüsse
> VCC und GND des Moduls zu löten. Je näher er am Chip, umso
> besser. Der Kondensator verringert sporadische Aufhänger ganz
> erheblich.

> Die meisten ESP Module hängen sich auf, wenn die Batteriespannung
> unter 2,8V fällt. Das passiert bei zwei AA Zellen recht schnell.

> Du musst den Chip nach dem Einlegen der der Batterien einmal
> starten, weil er erst danach in den sparsamen Ruhezustand geht.

von Roger (Gast)


Lesenswert?

Hallo Stefan,
sorry für meine elektronische Unwissenheit!
Ich möchte auch gar kein "eigenes Ding" drehen.

Aber Du hattest mir noch den Hinweis gegeben, dass ich den GPIO15 
ebenfalls mit einem Widerstand verbinden muss.
Das fehlt mir in dem Originalplan:
1
                        1MΩ
2
    +----(Wasser)----+----[===]---+
3
    |                |            |
4
    |                |    100nF   |
5
    |                +-----||-----+        ???
6
    |  2,2kΩ         |            |         |
7
    +--[===]--+      |            |         |
8
    |         |      |            |         |
9
    o         o      o            o         o
10
 VCC 3,3V   /Reset   Enable      GND      GPIO15

Guter Punkt mit der ESP12F Programmierung....
https://www.amazon.de/dp/B083QHJW21
Habe das gefunden. Ist allerdings ziemlich teuer. Wüßte jetzt aber keine 
Alternative.

Danke & Grüße,
Roger

von Roger (Gast)


Lesenswert?

Alternativ zur Programmierung habe ich noch das hier gefunden:
https://www.youtube.com/watch?v=_iX67plFeLs

Adapter https://www.amazon.de/dp/B01NASA1MV mit Breadboard Netzteil 
https://www.amazon.de/dp/B06X962SPW

von Roger (Gast)


Lesenswert?

Roger schrieb:
> Alternativ zur Programmierung habe ich noch das hier gefunden:
> https://www.youtube.com/watch?v=_iX67plFeLs
>
> Adapter https://www.amazon.de/dp/B01NASA1MV mit Breadboard Netzteil
> https://www.amazon.de/dp/B06X962SPW

Da kommt noch ein USB zu TTL Serial Adapter dazu...

von Stefan F. (Gast)


Lesenswert?

So  geht das bei den ESP-12 Modulen
1
                           1MΩ         2,2kΩ
2
     +----(Wasser)----+----[===]---+---[===]---+
3
     |                |            |           |
4
     |                |    100nF   |           |
5
     |                +-----||-----+           |
6
     |  2,2kΩ         |            |           |
7
     +--[===]--+      |            |           |
8
     |         |      |            |           |
9
     o         o      o            o           o
10
  VCC 3,3V   /Reset   Enable      GND        GPIO15

von Roger (Gast)


Lesenswert?

Evtl. so?
1
                           1MΩ
2
    +----(Wasser)----+----[===]---+
3
    |                |            |
4
    |                |    100nF   |
5
    |                +-----||-----+         
6
    |  2,2kΩ         |            |  2,2kΩ      
7
    +--[===]--+      |            +--[===]--+
8
    |         |      |            |         |
9
    o         o      o            o         o
10
 VCC 3,3V   /Reset   Enable      GND      GPIO15

von Roger (Gast)


Lesenswert?

Oh Du warst schneller!
Dann zieh ich mich mal in den Keller zurück :-)

VIELEN DANK FÜR DIE GEDULD!!!
Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Evtl. so?

Ja

Denke daran dass du zum Firmware download den GPIO0 mit GND verbinden 
musst. Bestücke deine Platine dazu am Besten mit einem Taster.

von Roger (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Stefan!
Habe nun umgestellt auf den ESP-12F.
Der Programmer hat einwandfrei funktioniert.
Beim Start kommt auch die Meldung in meiner Haussteuerung an.
Allerdings habe ich das gleiche Problem wie vorher.
Der Reset funktioniert einfach nicht :-(
Schaltung habe ich wie oben beschrieben aufgebaut.
Würde ein Bild meiner Schaltung was bringen?
Danke & Grüße,
Roger

von Stefan F. (Gast)


Lesenswert?

Welche Spannungen misst du zwischen GND und dem CH_PD Eingang in

a) trockenem Zustand
b) mit Wasser?

> Würde ein Bild meiner Schaltung was bringen?

verdrahtung.jpg reicht mir, wenn du es wirklich so aufgebaut hast.

von c-hater (Gast)


Lesenswert?

Florian schrieb:

> Ich muss direkt dazu sagen, dass ich eher aus der Informatik-Richtung
> komme und Elektrotechnik für mich ein Buch mit 7 Siegeln ist.

Das sollte aber nicht so sein. Wurde irgendwann das Grundstudium 
abgeschafft?

von Stefan F. (Gast)


Lesenswert?

Hast du nur die kleinen Spitzen der Dupon Kabel in einen Becher Wasser 
gehalten? Die haben womöglich zu wenig Kontaktfläche.

Beim meinem letzten Wassermelder habe ich Kupfer-Folie auf den Boden des 
Gehäuses geklebt. Zwei Streifen mit jeweils 1 cm x 6 cm.

> Der Reset funktioniert einfach nicht

Dein Sensor betätigt ja auch nicht den Reset Pin, sondern den Enable 
Pin. Also wenn da etwas nicht funktioniert, dann der Start bzw. 
Power-Down. Das meintest du vermutlich.

von Roger (Gast)


Lesenswert?

Hallo Stefan,

hab nun Zeit gefunden zu testen.

> Welche Spannungen misst du zwischen GND und dem CH_PD Eingang in
> a) trockenem Zustand
> b) mit Wasser?

a) 3,3V
b) 3,3V

Ist es ein Unterschied, ob die Kabelenden im Wasser sind, oder direkt 
verbunden werden?
Habe auf jeden Fall beides ausprobiert und immer das gleiche Ergebnis 
und auch jeweils die 3,3V zwischen GND und EN.

Also der ESP geht ja in den deepsleep Modus und das erwünschte Ergebnis 
wäre, dass er neu startet, wenn Wasser die beiden Kontakte verbindet.

Habe auch nochmal die Verkabelung geprüft und ich denke (hoffe), dass 
das genauso ist, wie im Bild.

Ich vermute aber mal, dass die 3,3V für a und b nicht korrekt sind :-(

Danke & Grüße,
Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
>> a) trockenem Zustand
>> b) mit Wasser?

> a) 3,3V
> b) 3,3V

Das heißt: Dein Wasser Sensor funktioniert nicht.

Irgend etwas zieht dir deinen Enable Eingang immer noch auf HIGH. Deine 
Schaltung entspricht nicht dem Plan.

Kann es sein, dass dieses mir unbekannte Board schon wieder 12kΩ Pull-Up 
Widerstände enthält, wie zuvor dein ESP-12S?

> Also der ESP geht ja in den deepsleep Modul

Dieser Pin hat nichts mit Deep-Sleep zu tun, sondern er aktiviert den 
Power-Down Modus. Aber bei LOW Pegel (also annähernd Null Volt)! Bei 
3,3V ist der Chip hingegen enabled.

Du brauchst am Enable (CH_PD) Pin ohne Wasser LOW Pegel und mit Wasser 
HIGH.

von Roger (Gast)


Angehängte Dateien:

Lesenswert?

Hi Stefan,
es ist das ESP-12F Board.
Wenn ich direkt auf dem Board zwischen EN und VCC den Widerstand messe 
(siehe ESP12F.jpg), dann habe ich 3,4MΩ und der Wert steigt stetig???
Wenn ich auf dem Prgrammer Board zwischen EN und VCC den Widerstand 
messe (siehe ESP12F-Prgrammer.jpg), dann erhalte ich 8,7KΩ.
Grüße, Roger

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> und der Wert steigt stetig???

Das kann sein, weil der Chip gerade keine Stromversorgung hat. Durch die 
ESD Schutzdioden fließt ungewollt Strom, der diverse Kondensatoren 
auflädt.

Roger schrieb:
> Wenn ich auf dem Prgrammer Board zwischen EN und VCC den Widerstand
> messe (siehe ESP12F-Prgrammer.jpg), dann erhalte ich 8,7KΩ.

Also lass dieses Board weg oder fange nochmal ganz vorn vorne an: Suche 
den Widerstand und entferne ihn. Täglich grüßt das Murmeltier.

von Roger (Gast)


Lesenswert?

Was meinst Du mit lass dieses Board weg?
Verkabelung ohne das Programmer Board aufbauen?

von Stefan F. (Gast)


Lesenswert?

Roger schrieb:
> Was meinst Du mit lass dieses Board weg?
> Verkabelung ohne das Programmer Board aufbauen?

Langsam wird es anstrengend.

Du hast festgestellt, dass dein Programmer Board einen Widerstand 
enthält, der sich in deinem Anwendungsfall störend auswirkt. Also muss 
entweder das ganze Programmer Board weg, oder der Widerstand.

Ich würde das Board unverändert lassen, denn wenn du dort den Widerstand 
entfernst, wird der ESP (ohne externe Beschaltung) nicht mehr starten 
und deswegen nicht programmierbar sein.

Erinnere dich, warum du vom ESP-01S zum ESP-12F gewechselt hast: Weil du 
damit den störenden Widerstand los wirst. Nur hast du dich schon wieder 
nicht an meine Empfehlung gehalten. Anstatt ein "nacktes" ESP-12F Modul 
hast du ein Board mit zusätzlichen Widerständen darunter gelegt.

Dieser ganze Aufbau funktioniert nur ohne Pull-Up Widerstand am Enable 
Pin, denn du willst ihn mit 1 Megaohm herunter ziehen können.

Mehr kann ich dir da auch wirklich nicht mehr helfen. Mache das nach 
Plan oder gib das Projekt auf.

von Roger (Gast)


Lesenswert?

Hallo Stefan!
Ich kann verstehen, dass das nervt.
Unwissenheit kann sehr anstrengend sein.
Daher werde ich die Diskussion hier auch einstellen.
Es gibt ja inzwischen in diesem Verlauf sehr viel Information und 
zusätzlich ist auf deiner Seite noch jede Menge Material.
Sollte ich irgendwann zum Ziel kommen, werde ich hier noch eine 
Erfolgsmeldung posten.
Auf jeden Fall möchte ich mich aber bei Dir für deine Geduld und deine 
sehr ausführlichen Antworten bedanken!
Selbst wenn ich das Projekt nicht hinbekommen, habe ich hier einiges 
dazu gelernt :-)
Danke & viele Grüße,
Roger

von Andreas C. (Firma: Gast) (andy_c)


Lesenswert?

Hallo,
wie die Kollegen schon gesagt haben… erst der ESP01S… (das Problem mit 
dem Pullup beim „S“ wusste ich auch nicht, dann der D1 (keine 
Alternative zum 12F sondern er ist die Basis, hat noch Einiges mehr 
dabei.. z. B. hat er 10k Pullup). Wenn du den D1 verwenden willst, 
funktioniert das wenn du den Widerstand auslötest und dann !nicht! 
brückst. Für die genaue Schaltung kannst du bei Otto nachschauen… 
(Google Suche (otto's technik blog wassermelder) Alles gut erklärt und 
läuft bei mir aktuell auf einem D1 mit ausgelotetem Pullup… 
wahrscheinlich reicht dir die erste Stufe, kannst du per MQTT -> LWT: 
connected abfragen. Dann brauchst du den höheren Spike für hören 
Wasserstand nicht bei dir.

Viele Grüße, Andy

von Hannes (Gast)


Lesenswert?

Hallo,

herzlichen Dank an Stefan. Bin auch Laie, aber habe die Schaltung 
nachgebaut und es funktioniert mit dem ESP01S (ESP01 ohne s sind 
offenbar nicht mehr erhältlich).

Vielleicht noch mal die Zusammenfassung, was zu tun ist:

- (Pullup)Widerstand von CH_PD am ESP01s suchen (alle Widerstände gegen 
CH_PD messen - wo es 0 Ohm sind oder es beept hat man ihn gefunden - 
sicherheitshalber gegen alle Widerstände testen, damit man sich nicht 
irgendwo vermessen hat)
- Widerstand ausbrechen mit Zange (oder auslöten) (KEINEN DRAHT 
EINLÖTEN!)
- Schaltung gemäß Stefan aufbauen
- Coden (beim Einschalten (=Wasser) einfach per Wifi einen Alarm an MQTT 
für Home Assistant senden, mit dem ich dann auch eine Telegram 
Benachrichtigung erhalte)

Schöne Grüße
Hannes

von Christian (Gast)


Lesenswert?

Moin Hannes,
ich möchte das Thema noch einmal aufgreifen, da ich aktuell eine 
komplette Doku erstelle mit Bildern, für alle die hier Probleme haben.
Aktuell stehe ich vor dem Problem, das ich keine Nachricht auf meine 
Home Assistant bekomme.
Könntest du eventuell deinen Code (Arduino) sowie (Home Assistant) als 
Muster zur Verfügung stellen?
Ich z.B hänge hier     state_topic:      egal was ich dort eintrage... 
es wird kein Sensor gefunden.

von Busmaster (Gast)


Lesenswert?

Sieh dir mal esphome auf dem homeassi an. ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.