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
Alex schrieb: > ESP-01, der mit einer CR123 betrieben wird. Da bist du aber unterhalb der Mindestversorgungsspannung.
Beitrag #7491408 wurde vom Autor gelöscht.
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.
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
Was ist wenn der Einbrecher das Fenster schnell hinter sich zu macht?
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
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.
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.
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.
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.
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.
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 [===]?
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
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!
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.
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?
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?"
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?
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 :-)
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.