Forum: Mikrocontroller und Digitale Elektronik ESP8266 – Sleep Timer und Taster kombinieren


von André R. (andr_r619)


Lesenswert?

Ich habe einen ESP8266 im Tiefschlaf. Dieser prüft regelmäßig alle paar 
Minuten einen Sensor und legt sich dann wieder hin. Nun möchte ich eine 
Option haben, per Tastendruck den aktuellen Sensorwert kurzzeitig auf 
einem kleinen Display anzuzeigen.

Dazu nun meine Frage: Kann ich parallel zur Leitung zwischen D0 und RST 
einfach noch einen Taster hängen, um den Deep-Sleep vorzeitig zu 
unterbrechen?

Wie verhält sich das in Bezug auf den noch bestehenden Timer? Wird der 
bei einem Zwangs-Reset deaktiviert/zurückgesetzt? Oder muss ich da mit 
Seiteneffekten rechnen?

Kann ich ggf. trotz Reset den "Restwert" des Timers wiederherstellen, 
sodass ich den Minutentakt zum Auslösen der Messung nicht verzerre? 
Dieser im Datenblatt als RTC bezeichnete Timer wird nämlich 
komischerweise nach jedem Reset zurückgesetzt.

von Stefan F. (Gast)


Lesenswert?

> Kann ich parallel zur Leitung zwischen D0 und RST
> einfach noch einen Taster hängen

Mach es so, damit du den Ausgang D0 nicht kurz schließt:
1
       220 Ohm
2
DO 0---[===]---+---o /Reset
3
       ____    |
4
GND |---  -----+
5
       Taster

Ich vermute, daß dein Timer vom Betriebsystem zurück gesetzt wird. Du 
kannst allerdings Daten im RAM der RTC ablegen, diese bleiben angeblich 
erhalten (hab ich noch nicht ausprobiert).

von André R. (andr_r619)


Lesenswert?

Danke für den Tip! Aber wäre der Widerstand nicht unmittelbar vor oder 
hinter dem Taster sinnvoller? Soweit ich weiß, zieht der ESP im 
Sleep-Mode D0 doch auf high und zum Wecken auf low, oder? In dieser 
Konstellation würde der Widerstand doch dann permanent wertvollen 
Akkustrom verbraten (die Installation soll autark an einem Akku laufen), 
oder?

Zum Thema RTC-Memory habe ich gestern schon ein bisschen gelesen. Der 
Speicher bleibt wohl auch nach dem Reset bestehen – zumindest bei den 
Leuten, die das Ganze getestet haben.

von Sascha W. (sascha-w)


Lesenswert?

André R. schrieb:
> Danke für den Tip! Aber wäre der Widerstand nicht unmittelbar vor oder
> hinter dem Taster sinnvoller? Soweit ich weiß, zieht der ESP im
> Sleep-Mode D0 doch auf high und zum Wecken auf low, oder? In dieser
> Konstellation würde der Widerstand doch dann permanent wertvollen
> Akkustrom verbraten (die Installation soll autark an einem Akku laufen),
> oder?
wie soll durch den Widerstand Strom fließen wenn er sich an der selben 
Stelle befindet die bei dir jetzt direkt verbunden ist?
Der Widerstand schützt den Ausgang D0 vor zu hohem Strom wenn der Taster 
den Reset-Anschluss nach Low zieht - und nur dann fließt auch Strom.

> Zum Thema RTC-Memory habe ich gestern schon ein bisschen gelesen. Der
> Speicher bleibt wohl auch nach dem Reset bestehen – zumindest bei den
> Leuten, die das Ganze getestet haben.
Ja der Speicher bleibt erhalten, für deinen Fall nützt dir das aber 
nichts da du an den Restwert des Sleeptimers nicht rankommst. Gut, ich 
weiß nicht ob das irgendwo dokumentiert ist auf welcher Adresse im 
RTC-Ram der Timer liegt, dann könntest du die Adressen direkt auslesen. 
Bleibt natürlich die Frage ob beim Booten diese Register irgendwie 
initialisiert werden, dann wäre es bei Start des Nutzerprogramms 
natürlich sowieso zu spät was auslesen zu wollen.
Macht doch eine NTP-Abfrage dann weißt du wann die nächste Minute voll 
ist.

Sascha

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.