Go Down

Topic: ESP-01 Raison du reset (Read 335 times) previous topic - next topic

slayes

Bonjour à tous,

Je travaille sur un ESP-01 pour faire un détecteur de présence avec un SR501.
L'ESP-01 démarre puis se met en veille avec un deepsleep et le SR501 le réveille lors d'une détection.
Tout cela fonctionne bien, maintenant je voudrais programmer un réveil tous les 24hr pour envoyer le niveau de batterie et montrer que le capteur est toujours en vis.

J'ai tente d'utiliser "ESP.getResetReason()", la fonction renvoie toujours 5 pour un réveil automatique ou un réveil par le reset.
Y a t'il une façon de faire pour différencier les 2 modes ?

Merci par avance de votre aide

al1fch

#1
Jun 15, 2020, 04:08 pm Last Edit: Jun 15, 2020, 05:00 pm by al1fch
Bonjour

Quote
Y a t'il une façon de faire pour différencier les 2 modes ?
Pas évident  simplement car le reveil d'un deepsleep produit un reset hardware (le GPIO16 , passe à l'état bas  et provoque un reset physique) .
L'évènement est donc unique quelque soit la raison de l'action sur RST.

Avec un GPIO disponible en entrée sur l'ESP-01  (RX alias GPIO3 par exemple) , relié à la sortie du SR501,  il est sans doute possible de profiter du fait que le niveau haut  en sortie ddu SR501 lors d'une détection de présence dure environ 2s, donc plus longtemps que le démarrage de l'ESP01.
-> tester la sortie du SR501 à chaque redémarrage

A chaque redémarrage  de l'ESP01 tester l'état du GPIO relié directement au SR501, s'il est à l'état bas le reset  a été provoque par un réveil, sinon il a été provoqué par le détecteur de présence

slayes

Merci pour votre réponse.
C'est ce que je craignais.

Les ESP sont assez sympa comme produit, par contre je trouve qu'il y a quand même quelques lacunes, par exemple :
- on sait donner un délais pour la fonction deepSleep, il y a donc un "timer" qui tourne. Le process qui lance le réveil pourrait stocker un status dans la mémoire RTC.
- on ne peut pas récupérer le "temps" écoulé entre le réveil et le précédent.

C'est vraiment dommage .... A moins d'avoir louper quelque chose ?

hbachetti

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

al1fch

#4
Jun 15, 2020, 07:29 pm Last Edit: Jun 16, 2020, 11:06 am by al1fch
Quote
on ne peut pas récupérer le "temps" écoulé entre le réveil et le précédent.
Pourquoi pas ?
Ce temps écoulé se compose  de deux éléments accessibles :

-le temps d'éveil que l'on peut connaître via millis() et mémoriser dans la RAM RTC si on veut le retrouver au réveil suivant
-du temps de sommeil qie l'on définit soi  même
Quote
Les ESP sont assez sympa comme produit, par contre je trouve qu'il y a quand même quelques lacunes
+ comme indiqué par hbachetti les ESP8266 ne sont  les seuls ESP !
les ESP32 permettent certaines choses supplémentaires et les ESP-32 S2 qui arrivent d'autres encore ... et ce n'est pas fini

Go Up