Forum: Mikrocontroller und Digitale Elektronik batteriebetriebener ESP-01 mit Reedschalter an Fenster


von Alex (espler)


Lesenswert?

Hallo zusammen,

für eine Alarmanlage möchte ich ein Signal per ESP NOW an einen Master 
übermitteln, sobald ein Fenster geöffnet wird. Hierzu nutze ich einen 
ESP-01, der mit einer CR123 betrieben wird. Der ESP ist so präpariert, 
dass GPIO16 an RST führt, um den Chip aus dem Deep Sleep zu holen.

Die Kommunikation zum Master per ESP und damit die 
Aktivitätenübermittlung hängt mit im Setup, Loop ist leer.

Ich sehe nun zwei Möglichkeiten, und würde gerne Eure Meinung hören, 
welche mehr Sinn macht:

a) Der ESP ist dauerhaft mit Spannung versorgt. Der Reedschalter als 
Schließer hängt an RST und GND. Wenn das Fenster geschlossen ist, ist 
RST LOW und der ESP somit nicht aktiv. Beim Öffnen des Fensters geht RST 
nach HIGH, der ESP bootet und sendet die Message an den Master. Beim 
Schliessen geht RST wieder nach LOW. Kann es ein Problem geben, wenn RST 
dauerhaft LOW bleibt?

b) Der Reedschalter wird als Öffner umgesetzt. Somit ist der Schalter 
bei geschlossenem Fenster offen. Der Schalter schaltet GND von der 
Batterie zum ESP. Bei geschlossenem Fenster ist der ESP also 
spannungslos, sobald das Fenster geöffnet wird, erhält er Spannung, 
bootet und sendet die Nachricht.

Vermutlich macht aus Batterielaufzeit der zweite Ansatz mehr Sinn?

Freue mich auf Eure Antworten.

Es grüßt
Alex

von H. H. (Gast)


Lesenswert?

Alex schrieb:
> ESP-01, der mit einer CR123 betrieben wird.

Da bist du aber unterhalb der Mindestversorgungsspannung.

Beitrag #7491408 wurde vom Autor gelöscht.
von Harald K. (kirnbichler)


Lesenswert?

Alex schrieb:
> für eine Alarmanlage möchte ich ein Signal per ESP NOW an einen Master
> übermitteln, sobald ein Fenster geöffnet wird.

Und, was passiert, wenn die Batterie zur Neige geht? Was passiert, wenn 
das WLAN so gestört wird, daß die Meldung Deines ESP nicht mehr 
durchkommt?

Ernstgemeinte Alarmanlagen überprüfen sich selbst auf Funktion und 
Sabotage.

von Helmut -. (dc3yc)


Angehängte Dateien:

Lesenswert?

H. H. schrieb:
> Da bist du aber unterhalb der Mindestversorgungsspannung.

Dann schau doch mal ins Datenblatt:

2016.12 V5.3 Changed the minimum working voltage from 3.0 V to 2.5 V.

Und im Anhang meine Fensterkontakte, die seit Jahren funktionieren!

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Was ist wenn der Einbrecher das Fenster schnell hinter sich zu macht?

von Εrnst B. (ernst)


Lesenswert?

Das mit dem Reset passt schon, so funktioniert auch der 
Deep-Sleep-Modus, nur dass du als Wakeup eben deinen Reed-Kontakt und 
nicht den RTC-Timer-Ausgang verwendest.
Die Verbindung zu GPIO16 muss dann natürlich weg, oder über ein 
Logik-Gatter.

Falls du offen für Alternativen bist: So Fensterkontakte gibt es für 
Zigbee fix und Fertig mit Gehäuse und allem Drum und Dran für zwei AA 
oder AAA Zellen für wenig Geld.

Ein Zigbee-nach-Wlan Gateway mit ESP8266 ist auch kein Hexenwerk, könnte 
man aber auch z.B. von Sonoff kaufen.

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Helmut -. schrieb:
> 2016.12 V5.3 Changed the minimum working voltage from 3.0 V to 2.5 V.

Sollte man den Herstellern der Module mitteilen.

von Helmut -. (dc3yc)


Lesenswert?

H. H. schrieb:
> Helmut -. schrieb:
>> 2016.12 V5.3 Changed the minimum working voltage from 3.0 V to 2.5 V.
>
> Sollte man den Herstellern der Module mitteilen.

