Türklingeldraht mit Störspannung an nodeMCU

Hi Leute,

mit Programmierung kenne ich mich recht gut aus, mit Elektrotechnik leider nicht.
Mit Hilfe eines NodeMCUs möchte ich feststellen, ob ein externer Schalter gedrückt ist. Das funktioniert im Labor auch gut. In Reallife leider nicht.

In meinem Fall ist der Taster mein Türklingeltaster vorne an der Eingangstür. Die beiden daran angeschlossenen Klingeldrähte verlaufen quer durchs Haus bis unten in den Keller in den Sicherungskasten. Dort ist auch mein NodeMCU angeschlossen.

Ein Kabelende ist an D1 Pin, definiert als INPUT_PULLUP angeschlossen.
Das andere Kabelende ist an GND angeschlossen.

Jetzt zeigt sich das Verhalten, dass der inputstate “willkürlich” zwischen LOW und HIGH wechselt. Ich habe im Netz gelesen, dass hier ein externer pullup Widerstand genutzt werden kann. Aber woher weiss ich wieviel Ohm ich brauche und wie schließe ich den dann überhaupt an?

Danke im Voraus

Miss mal mit einem Multimeter nach, was das Kabel tatsächlich hergibt. Weil mit pullup sollte es auch bei Kabelbruch immer high ausgeben. Und dass das Kabel aleatorische Störungen einfängt, die stärker als der Pullup sind, kannst du einen Widerstand von 500 Ohm zwischen 5V und dem Eingangspin machen.

Aber eher wird es an der Benutzung von D1 liegen, der wird beim nodemcu für die serielle Schnittstelle verwendet. Nimm D2
Ist doch nicht so. Hab D1 mit GPIO1 verwechselt.

Bei so langen Antennen bekommst du auch mit kleineren Pullup Probleme mit dem Störabstand.

Ich rate zu einem Optokoppler.
So kannst du Spannung und Strom auf der langen Seite recht hoch ansetzen (Stromschnittstelle mit 20mA hat sich bewährt)
Und hast direkt am Nodemcu gute Spannungspegel.

Wenn du den internen Pullup weiter lassen willst, dann musst du einen zusätzlichen externen Pullup-Widerstand gegen VCC, also +3,3V schalten.

Die Größe des Widerstandes hängt sehr von den vorhandenen Störungen ab und kann durchaus zwischen 4k7 und 500 Ohm liegen.
Sollten die Störungen nicht verschwinden, muss evtl. ein Transistor oder Relais zwischen geschaltet werden.

wow, das nenne ich mal Unterstützung! Danke Leute. Leider kann ich mein Multimeter nirgends finden. Bin eh kurz vor dem Nervenzusammenbruch. Werde morgen weitermachen. Auf jeden Fall schonmal riesen DANK

Stefan

Die 20 mA Stromschleife auf den Optokoppler ist am störfestesten.

Gruß Tommy

moin Jungs,

habe meine Multimeter endlich gefunden. Sehr interessante Erkenntnis. Setze ich D1 auf Pullup messe ich 2,7V
Setze ich hingegen D2 auf Pullup kommen erwartungsgemäß 3,3V raus. Vielleicht löse ich damit schon mein Problem.

EDIT: Nein, Problem besteht nach wie vor. Das Merkwürdige ist. Sobald ich nur eines der beiden Kabel, die an meinen Türklingeltaster hängen, mit D2 verbinde, löst die Überprüfung auf LOW aus. Keine Ahnung wie das möglich ist.

Stefan

StefanHaupt:
moin Jungs,

habe meine Multimeter endlich gefunden. Sehr interessante Erkenntnis. Setze ich D1 auf Pullup messe ich 2,7V
Setze ich hingegen D2 auf Pullup kommen erwartungsgemäß 3,3V raus. Vielleicht löse ich damit schon mein Problem.

EDIT: Nein, Problem besteht nach wie vor. Das Merkwürdige ist. Sobald ich nur eines der beiden Kabel, die an meinen Türklingeltaster hängen, mit D2 verbinde, löst die Überprüfung auf LOW aus. Keine Ahnung wie das möglich ist.

Stefan

Störungen auf dem Kabel welches als Antenne arbeitet.

