Forum: Mikrocontroller und Digitale Elektronik Reset des Relay Shield am Wemos D1 beim Aufwachen verhindern


von Marco P. (ph0x)


Lesenswert?

Hallo!

Leider ist mein Wissen über Elektronik aus dem Informatik-Grundstudium 
vor über 15 Jahren etwas eingerostet, daher bitte ich im Voraus um 
Nachsicht.

Ich möchte an einem Wemos D1 Mini 
(https://www.azdelivery.de/products/d1-mini-v3) drei Sensoren (2x PIR 
HC-SR501, 1x Ultraschall HC-SR04) betreiben, um damit die Beleuchtung in 
einem Badezimmer zu steuern. Idealerweise soll das rein elektrisch 
funktionieren und nicht über mein FHEM.

Angestrebte Funktionsweise: PIR resettet/bootet bei Bewegungserkennung 
das Board, dieses aktiviert ein Relay Shield 
(https://www.berrybase.de/neu/relais-shield-f-252-r-d1-mini?c=2474), 
woran das Deckenlicht hängt. Wenn keine Bewegung mehr erkannt wird, 
misst der Ultraschallsensor ein paar Mal den Abstand (falls jemand auf 
dem Örtchen sitzt und sich länger als die Haltezeit des PIR nicht mehr 
bewegt hat ...). Entspricht der Abstand dem Regelwert, geht das Board in 
den Tiefschlaf. Wie bereits gesagt, kann der PIR den Vorgang jederzeit 
von vorne beginnen lassen.

Den Reset des Boards (steigende Flanke an RST) durch den PIR (high bei 
Erkennung) habe ich mir hier abgeguckt: 
https://www.instructables.com/ESP-01-Motion-Sensor-With-Deep-Sleep/
Damit wird ein stromfressender Tiefschlaf mit auf low gezogenem RST 
verhindert.

Das Relay Shield ist active high. Ich habe zwei Möglichkeiten 
ausprobiert:

1. Steuern des Relais über einen Pin, der beim Booten bereits high ist 
(z.B. D0). Damit zieht das Relais sofort an, wenn das Board startet. Am 
Ende der MMessreihe, wenn keine Anwesenheit mehr erkannt wird, wird der 
Pegel von D0 auf low gesetzt, das Relais fällt ab und das Board geht 
schlafen. Nach ein paar Sekunden zieht das Relais jedoch wieder an. Ob 
es sich dabei um ein high oder um ein float handelt, konnte ich noch 
nicht herausfinden.

2. Steuern des Relais über einen Pin, der beim Booten low ist (z.B. D5). 
Damit bleibt das Relais zwar im Tiefschlaf zuverlässig abgeschaltet, 
jedoch führt ein Reset des PIR während des Programmablaufs natürlich 
dazu, dass das Relais ganz kurz abfällt und wieder anzieht, was ich der 
Deckenleuchte gerne ersparen würde.

Alterniere ich den Steuer-Pegel des Relais per Transistor in 
Emitterschaltung, dann habe ich dieselben Probleme, nur an der jeweils 
anderen Pin-Art, ein active low Relais würde das Problem daher meiner 
Ansicht nach vermutlich auch nicht lösen.

Ich bitte um Vorschläge, wie ich das gewünschte Ergebnis erreichen kann, 
dass das Relais beim Reset nicht abfällt, aber im Tiefschlaf zuverlässig 
aus bleibt.

Pulldown des Steuer-Pins im ersten Fall? Wenn ja, wo muss der genau hin?
Oder eine Ausschaltverzögerung im zweiten Fall? Und wie würde ich die 
realisieren?
Oder etwas ganz anderes?

Bin für Hinweise sehr dankbar.

Gruß Marco

von Helmut -. (dc3yc)


Lesenswert?

Marco, wozu ist der Tiefschlaf wichtig? Da an der Baugruppe ja 230V 
anliegen, nehme ich an, dass sie darüber versorgt wird. Du musst die 
Baugruppe auf jeden Fall in ein schutzisoliertes Gehäuse einbauen, da 
das Relais bzw. das Layout nicht unseren Vorschriften für Netztrennung 
entspricht. Und wenn das Gerät eh am Netz hängt, muss man nicht einen 
Zusatzaufwand wegen der paar Milliampere für Dauerbetrieb machen.

von Peter D. (peda)


Lesenswert?

Wie kommt man bloß auf die verrückte Idee, den Reset als Eingang zu 
mißbrauchen.
Alle Welt nimmt dazu normale IO-Pins, deswegen haben ja MCs die IO-Pins.
Und mit Pin-Change Interrupts kann der MC damit auch aufwachen, ohne 
unkontrolliert an den Ausgängen zu spielen.

von Marco P. (ph0x)


Lesenswert?

Ja, in der Tat soll die Schaltung über ein IRM-03-5 (oder 02-5) an 230V 
betrieben werden.
Das Netzteil hat eine maximale Leerlaufleistung von 0,075 Watt. Bezieht 
sich das auf die Eingangs- oder auf die Ausgangsseite? 0,075 W an 230V 
sind ja gerade mal 0,32 mA da wären 80mA für das Board im Dauerbetrieb 
schon nochmal ne Hausnummer.

Peda, der ESP lässt sich nunmal nicht anders aus dem Tiefschlaf wecken. 
Was wäre dein Vorschlag?

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Marco P. schrieb:
> Peda, der ESP lässt sich nunmal nicht anders aus dem Tiefschlaf wecken.

Ist das denn der einzige mögliche Stromsparmodus, dann wäre das aber ein 
verdammt armseliger MC.
Selbst jeder PC kann ohne Reset aufwachen und weitermachen.

von Peter D. (peda)


Lesenswert?

Brauchst Du überhaupt so einen riesen MC mit dem ganzen Funk und 
Netzwerk Gedöns?
Ich würde für so kleine Aufgaben einfach nen ATtiny24 nehmen.

von Marco P. (ph0x)


Lesenswert?

Es gibt andere Stromsparmodi, aber alle werden durch den Reset beendet. 
Man geht allgemein davon aus, dass es sich hierbei um einen Designfehler 
handelt, der Hersteller schweigt sich dazu aus und die Anwender nehmen 
es hin. :-)

Ja, ein anderer Controller käme durchaus in Frage, vor allem wenn es 
hier keine zufriedenstellende Lösung gibt. Hab den D1 halt jetzt hier, 
aber deshalb ist das nicht in Stein gemeißelt.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Marco P. schrieb:
> Man geht allgemein davon aus, dass es sich hierbei um einen Designfehler
> handelt

Gut zu wissen, dann werde ich mir das auf keinen Fall kaufen.
Gibt bestimmt auch reichlich Funkmodule mit Pin-Change zum Aufwachen.

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.