Warum können die nicht lesen? Ich konnte das ja auch. Steht jetzt nicht 
versteckt im DaBla, sondern ziemlich weit vorne.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> Der Schalter schaltet GND von der Batterie zum ESP.
Dann musst du aber mit der Schaltleistung des Reedkontakts aufpassen. 
Denn der maximale Strom der Schaltkontakte darf niemals (auch nicht noch 
so kurzzeitig) überschritten werden. Und wenn da beim Einschalten ein 
paar Kondensatoren aufgeladen werden müssen, kann dieser Rush-In-Current 
leicht mal zu groß werden.

von Michael B. (laberkopp)


Lesenswert?

Alex schrieb:
> und würde gerne Eure Meinung hören, welche mehr Sinn macht:

Ein ESP im power off braucht wenig Strom, 100nA, und wacht auf wenn man 
einen Pin toggelt, auch deep sleep mit RTC braucht nur 10uA. Dein 
Problem ist nicht der dauernd angeschlossene ESP, der Unterschied 
zwischen slep und ganz aus ist minimal so lange du das nicht mit 
Dauerverbrauchern, wie geschlossenem Reedkontakt über '100k' PullUp 
(satte 30uA, 3 bzw. 300 x mehr als der ESP) versaust, sondern das 
Einbuchen ins WLAN und Senden. Es ist halt die falsche Funktechnik für 
batteriebetriebene Sensoren, nicht ohne Grund verwenden die üblichen 
433MHz, LoRaWAN, ZigBee, BLE.

von Steve van de Grens (roehrmond)


Lesenswert?

Im Reset nimmt der Chip sehr viel mehr Strom auf, als du willst.

Du musst den Enable-Eingang benutzen. Bei dem ist aber wichtig, dass du 
ihn erst auf Low ziehen darfst, nachdem der Chip gestartet hat. Sonst 
nimmt er nämlich auch zu viel Strom auf. Heißt in der Praxis, dass du 
nach dem Batteriewechsel einmal das Fenster auf- und wieder zu machen 
musst. Oder due baust eine "clevere" Elektronik drumherum, die das 
automatisiert.

Mich würde bei deinem Ansatz stören, dass ständig Strom durch den 
Kontakt fließt, wenn das Fenster (je nach Konstruktion) offen oder 
geschlossen ist. Ein nahe liegender Ansatz wäre, dass der ESP ständig 
mit Strom Versorgt wird und in regelmäßigen Intervallen aufwacht (dafür 
hast du dein Modul offenbar modifiziert).

Bei jedem Aufwachen könnte er dann den Kontakt prüfen und ggf. die 
Änderung per Funk signalisieren. Außerdem könnte er in bestimmten 
Intervallen den Zustand der Batterie prüfen und ggf. melden. Den Kontakt 
schließt du z.B. so an:
1
                                ____
2
GPIO (Ausgang) o----[===]---+---o  o----| 
3
                            |
4
GPIO (Eingang) o------------+

Setze den Ausgang vor dem Abfragen des Einganges auf HIGH. Setze ihn 
danach wieder auf LOW, um Strom zu sparen. Dazwischen musst du ein 
bisschen warten, damit sich Kapazitäten (z.B. vom Kabel) aufladen 
können.

: Bearbeitet durch User
von Alex (espler)


Lesenswert?

Steve van de Grens schrieb:
> Bei jedem Aufwachen könnte er dann den Kontakt prüfen und ggf. die
> Änderung per Funk signalisieren. Außerdem könnte er in bestimmten
> Intervallen den Zustand der Batterie prüfen und ggf. melden. Den Kontakt
> schließt du z.B. so an:
>
>
1
>                                 ____
2
> GPIO (Ausgang) o----[===]---+---o  o----|
3
>                             |
4
> GPIO (Eingang) o------------+
5
>
>

Interessant, kannst du hierzu bitte genaueres sagen? Was ist [===]?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> Was ist [===]?
Das hier:
1
   _____
2
--|_____|---
Es ist ein schaltbarer Pullup, der nur eingeschaltet wird, wenn der 
Taster eingelesen werden soll. Denn wenn der Pullup dauernd an Vcc 
hängt, dann fließt dauernd Strom, wenn der Schalter geschlossen ist. Und 
dann ist die winzige Batterie ratzfatz leer.

: Bearbeitet durch Moderator
von Alex (espler)


Lesenswert?

Lothar M. schrieb:
> Es ist ein schaltbarer Pullup, der nur eingeschaltet wird, wenn der
> Taster eingelesen werden soll. Denn wenn der Pullup dauernd an Vcc
> hängt, dann fließt dauernd Strom, wenn der Schalter geschlossen ist. Und
> dann ist die winzige Batterie ratzfatz leer.

