Ich möchte ESP8266 wecken, wenn das Licht angeht, Informationen an den Server senden, für einige Sekunden in den Tiefschlaf gehen und dann die Informationen erneut senden und so weitermachen. Wenn der Server die Informationen nicht mehr empfängt, würde dies bedeuten, dass das Licht wieder ausgeschaltet wird.
Wird es funktionieren?
Ich frage speziell nach dem Teil, an dem ich meinen Fotowiderstand mit dem RESET-Pin verbinde.
Zusatzfrage (optional zu beantworten): Wenn ich Widerstand gegen Potentiometer tauschen möchte, wie muss ich es anschließen?
Ich würde empfehlen, das nicht zu tun. Fotowiderstände sind langsame Geräte, und Sie oszillieren möglicherweise um den Punkt, an dem ein Reset ausgelöst wird, sodass dies möglicherweise nicht so gut funktioniert.
Ich würde stattdessen empfehlen, etwas zu verwenden, das einen klaren Schwellenwert hat und einen einzelnen Reset-Impuls anstelle eines konstanten Hochs ausgibt, damit dies nicht passiert. Auf jeden Fall sollte RESET mit einem binären Signal angesteuert werden und nicht so etwas wie "Nun, ich war 0,1 V unter der Schwelle, ich bin 0,05 V darüber, also besser zurücksetzen".
Wie auch immer, ich kenne den ESP8266 nicht sehr gut, aber möchten Sie das Gerät wirklich zurücksetzen ? Das ist so, als ob Sie Ihren PC mit dem Netzschalter ein- und ausschalten, nur um ihn aufzuwecken. Vielleicht hat der ESP8266 einen Pin, der stattdessen als Interrupt verwendet werden kann, und einen Schlafmodus zum Aufwachen, und das würden Sie bevorzugen.
Ihre Idee scheint zu sein, dass Sie den ESP8266 im Reset-Modus halten, während es dunkel ist – ich bin mir nicht einmal sicher, ob das in irgendeiner Weise energieeffizient ist.
Theoretisch: ja, mit dem richtigen R6. In der Praxis benötigen Sie eine etwas andere Lösung.
Um den EPS8266 zurückzusetzen, muss REST unter Vcc/4 (normalerweise ~0,8 V) gezogen werden. Es hat einen internen schwachen Pull-up und die meisten vorgefertigten Module (D1, NodeMCU usw.) fügen einen weiteren externen Pull-up hinzu, um falsche Resets zu vermeiden.
Ihr Fotowiderstand liegt im Dunkeln wahrscheinlich über 1 MΩ und im Licht im Bereich von 10..100 kΩ (messen!). Zwischen Vcc und REST wirkt es wie ein weiterer, variabler Pull-up. Um das Gerät in den Reset zu ziehen, müssen Sie R6 niedrig genug wählen, um all diese Klimmzüge zu überwinden, während Sie ihn gleichzeitig hoch genug halten, um falsche Resets zu vermeiden. In der Praxis wird das nicht funktionieren.
Stattdessen könnten Sie einen Schmitt-Trigger (z. B. 74AC14), einen Spannungskomparator (mit offenem Kollektor, z. B. LM393) oder einen OpAmp verwenden, um den Spannungsteiler zu überwachen und mit ihrem Ausgang REST auf GND zu ziehen, wenn es dunkel ist.
Als Alternative würde ich vorschlagen, dass Sie den CH_PD (ENABLE) Pin verwenden. Verwenden Sie anstelle des permanenten 10k-Pull-up (R1) denselben Spannungsteiler und wählen Sie R6 so, dass es etwa das 3-4-fache des "Licht" -Widerstands Ihres Fototransistors beträgt. Dies sollte ohne zusätzliche Teile funktionieren. Der einzige Nachteil ist, dass Sie den RTC-Speicher nicht verwenden können, da Ihr Gerät technisch ausgeschaltet ist und nicht schläft.
PS: Für diejenigen, die mit dem ESP8266 nicht vertraut sind, ist das „Aufwachen“ eigentlich ein Reset (normalerweise ausgelöst durch die RTC, die die Reset-Leitung auf Low zieht) und das Gerät muss nach dem Aufwachen neu initialisiert werden.
Wie von Marcus erwähnt, wird die Verwendung eines analogen Werts dafür nicht empfohlen. Wenn Sie können, würde ich vorschlagen, zu einer Fotodiode zu wechseln und damit die One-Shot-Schaltung in dieser Antwort auf eine frühere ESP8266-Frage auszulösen
Wenn Sie immer noch den Fotowiderstand und einen Topf verwenden möchten, um eine einstellbare Schwelle zu haben, werden Sie wahrscheinlich einen Komparator verwenden wollen. Etwas Ähnliches mit Pin 7, der mit der One-Shot-Schaltung verbunden ist.
Sie können das ESP bei Dunkelheit ständig zurückgesetzt lassen, aber überprüfen Sie, ob in diesem ungewöhnlichen Zustand kein zusätzlicher Strom gezogen wird.
Eine Option ist, mit dem Licht aufzuwachen, während Sie geschrieben haben, Daten zu senden, ein automatisches Aufwachen auf etwa eine Minute in der Zukunft einzustellen und in den Tiefschlaf zu gehen. Wenn das Licht an bleibt, wachen Sie eine Minute später auf und senden erneut Daten. Wenn das Licht ausgeht, werden Sie nicht wach und das ist ok für Sie.
Das ist nicht das Beste.
Verbinden Sie den Fototransistor sowohl mit einem Attiny als auch mit ESP, stellen Sie den Attiny so ein, dass er bei Pegeländerung des Pins, an dem Sie den Trigger anschließen, aufwacht, warten Sie 1 Sekunde (falls der Finger abrutscht und das Licht versehentlich schnell ein- / ausgeschaltet wird) , lassen Sie den Attiny den ESP mit einem P-MOSFET einschalten, lassen Sie den ESP den Schmitt-Ausgang lesen und Daten senden.
Sie wachen nur bei Bedarf auf, es kostet nur eine Attiny. Es passt auf die Rückseite des ESP-12. Sie können den MOSFET auch vermeiden und einfach das Attiny verwenden, um das ESP aus seinem ausgeschalteten Zustand einzuschalten.
http://ww1.microchip.com/downloads/en/DeviceDoc/doc8126.pdf 7.1, Schlafmodi: Sie können es mit Pin-Änderungen aus dem Abschalten aufwecken. 19,4 Stromverbrauch im ausgeschalteten Zustand: 0,2 uA. Jahrelanger Gebrauch, wenn Sie einen Li-Ion mit MCP170x-Linearregler bis 3 V verwenden.
Zur Info: Im Tiefschlaf bleibt etwas Speicher des ESP erhalten, etwa 60-100 Bytes, denke ich. Im Power-Down-Modus nicht.
Ron Beyer
Defozo