Sleep Timer ESP32 - AZ-Delivery

Salut ensemble,

combien de vll. savent de manière soutenue Dev Board avec ESP32 d'Espressif Deep Sleep le mode. Malheureusement cette fonction n'était pas bien implémentée, il y a de la même façon plusieurs faiblesses s'agit de faire attention. Premièrement le contenu de tous les variables se perd à Deep Sleep, deuxièmement le noeud part d'ESP32 après Deep Sleep wakeup de nouveau dans setup void (). Si un problème encore plus mauvais se joint : Wakeup ne fonctionne pas sûrement. A d'ESP quelques donc dorment de manière mise, il peut arriver il ne se réveille plus simplement. Sans ces cordes de cas dure de Deep Sleep le mode seulement Dreizeiler. Puisque, donc, voudrait avoir beaucoup de clients avec cela des problèmes j'ici un sketch mettent à la disposition et brièvement commentent dont ça dépend.

Matériel :

  • ESP32 Dev Board C
  • LED rouge
  • LED bleu

Le Verdrahtung :

Dev Board LED rouge LED bleu
22 +
23 +
GND GND GND

 

Pour LEDs, des prérésistances sont recommandées, ils ne sont pas nécessaires :)

 

Le code :

 

#define uS_TO_S_FACTOR 1000000  //si nous avons de l'exemple
#define TIME_TO_SLEEP  10 //nomen est....

RTC_DATA_ATTR int bootCount = 0; //seulement des valeurs dans l'entrepôt RTC
//restent
pourquoi nous tous
//Variable écrivent dans cet espace mémoire
//Leds fonctionne au contrôle ou cela : int REBOOT_LED = 23; //bleu int BOOT_LED = 22; //rouge void setup(){ //ici à chaque Wakeup, cela part  pinMode(REBOOT_LED,SORTIE); //lors de chaque départ  pinMode(BOOT_LED,SORTIE); //lors du premier départ  delay(500); //delay n'enlèvent pas!  //Seulement avec delay à ce lieu, il se réveille sûrement    if(bootCount == 0) //Si le compteur se trouve dans l'entrepôt RTC sur zéro  {      digitalWrite(BOOT_LED,HIGH);      bootCount = bootCount+1;  }else //à chacun wakeup  {      digitalWrite(REBOOT_LED,HIGH);  }    delay(1000); //LEDs éclairent pendant 1 seconde  digitalWrite(REBOOT_LED,LOW);  digitalWrite(BOOT_LED,LOW);  //avant que vous alliez de nouveau de  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
//met le minuteur  esp_deep_sleep_start(); //Bonne nuit! } void loop(){ //l'intégrité demi   }

 

Esp-32Grundlagen software

5 commentaires

Bruno

Bruno

Hallo,
der Source-Code des c‘t Projektes findet sich dort ( https://github.com/ct-Open-Source/ESP-Doorsensor ).

Peter N.

Peter N.

Ich habe diesen Aufbau getestet. Die Strommessung ergab folgende Werte:
Aufwachmodus 50mA mit zwei LEDs. Ohne 48mA. Der Schlafmodus hat erschreckende 9mA!
Dieser Wert ist einfach nicht für Batteriebetrieb geeignet.
Wenn ich den Wroom 32 Mini einsetze, komm ich auf 41mA aufgewacht und 1,6mA
im Sleepmodus. Das könnte man eventuell durch Entfernen der roten LED noch weiter senken.

Markus W

Markus W

@Piet
Ist hier nicht eher das Problem die Selbstentladung der Batterien und dass diese nach der Woche einfach nicht mehr die notwendige Spannung besitzen? Wie sind denn deine Werte an den Batterien gemessen?
Ich selbst bin gerade in der letzten Phase meine ePaper-Display-Projektes. Das betreibe ich mit einem 18650-Akku mit 3000mAh. Laut Logik und Theorie sollte ich damit Jahre hinkommen. Zumal ich den ESP32 nur 1x täglich aufwecke.

Piet

Piet

ich habe da ein ganz anderes Problem … Ich versorge den ESP32 mit zweimal 2200 mAh Batterien. Der Chip ist im deep sleep modus (hibernation state), wacht alle 2 Stunden auf misst die Feuchtigkeit (capacitive sensor), sendet sie via Bluetooth Low Energy und geht wieder schlafen. Funktioniert soweit gut.
In dieser Konfiguation sollte der Chip Monate (mal liest sogar von Jahre) laufen. Tatsächlich bringt er es gerade mal auf eine Woche.

Veit

Veit

puh 500ms ist aber schon recht lang wenn man einen quick-wakeup haben will …. in der ct gabs mal einen türsensor mit esp32 der sich immer schlafen gelegt hat, da war sicherlich keine 500ms pause drin. wäre vielleicht mal interessant ob die auch das problem hatten bzw wie sie es gelöst haben.

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Articles de blog recommandés

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery