Kann ich ESP8266 wie in diesem Schema mit einem Fotowiderstand aufwecken?

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.

Das ist mein Schema:Geben Sie hier die Bildbeschreibung ein

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?

Was ist das für ein Fotowiderstand? Wie es aussieht, haben Sie hier nur einen Spannungsteiler gemacht. Wenn der Widerstand im Dunkeln extrem hochohmig und im Hellen niedrig ist, kann er abhängig von den Widerständen funktionieren. Ich vermute, der Widerstand ist im Dunkeln kein offener Stromkreis, es hängt wirklich vom Widerstand ab und welche Spannung an den Reset-Pin angelegt wird.
Vielleicht würde das Austauschen des R6-Widerstands mit dem Potentiometer das Problem lösen? Ich könnte den Widerstand einfach experimentell einstellen.

Antworten (4)

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.

Ja, meine Idee war, den ESP8266 im Reset-Modus zu halten, während es dunkel ist. Im Allgemeinen geht es darum, Informationen über den Zustand des Lichts im Badezimmer zu erhalten (im Allgemeinen ist es entweder vollkommen dunkel oder total hell – es wird mit sehr geringem Abstand zum Licht montiert) – daher habe ich mich über verschiedene Ansätze und das gewundert wirkte minimalistisch und dennoch stromsparend. AFAIK ESP8266 verfügt über einen Power-Modus, der es ermöglicht, ESP mit einem Interrupt von einem Pin aufzuwecken, aber dieser Modus benötigt etwa 0,5 mA, während der Tiefschlaf nur wenige µA benötigt. Wie wäre es stattdessen mit einem Fototransistor?
Was kann es aus dem Tiefschlaf wecken?
Ich denke, nur RESET-Pin und Interrupt von der internen RTC, die das Signal über GPIO16 an RESET sendet.
Hm, das bezweifle ich irgendwie. Wenn Ihre einzige Möglichkeit, einen Schlafzustand zu verlassen, ein vollständiger Reset ist, dann ist dieser Schlafzustand völlig nutzlos – Sie könnten das Gerät auch vollständig ausschalten.
Das ist wahr. Sie können auf einigen GPIO-Leitungen kein externes Ereignis verwenden. Im Deep-Sleep-Modus ist nur RTC eingeschaltet (CPU und Systemuhr sind aus). GPIO16 erzeugt einen kurzen Impuls, um ESP zurückzusetzen. Jeder Reset-Impuls weckt also ESP auf. Es ist nicht völlig nutzlos wegen des Timers, der eingestellt werden kann, um ESP aufzuwecken.
@Defozo, aber das ist anders als "nur zurücksetzen und RTC zum Zurücksetzen extern zurückführen"! Das ist großartig! Lassen Sie Ihr ESP einfach alle x Millisekunden aufwachen, Licht messen und wieder einschlafen. TA Dah! Sofortige Energieeinsparung! Spart wahrscheinlich viel mehr, als das Gerät jedes Mal neu starten zu müssen!
Ich würde nicht zustimmen. Wie das Aufwachen alle x Millisekunden viel mehr sparen kann als das Aufwecken von ESP nur, wenn das Licht an ist. Ich könnte diese Strategie wahrscheinlich auf ESP anwenden, wenn das Licht bereits an ist, aber ich würde es lieber nicht aufwecken, wenn das Licht aus ist. Entschuldigung für mein Englisch.
Ich meine, das ist eine gute Idee, aber es geht besser, oder? Oder gibt es mir vielleicht nicht wesentlich mehr Zeit im Akkubetrieb?
(Ihr Englisch ist hervorragend!) Nun, Sie müssen selbst rechnen; Ich würde es auf jeden Fall vermeiden, das Gerät mit einem analogen Spannungsteiler im Reset zu halten. Ich glaube nicht wirklich, dass Sie viel besser werden – ich meine, rechnen Sie wirklich nach: Wie oft müssten Sie aufwachen, um nachzusehen? Wenn du aufwachst und es kein Licht gibt, wie lange bist du an? wie hoch ist der daraus resultierende stromverbrauch?
Fototransistoren sind übrigens sehr temperaturabhängig. Im Sommer wachst du also mit deinem Reset-Ansatz vielleicht öfter auf als im Winter. Mit meinem Wake-up-Ansatz können Sie möglicherweise die Temperatur kompensieren, indem Sie nur dann Daten senden, wenn der Widerstand über einen längeren Zeitraum einen niedrigen Widerstand hat!
Ja, wahrscheinlich hast du recht. Es ist viel weniger fehleranfällig und es ist einfach zu tun. Ich werde einen Prototypen nach Ihren Wünschen erstellen, einige Tests durchführen und ihn dann Schritt für Schritt verbessern, wenn ich mit den Ergebnissen nicht zufrieden sein sollte.

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.

Geben Sie hier die Bildbeschreibung ein

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.