Danke!

von Steve van de Grens (roehrmond)


Lesenswert?

Alex schrieb:
> Was ist [===]?

Ein Widerstand, zum Beispiel 2,2kΩ

Normalerweise wär der Widerstand mit VCC verbunden, dann fließt aber 
ständig Strom durch den Kontakt, wenn das Fenster geschlossen ist. Nicht 
gut für die Batterie.

Wenn du stattdessen einen Öffner-Kontakt verwendest, würde bei 
geöffnetem Fenster ständig Strom fließen. Das willst du auch nicht, 
nehme ich mal an.

Lösung: Das IC soll diesen Ausgang in Regelmäßigen Abständen auf HIGH 
setzen, so dass der Strom nutz für kurze Momente fließt. Einmal alle 10 
Sekunden sollte reichen, denke ich.

Wenn der ESP dabei bemerkt, dass sich der Zustand des Fensters geändert 
hat (offen/geschlossen), kann er sei WLAN Interface hoch fahren und das 
dann der Zentrale (dem Master) melden. Danach legt er sich wieder 
schlafen, bis zum nächsten Abfrage-Intervall.

Ich weiß nicht, wie viel Strom der ESP beim Hochfahren aufnimmt. Mir ist 
aufgefallen, dass er dazu jedesmal neu Booten muss - nicht so toll. 
Prüfe mal, ob der ESP32 das besser kann, also ob er in Intervallen 
aufwachen kann ohne jedes mal neu booten zu müssen.

Ansonsten macht es eventuell Sinn, einen kleinen 8 Bit Mikrocontroller 
daneben zu packen, um den Kontakt regelmäßig abzufragen. Dieser könnte 
die Stromversorgung des ESP erst dann einschalten, wenn es etwas zu 
senden gibt. Dafür würde die normalerweise vorinstallierte AT Firmware 
bereits ausreichen.

: Bearbeitet durch User
von Alex (espler)


Lesenswert?

Genau, der Deep Sleep wird durch einen Reset beendet - somit muss der 
ESP komplett neu hochfahren. Problematisch ist auch, dass im Fall des 
geöffneten Fensters alle 10s (oder halt das gewählte Intervall) eine 
Meldung an die Zentrale rausgeht, da der ESP sich nicht merken kann, ob 
er das aktuelle Fensteröffnen schon gemeldet hat.

Ich habe folgende Idee:
- ESP im Deep Sleep, alle 3h aufwachen und melden, dass er noch 
funktioniert.
- zusätzliche Schaltung, die einen Zustandswechsel beim Reedschalter 
erkennt, also sowohl LOW->HIGH als auch HIGH->LOW, und für diesen Fall 
einen Impuls an den RST des ESP gibt, um ihn aus dem Deep Sleep zu 
wecken. Der Reedschalter hängt zusätzlich am GPIO (gerne mit der 
zusätzlichen Stromersparnisschaltung), damit der ESP dann weiss, welchen 
Zustand das Fenster hat.

Nun ist wieder die Frage: wie mache ich das ;-) und zwar möglichst 
stromsparend. Also: Zustandswechselerkennung erzeugt LOW-Impuls an RST.

Hat hierzu jemand eine Idee?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> Hat hierzu jemand eine Idee?

Steve van de Grens schrieb:
> einen kleinen 8 Bit Mikrocontroller daneben zu packen
So würde ich das auch machen. Siehe den 
Beitrag "Re: Langzeittimer per RC-Glied?"

von Alex (espler)


Lesenswert?

Hab dazu wieder einiges gelesen, vermutlich wäre eine gute, 
stromsparende Lösung der ATTiny85 - Reed dort dran, und der Kleine weckt 
dann den Großen?

von Steve van de Grens (roehrmond)


Lesenswert?

Alex schrieb:
> da der ESP sich nicht merken kann, ob
> er das aktuelle Fensteröffnen schon gemeldet hat.

Doch das kann er. Die RTC hat ein paar Bytes RAM, welche den Neustart 
"überleben". Dort kann man sich den vorherigen Zustand merken.

> Ich habe folgende Idee ...
klingt gut

> Nun ist wieder die Frage: wie mache ich das ;-) und zwar möglichst stromsparend.

Mit einem kleinen Mikrocontroller. Es geht auch ohne, aber vermutlich 
bedeutend aufwändiger, wenn es ebenso gut Strom sparen soll.