Mess doch mal den Widerstand der beiden Kabel. Vielleicht hängt ja Dreck oder Feuchtigkeit im Taster.

Oder besser misst du den Strom, der fließt, wenn du 3,3 V auf die Kabel gibst. Natürlich darf dann niemand den Klingeltaster drücken.

Du kannst dein Problem nur lösen, wenn du dich an die genannten Vorschläge hältst.
Dein Klingeldraht ist einfach zu lang, um ohne entsprechende Technik störungsfrei zu arbeiten.

Probier doch einfach mal aus, wenn du ein Relais oder Transistor (je nachdem was du hast) dazwischen schaltest, ob dein Problem dann beseitigt ist. Eine richtige/bessere Lösung kannst du dann anschließend immer noch einbauen.

kleines Update (muss noch einiges testen)

Also wenn ich ein Kabel meines Türklingeltasters (nennen wir es K1) an den (inzwischen) D2 PULLUP Pin hänge und dann gegen GND auf dem NodeMCU messe, dann liegen ca. 4V an. Also zwischen D2 und GND. Ziehe ich das Kabel ab sind es 3,3V. Keine Ahnung, ob das wirklich was bedeutet.

Messe ich K2 gegen GND (während K1 and D2 hängt) finde ich nichts aussergewöhnliches.

Einen Widerstand zwischen K1 und K2 gibts auch nicht.
Ich werde als nächstes mal versuchen den Klingeldraht unter Strom zu setzen und damit ein elektrisches Relais zu schalten. Das Relaid widerum wird dann D2 und GND überbrücken.

StefanHaupt:
kleines Update (muss noch einiges testen)

Also wenn ich ein Kabel meines Türklingeltasters an den (inzwischen) D2 PULLUP Pin hänge und dann gegen GND auf dem NodeMCU messe, dann liegen ca. 4V an. Ziehe ich das Kabel ab und messe nur zwischen D2 und GND, dann sind es 3,3V. Keine Ahnung, ob das wirklich was bedeutet.

Ich werde als nächstes mal versuchen den Klingeldraht unter Strom zu setzen und damit ein elektrisches Relais zu schalten. Das Relaid widerum wird dann D2 und GND überbrücken.

Dann hast du vermutlich min. 4Volt Störspannung drauf. Diese kann auch u.U. den Controller killen.

Bevor du den Klingeldraht an eine externe Spannung anklemmst, diesen unbedingt vom Controller trennen.
Und ja, den D2 und GND mit dem Relaiskontakt überbrücken.

so, der Vollständigkeit halber hier meine gewählte Lösung.

Neben dem nodeMCU hab ich noch ein elektr. 5V Relais angeschlossen.
Den Klingeldraht hab ich ebenfalls unter 5V Strom gesetzt.
Dieser gibt dem Relais das Signal, GND und D2 auf dem nodeMCU zu überbrücken.

Funktioniert bisher ohne Probleme.

StefanHaupt:
so, der Vollständigkeit halber hier meine gewählte Lösung.

Neben dem nodeMCU hab ich noch ein elektr. 5V Relais angeschlossen.
Den Klingeldraht hab ich ebenfalls unter 5V Strom gesetzt.
Dieser gibt dem Relais das Signal, GND und D2 auf dem nodeMCU zu überbrücken.

Funktioniert bisher ohne Probleme.

Prima und danke für die Rückmeldung.

Da du jetzt das Problem mit dem Relais lösen konntest, ist es doch ein leichtes statt des Relais einen Optokoppler einzusetzen. Dann lernst du auch gleich, wie es auch damit funktioniert.

da hast du nicht zufällig eine anleitung für? ich hab nur was gefunden mit widerständen und transistoren etc. da hab ich leider null ahnung von. bin froh, dass mein relais so "einfach" funktioniert. das ganze in ein selbstgedrucktes Gehäuse gepackt, fertig :wink:

Wenn du damit zufrieden bist, ist das auch ok.

Auch bei einem Optokoppler brauchst du Widerstände.
Z.B. diese Schaltung mit OK3 kannst du einsetzen.
Allerdings würde ich das dann erst angehen, wenn mehr Erfahrung darin vorhanden ist.