Forum: Mikrocontroller und Digitale Elektronik Vorschläge gesucht: ESP8266 bei Pegeländerung resetten


von Janis E. (janis_e)


Lesenswert?

Hallo,

in einem Zimmer habe ich 3 Fenster, welche mit Magnetschlusssensoren 
(keine Ahnung wie die richtig heißen) versehen sind. Diese haben jeweils 
2 Kontakte die entweder verbunden sind (Fenster geschlossen) oder nicht 
(Fenster offen). Zusammen laufen die 3 Adernpaare bei einer ESP8266 
Schaltung. Diese soll jede Veränderung per WLAN an einen Server senden.

Aus verschiedenen Gründen muss der ESP8266 mit einem Akku laufen, 
weswegen die Schaltung stromsparend sein soll. Ich würde den ESP also 
gerne im Deep Sleep Mode halten. Problem: Es gibt keine Möglichkeit ihn 
per externen Interrupt wieder aufzuwecken. Was ich hier benötige ist ein 
Negativpuls am Resetpin (der mit einem Pullup verbunden ist).

Meine Frage: Wie kann ich möglichst einfach und stromsparend einen 
Resetimpuls an den ESP8266 senden, wenn ein Fenster geöffnet / 
geschlossen wird (d.h. eines der drei Adernpaare entweder verbunden oder 
nicht mehr verbunden ist)?

Mein erster Gedanke war einen ATTiny einzusetzen, der per Interrupt 
aufwacht, aber das scheint mir doch ein wenig mit Kanonen auf Spatzen 
schießen zu sein, zumal dann zwei uC programmiert werden müssen.

Habt ihr einen Tipp für mich? Wie auch immer die Lösung aussieht, ein 
Problem ist, dass die Magnetsensoren prellen, es sollte also ein hard- 
oder softwareseitiger Filter o.Ä. integrierbar sein, damit der ESP nicht 
dauerresetted wird.

Anmerkung: Die Schaltung läuft mit 3.3V.

von Lutz (Gast)


Lesenswert?

Muß das alles in Echtzeit passieren? Wenn nicht, kannst du ihn ja z.B. 
alle 3 Minuten kurz aufwachen lassen und die Reedkontakte abfragen.

von Janis E. (janis_e)


Lesenswert?

Lutz schrieb:
> Muß das alles in Echtzeit passieren? Wenn nicht, kannst du ihn ja z.B.
> alle 3 Minuten kurz aufwachen lassen und die Reedkontakte abfragen.

Danke für die Antwort!

Echtzeit wäre schon schön, wobei für mich auch Echtzeit alles bis 2-3 
Minuten bedeutet.
 Ansonsten ihn regelmäßig aufwachen zu lassen hätte den Nachteil, dass 
der Startvorgang (auch ohne WLAN) relativ viel Strom benötigt, und die 
Startvorgänge zu über 99% unnötig sind, da eine wirkliche Veränderung 
nur verhältnismäßig selten auftritt.

von Chr. M. (snowfly)


Lesenswert?

Bestimmt gibt es ein CMOS-Logik IC mit ein paar FlipFlops
das man passend verschalten kann.

von Janis E. (janis_e)


Lesenswert?

Chr. M. schrieb:
> Bestimmt gibt es ein CMOS-Logik IC mit ein paar FlipFlops
> das man passend verschalten kann.

Danke für den Tipp, kannst Du mir da zufällig einen konkreten IC 
empfehlen oder sagen wo ich mehr zu dem Thema finden kann?

von Εrnst B. (ernst)


Lesenswert?

Die Hälfte von einem 4538 könnte es tun.
Beide Trigger-Eingänge parallelschalten, damit er auf beide 
Flanken-Richtungen reagiert.

Kostet bei Reichelt < 30cent, je nachdem welche Ausführung (=> 
Stromverbrauch im Datenblatt checken)
CMOS 4538
74HC(T)4538


Alternativ könntest du den Reed-Zustand mit einer RC-Glied-gefilterten 
Version seiner selbst vergleichen (XOR-Gatter), und damit dein 
Reset-Signal erzeugen.


Edit: Das RC-Verzögern eines Eingangs könnte auch beim '4538 nötig sein.

von Janis E. (janis_e)


Lesenswert?

Εrnst B. schrieb:
> Die Hälfte von einem 4538 könnte es tun.
> Beide Trigger-Eingänge parallelschalten, damit er auf beide
> Flanken-Richtungen reagiert.

prima, vielen Dank!

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.