Salut à tous, je cherche à comprendre depuis quelques jour pourquoi mon wemos D1 mini consomme 210 mA en fonctionnement normal ( wifi activé ) et 155mA en mode deepsleep. Ce qui me parait énorme. Je voudrais tester la température à intervalles régulier sur batterie.
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(REDLED, OUTPUT);
pinMode(GREENLED, OUTPUT);
digitalWrite(REDLED, LOW);
digitalWrite(GREENLED, HIGH);
delay(5000);
digitalWrite(REDLED, HIGH);
digitalWrite(GREENLED, LOW);
ESP.deepSleep(10E6);
}[code]
Doutant de ma réponse issue d'une lecture en diagonale de ton message initial j'a supprimé rapidement le message auquel tu réponds , OK ce n'est pas une bonne pratique...mais je n'imaginais pas une réaction aussi rapide.
Je pense maintenant que la carte n'entre pas réellement en mode deepsleep, reste à comprendre pourquoi.
De mémoire mes cartes Wemos D1 Mini non modifiées , consomment une centaine de µA en deepsleep. la Led intégrée unique de mes cartes D1 Mini étant eteinte (LED sur GPIO2)
'carte chinoise' ? Y'à pas mieux pour une D1 MIni !
Wemos est la société chinoise qui a concu et produit les D1 Mini
Je n'ai que ça (en nombreux exemplaires) et ne voit pas l'intérêt de chercher ailleurs un clone
(pour info je prend mes cartes D1 Mini sur la boutique Wemos d'Aliexpress)
Merci pour les infos, mes cartes viennent d'ali, elles m'ont toujours donné satisfaction. Même si j'ai un moment pensé qu'il pouvait s'agir d'un mauvais clone chinois d'une marque chinoise donc.
ESP.deepsleep(0), met en veille le module jusqu’à ce qu’il soit réveillé par un pic sur la broche RST
ESP.deepsleep(5 * 1000000), réveille le module toutes les 5 secondes
ESP.deepsleep(5000000, RF_DISABLED), réveille le module toutes les 5 secondes sans ré-activer le modem WiFi
La dernière ligne semble indiquer que le deepsleep ne coupe pas le wifi, ce qui pourrait être une source de consommation excessive.
On peut mettre en deepsleep sans la liaison que tu montres , le sept, mais sans elle pas de revéil automatique au bout d'un temps défini.
Sans cette liaison on réveille par une petite impulsion à 0 sur l'entrée Reset
J'avais compris que le second paramètre concerne le redémarrage (éventuel) du WiFi au réveil et que par principe le passage en deepsleep coupait le WiFien eteignat presque tous les éléments de l'ESP8266
10E6 correspond à 10 secondes, je vois bien que pendant ce temps, la consommation baisse un peu mais vraiment pas au niveau du micro ampère. Je suis donc coincé pour l'instant dans mon projet.
Sur quels GPIO et comment ont été branchées les leds vertes et rouges qu'on voit apparaître dans le code ?
Je reste sur l'idée que quelque chose dans la câblage provoque la consommation anormale pour un deepsleep()
EDIT : Je viens de tester le code suivant sur une D1 Mini , j'ai relié RST et D0 pour profiter du réveil automatique.
-Pendant les 3 secondes d'éveil la carte consomme 15mA en moyenne (WiFi non activé aux réveils )
-Pendant les 10 secondes de sommeil elle consomme 61µA sur l'entrée 5V Rien à part le fil de liaison RST-D0, et l'alimentation n'est raccordé à la carte
void setup() {
Serial.begin(115200);
Serial.println("on dort dans 3 secondes ");
delay(3000);
ESP.deepSleep(10E6, WAKE_RF_DISABLED);
}
void loop() {
}
Remarque : un ESP8266 insuffisemment alimenté (qui n'a pas tout le courant appelé) par en vrille
son courant peut alors être 'non négligeable'
J'avais branché les leds par la suite, pour observer la mise en veille même si la led verte ne s'allumait quand même pas - le wemos étant en veille.
J'ai tout décâblé sauf l'alim en 3.3V et le pont entre D0 et rst.
Toujours une conso importante, 180mA et 133mA en veille.
J'ai testé un nodeMcu, avec le même code, j'obtient 78mA en mode normal, et 9 mA en mode deepsleep.
Les consommations d'après la doc sont:
NodeMCU ESP12e:
80 mA en fonctionnement standard (avec des pics allant jusqu'a 150mA lors de la connexion au wifi d'une durée allant de 2 secondes à 8 secondes).
0,2 mA en mode deep sleep.
C'est donc ok pour le mode standard mais encore trop élevé pour le mode sleep.
Je commence à me demander si c'est pas ma mesure qui est mauvaise.
faire également l'essai en alimentant en 5V la carte D1 Mini et donc en utilisant son régulateur 3,3V et une bonne tension 3,3V
133mA : l'ESP8266 n'est pas en deepsleep ,comme demandé dans le code !!
Probablement par défaut d'alimentation dû au multimetre inséra entre la sortie d'alimentation 3,3V et l'entre 3,3V de la carte D1 Mini
Attention : le multimetre en mode 'mesure de courant' présente une résistance série non négligeable qui a pour conséquence une perte de tension et donc une sous alimentation de l'ESP8266 pouvant engendrer une anomalie de fonctionnement empêchant d'atteindre le deepsleep()
N.B Le bouton Range du mulimètre permet peut être de passer à un calibre voisin impliquant une résistance interne plus faible ...... et donc l'alimentation de l'ESP8266 à une tension plus proche de 3,3V à chaque instant de son fonctionnement
Surtout en calibre µA. En général pour mesurer le courant consommé par une PRO MINI je démarre sur le calibre mA, ensuite je commute sur µA quand le mode veille est activé, sinon la carte ne démarre pas.
Avec un ESP8266 c'est encore pire.
Oui c'est bien ca, carte défectueuse, j'ai essayé une autre : consommation normale 70mA et 0.13mA en veille. Comme quoi, une carte peut très bien fonctionner tout en présentant un défaut de consommation qui passe inaperçu tant qu'on la branche pas sur batterie. Merci à tous.