Wie kann man ESP8266 mit Lichtwechsel aufwecken?

Ich möchte Informationen an den Server senden, wenn sich das Licht ändert (ein- oder ausschaltet). Im Moment habe ich einen Fotowiderstand an den ADC-Pin des ESP8266 angeschlossen. Ich messe die Spannung und sende Informationen an einen Server, wenn sie sich stark ändert. ESP bleibt immer an.

Hier meine aktuelle Schaltung:

Geben Sie hier die Bildbeschreibung ein

Allerdings würde ich es gerne etwas energieeffizienter machen.

Der Sensor wird in einem Badezimmer verwendet, daher ist das Licht normalerweise ausgeschaltet.

Vielleicht könnte ich ESP8266 irgendwie per Fotowiderstand aufwecken und dann eine Anfrage an den Server senden und warten, bis das Licht wieder ausgeht, und dann die zweite Anfrage senden und in den Tiefschlafmodus wechseln? Oder gibt es vielleicht einen besseren Weg?

Ich suche Hilfe bei der Erstellung einer Schaltung. Was soll ich verwenden? Wie soll die Schaltung aussehen?

Wie viel energieeffizienter suchen Sie? Was ist die aktuelle Belastung Ihrer Schaltung?
Nur ein bisschen. Nun, ich möchte einfach nicht, dass mein ESP8266 immer eingeschaltet ist. Wenn es in den Tiefschlafmodus wechseln könnte, würde es seine Lebensdauer mit einer einzigen Batterie erheblich verlängern, nicht wahr? Mein Gerät arbeitet derzeit seit ca. 2 Wochen an 2x AA.
Verwenden Sie die bereits verfügbaren Schlafmodi mit internen Timern? Was ist die tatsächliche Stromaufnahme?
@Passerby Ich verwende derzeit keine Schlafmodi. Entschuldigung, ich kann die genaue Stromaufnahme jetzt nicht messen (aber es liegt wahrscheinlich bei 40 mA). Bitte beachten Sie meine aktualisierte Frage.

Antworten (3)

Die Tiefschlaffunktion des ESP8266 wird verwaltet, indem Pin 16 mit dem RESET-Pin verbunden wird, und wenn Sie die Tiefschlaffunktion aufrufen, übergeben Sie die Anzahl der Mikrosekunden, die Sie schlafen möchten. Dann setzt der Mikrocontroller Pin 16 hoch und geht schlafen. Nach der angegebenen Zeit geht der Pin 16 auf Low, wodurch der ESP8266 zurückgesetzt wird. Die API-Details, einschließlich einiger Anwendungshinweise, finden Sie in der PDF-Datei „Low-Power-Lösungen“ von Espressif.

Ihr Plan, eine Verbindung zu Pin 16 herzustellen, wird also nicht genau funktionieren. Sie benötigen eine Schaltung, die erkennt, dass Pin 16 hoch ist, und dann einen niedrigen Impuls auf RST erzeugt, wenn Ihre Bedingung auslöst. Ohne mehr Details über Ihre Schaltung und die genaue Auslösebedingung zu kennen, ist es schwierig, eine detaillierte Antwort zu geben.

Ich habe meine Frage aktualisiert. Bitte schau es dir an.

Wechseln Sie in den Tiefschlaf, ohne GPIO16 anzuschließen, und RESET führt zu endlosem Tiefschlaf, es sei denn, Sie pulsieren den Reset mit einer externen Schaltung!

Das müssen Sie tun. Schließen Sie Ihren Fotowiderstand an einen Differenzverstärker mit Monoflop in Reihe an, um saubere Impulse am Reset-Pin zu gewährleisten, oder verwenden Sie dazu einen Ultra-Low-Power-MCU. Bei jedem Lichtwechsel erkennt der Differentialverstärker also die hohe Flanke und löst das Monoflop aus!

Das Lesen von Pin 16 ist kein Muss, Sie können ein Timeout in Monoflop verwenden, aber das Hinzufügen eines UND-Gatters ist auch nicht wirklich schwierig.

Sie könnten den ESP einfach in den leichten Schlafmodus versetzen und einen GPIO-Pin als Interrupt binden, um ihn aufzuwecken. Lassen Sie Ihren Fotowiderstand den ESP aufwecken, wenn das Licht eingeschaltet ist, und senden Sie ihn dann an den Server. Das soll viel Strom sparen

Siehe Esp8266