> Hab dazu wieder einiges gelesen, vermutlich wäre eine gute,
> stromsparende Lösung der ATTiny85 - Reed dort dran, und der
> Kleine weckt dann den Großen?

Du hast die besten Ideen :-)

: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Kommerzielle WLAN-Türkontakte z.B. von Tuya haben im ESP eine 
"AT-Firmware" und einen kleinen zusätzlichen Controller.
Der hängt direkt an der Batterie (2 AA) und überwacht den Kontakt plus 
(evtl. auch zyklisch) die Batterie.
Den ESP versorgt man mit einem Stepup-Wandler, der via Enable-Pin 
gesteuert wird.
Das ist zwar leicht komplizierter als die oben gepostete Schaltung, hat 
aber ein paar Vorteile:
- Der µC kann sofort auf eine Änderung reagieren (Interrupt) und hat 
auch kein Problem mit aufzu-Signalen, da er Sleep als Unterbrechung des 
normalen Programms kann ohne booten zu müssen.
- Der µC kann je nach Hardware diese Stromsparschaltung oder einen 
ähnlichen Mechanismus direkt umsetzen, aber auch zyklisch aufwachen (zur 
Akkukontrolle und für ein Heartbeat-Signal an den Server)
- Der ESP läuft mit stabiler, geregelter Spannung von 3,3V, was sich 
wohl auch positiv auf die Stabilität und Reichweite der Funkverbindung 
auswirkt
- Die beiden kommunizieren via UART, der µC kann den ESP überwachen und 
z.B. bei WLAN-Problemen wieder abschalten und sich dieses Problem 
merken, "dann versuchen wir es eben gleich nochmal".
- Der µC kann während der aktiven Phase des ESP die Batterie beobachten 
und so einen besseren Rückschluss auf deren Zustand ziehen. Außerdem 
könnte man dsbzgl. Daten erfassen: Batterietauschdatum, Anzahl der 
Funkzyklen seitdem, Anzahl der Öffnungsvorgänge seitdem, Gesamtfunkzeit 
seitdem.
- Evtl. kann man weiter stromsparen (wenn der Kontakt nicht unbedingt 
Alarm auslösen soll), z.B. in dem der µC 10 Sekunden nach Öffnung wartet 
ob wieder geschlossen wird und dann z.B. gar nicht sendet. Für eine 
Heizung wäre das egal wenn das Signal 10s verspätet kommt, aber z.B. für 
Türen die 50x am Tag kurz geöffnet werden spart das eine Menge Batterie 
weil quasi nie gesendet wird.

von Alex (espler)


Lesenswert?

Jens M. schrieb:
> Kommerzielle WLAN-Türkontakte z.B. von Tuya haben im ESP eine
> "AT-Firmware" und einen kleinen zusätzlichen Controller.

Danke, auch interessant!

Aktuell hängt die erste Version an der Tür. Allerdings rein zum testen 
des Workflows, es ist kein Deep Sleep aktiv. Testweise hatte ich Deep 
Sleep mit angebundenen Sensor wie von Steve van de Grens vorgeschlagen 
mit schaltbarem Pullup umgesetzt, allerdings bootet der ESP ja nicht 
korrekt, wenn GPIO0 oder GPIO2 auf High liegen (durch den Reedschalter).

Ich bestelle erstmal einen ATTiny, vermutlich reicht hier auch ein 
ATtiny13A-PU. Die 85er sind derzeit oft nicht lagernd.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Mal etwas Allgemeines:

Selbstgebastelte Alarmanlagen (oder z.B. zus. Wegfahrsperren in PKWs 
usw.) haben gegenüber den deutlich aufwändigeren kommerziellen Produkten 
einen einzigartigen Vorteil:

Sie sind für den potenziellen Dieb vollkommen unberechenbar. Wenn der im 
Vorfeld keine Gelegenheit hat, das System auszuspionieren, sind die 
genau so gut wie die wesentlich teureren Profi-Produkte.

Bei einem aktuellen PKW, der tausendfach produziert wird, kommt man 
immer irgendwie an die Service-Unterlagen und weiss ganz genau, was 
einen erwartet. Die Hardware ist mithin überhaupt kein Geheimnis mehr. 
Sollte bei so ein System eine Schwäche gefunden werden, gibts diese eben 
gleich tausendfach. Ähnlich ist die Lage wohl auch bei kommerziellen 
Alarmanlagen für Gebäude. Ein Blick auf den elektronischen 
Schließzylinder genügt und ich weiss, welches Fabrikat, welche 
Schließanlage ...

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.