ESP01 et deepSleep

bonjour,

je souhaite essayer de faire un thermomètre a base de ESP01 sur batterie,

j'ai besoin qu'il se mette en veille profonde après avoir fait une lecture et l'envoi MQTT

j'ai fait la modif pour relier mon RST au GPIO comme j'ai trouvé sur différents sites,

j'ai fait un programme de test :

void setup() {

Serial.begin(115200);

Serial.println(" ");
delay(2000);
Serial.println("Wake up");
delay(2000);
Serial.println("3");
delay(2000);
Serial.println("2");
delay(2000);
Serial.println("1");
delay(2000);
Serial.println("time to sleep !");
delay(2000);

ESP.deepSleep( 10 * 1000000);

delay(2000);
Serial.println("off ?");
}

void loop() {

}

par contre,
il semble bien se mettre en veille
mais après le temps prévu j'ai un retour RS étrange une seule fois et plus rien après !

ce qui le laisse penser que mon fil est bien relié puisque j'ai une réaction mais le réveil n'est pas correct !

une idée ?

Capture d’écran du 2020-04-07 08-17-37.png

Bonjour

Au réveil un ESP redémarre complètement.
Voir d'abord des caractères 'bizarres' n'est pas étonant puisque l'ESP8266 comence par émettre à 78800 bauds un message de démarrage .... ensuite devraient appararaître en clair 'wake up' 3 3 1

tester une valeur plus faible dans l'appel de deepsleep au delà d'une certaine limite cela ne fonctionne pas correctement.

71 minutes maxi ou, en écrivant comme ci-dessous, avec ULL on peut atteindre 3h.
Intervalle içi est en minutes

ESP.deepSleep(intervalle * 60 * 1000000ULL, WAKE_RF_DEFAULT);

tester une valeur plus faible dans l'appel de deepsleep au delà d'une certaine limite cela ne fonctionne pas correctement.

on est bien d'accord que :

ESP.deepSleep( 10 * 1000000, WAKE_RF_DEFAULT);

ça doit bien faire 10s ?
donc je suis bien en dessous des 71minutes
et cela devrait fonctionner ?

:o
bon je n'avait pas fait le test ... mais avec un module qui n'a pas la liaison GPIO > RST j'ai exactement le même résultat
c'est donc que ma commande de reset ne se fait pas correctement
alors je vais revoir ma soudure !
et peut être ressortir l'oscillo pour voir ce que j'ai réellement sur cette broche !

nous sommes d'accord sur les 10s !!

la liaison à faire pour le réveil est délicate et c'est l'une des raisons de mon abandon total des ESP-01 depuis plus de 4 ans .....et dans la foulée des firmwares AT (pour mes ESP8266 je n'utilise plus que des cartes D1 Mini , en solo, porogrammées sous IDE Arduino)
reveil.png

reveil.png

Bonjour

J'ai essayé sans succès de faire la même chose.
L'ESP consomme trop et trop longtemps au reveil, lorsqu'il se connecte au wifi.
Il est peu probable que tu atteignes une durée de plusieurs mois avant rechargement de la batterie.
Perso je n'ai pas trouvé de solution autonome satisfaisante à base d'esp.

Suis en train de me rabattre sur les solutions pro mini + nrf24l01

Je n'ai gardé la solution esp que pour les sondes avec alim électrique, en gardant le principe du deepsleep pour consommer que dalle et limiter les ondes wifi.

Bonjour

L'ESP consomme trop et trop longtemps au reveil, lorsqu'il se connecte au wifi.

C'est une donnée de premier plan et je la surveille en permanence (histogramme sur ThingSpeak) et j'arrive à des sessions de l'ordre de 0,8s en moyenne pour des sondes situées à moins de 10m de la Freebox.
durées.png

Tout dépend ensuite de la cadence des réveils.

Une sonde construite sur une D1 Mini , située à 6m de la box , faisant un envoi par heure vers ThingSpeak , alimentée (sans régulateur) directement par un accu 3,2V LiFePo4 (1500mAh) tient plus de 10 mois. y est utilisé en mode 10 bits pour réduire le temps d'acquisition. Je réduis également un peu la puisance d'émission dans le cas des sondes proches de la box et je travaille en IP fixe.
La surveillance permanente du temps de session facilte la mise au point et le test des diverses 'combines'

j'y trouve mon compte et ait plusieurs sondes du même accabit. (j'ai déjà montré le code et je peux le refaire si cela intéresse)

durées.png