{"id":1466,"date":"2019-04-22T21:15:03","date_gmt":"2019-04-22T19:15:03","guid":{"rendered":"http:\/\/domotics.fr\/?p=1466"},"modified":"2023-11-19T11:55:04","modified_gmt":"2023-11-19T10:55:04","slug":"deep-sleep-esp8266-basse-consommation-sommeil-profond","status":"publish","type":"post","link":"https:\/\/domotics.fr\/index.php\/2019\/04\/22\/deep-sleep-esp8266-basse-consommation-sommeil-profond\/","title":{"rendered":"DEEP SLEEP, L&rsquo;ESP8266 basse consommation sommeil profond"},"content":{"rendered":"\n<p>Donc, vous avez construit ce projet g\u00e9nial en utilisant du mat\u00e9riel a base ESP8266 et de batterie <a rel=\"noreferrer noopener\" href=\"https:\/\/rogershobbycenter.com\/lipoguide\/\" target=\"_blank\">LiPo<\/a>, et de <a href=\"https:\/\/www.sparkfun.com\/products\/13231\">SparkFun ESP8266 Thing\u00a0<\/a>ou\u00a0<a href=\"https:\/\/www.adafruit.com\/product\/3046\">Adafruit plumes Hourra<\/a> .\u00a0\u00a0Vous venez de connecter votre NodeMCU \u00e0 une <a rel=\"noreferrer noopener\" href=\"https:\/\/www.amazon.com\/s\/?ie=UTF8&amp;keywords=usb+battery+pack&amp;tag=googhydr-20&amp;index=aps&amp;hvadid=181914102202&amp;hvpos=1t1&amp;hvnetw=g&amp;hvrand=16056003527294840518&amp;hvpone=&amp;hvptwo=&amp;hvqmt=e&amp;hvdev=c&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9060257&amp;hvtargid=kwd-1670787748&amp;ref=pd_sl_7l884ld4l7_e_p20\" target=\"_blank\">batterie USB<\/a> . Mais apr\u00e8s une nuit d&rsquo;essai grandeur nature, vous vous rendez compte que la batterie ne dure pas tr\u00e8s longtemps.\u00a0 <\/p>\n\n\n\n<p>Lisez ces quelques lignes et passez en mode SLEEP&#8230;<\/p>\n\n\n\n<p>Il existe quatre types de modes de sommeil pour l\u2019ESP8266: absence de sommeil, sommeil moderne, sommeil l\u00e9ger et sommeil profond.<\/p>\n\n\n\n<p>Ils ont tous des fonctions diff\u00e9rentes:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/domotics.fr\/wp-content\/uploads\/2019\/04\/deep_sleep_esp8266.png\" alt=\"\" class=\"wp-image-1467\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/domotics.fr\/wp-content\/uploads\/2019\/04\/esp8266_consommation_espressif-1024x569.png\" alt=\"\" class=\"wp-image-1468\"\/><\/figure>\n\n\n\n<p>En \u00e9crivant ses quelques lignes, j&rsquo;ai pens\u00e9 comparer avec l&rsquo;ESP32, voici ce que dit le site d&rsquo;espresssif.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/domotics.fr\/wp-content\/uploads\/2019\/04\/deep_sleep_esp32-1024x531.png\" alt=\"\" class=\"wp-image-1469\"\/><\/figure>\n\n\n\n<p>Remarque: <\/p>\n\n\n\n<p>\u2022 * Parmi les SoC de la s\u00e9rie ESP32, les ESP32-D0WDQ6 et ESP32-D0WD ont une fr\u00e9quence CPU maximale de 240 MHz, les ESP32-D2WD et les ESP32-S0WD ont une fr\u00e9quence CPU maximale de 160 MHz. <\/p>\n\n\n\n<p>\u2022 Lorsque le Wi-Fi est activ\u00e9, la puce bascule entre les modes Actif et Modem-veille. Par cons\u00e9quent, la consommation d&rsquo;\u00e9nergie change en cons\u00e9quence.<\/p>\n\n\n\n<p> \u2022 En mode veille modem, la fr\u00e9quence de la CPU change automatiquement. La fr\u00e9quence d\u00e9pend de la charge du processeur et des p\u00e9riph\u00e9riques utilis\u00e9s.<\/p>\n\n\n\n<p>\u2022 En veille prolong\u00e9e, lorsque le coprocesseur ULP est activ\u00e9, des p\u00e9riph\u00e9riques tels que GPIO et I\u00b2C peuvent fonctionner. <\/p>\n\n\n\n<p>\u2022 Lorsque le syst\u00e8me fonctionne dans le mod\u00e8le surveill\u00e9 par le capteur ULP, le coprocesseur ULP fonctionne r\u00e9guli\u00e8rement avec le capteur ULP et le CAN avec un cycle de travail de 1%, de sorte que la consommation d&rsquo;\u00e9nergie est de 100 \u00b5A.<\/p>\n\n\n\n<p>Revenons a nos moutons, voici la description des diff\u00e9rents modes de sommeil.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>NO SLEEP<\/strong><\/h3>\n\n\n\n<p>Le param\u00e8tre No-Sleep gardera tout en permanence.&nbsp;De toute \u00e9vidence, c&rsquo;est le plus inefficace et drainera le plus courant.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>MODEM-SLEEP<\/strong><\/h3>\n\n\n\n<p>Modem-sleep est le&nbsp;mode&nbsp;<strong>par d\u00e9faut<\/strong>&nbsp;pour l&rsquo;ESP8266.&nbsp;Cependant, il n&rsquo;est activ\u00e9 que lorsque vous \u00eates connect\u00e9 \u00e0 un point d&rsquo;acc\u00e8s.<\/p>\n\n\n\n<p>En mode veille modem, l\u2019ESP8266 d\u00e9sactive autant que possible le modem (WiFi).&nbsp;Il \u00e9teint le modem entre les&nbsp;intervalles&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Delivery_traffic_indication_message\" target=\"_blank\" rel=\"noreferrer noopener\">DTIM<\/a>Beacon.&nbsp;Cet intervalle est d\u00e9fini par votre routeur.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>LIGHT SLEEP<\/strong><\/h3>\n\n\n\n<p>Light-sleep remplit la m\u00eame fonction que Modem-sleep, mais \u00e9teint \u00e9galement l&rsquo;&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/System_time\" target=\"_blank\" rel=\"noreferrer noopener\">horloge syst\u00e8me<\/a>&nbsp;et suspend le processeur.&nbsp;Le processeur n&rsquo;est pas \u00e9teint;&nbsp;c&rsquo;est juste au ralenti.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>DEEP SLEEP<\/strong><\/h3>\n\n\n\n<p>Tout est \u00e9teint sauf l&rsquo;horloge temps r\u00e9el (RTC), qui permet \u00e0 l&rsquo;ordinateur de conserver l&rsquo;heure.&nbsp;Puisque tout est \u00e9teint, c&rsquo;est l&rsquo;option la plus \u00e9conome en \u00e9nergie.&nbsp;<\/p>\n\n\n\n<p>Si vous avez besoin de plus de d\u00e9tails, assurez-vous de consulter la&nbsp;<a href=\"http:\/\/www.espressif.com\/sites\/default\/files\/9b-esp8266-low_power_solutions_en_0.pdf\">documentation<\/a>&nbsp;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DEEP-SLEEP<\/h2>\n\n\n\n<p>Modem-sleep et Light-sleep&nbsp;sont utiles si votre ESP8266 doit encore fonctionner et que vous souhaitez disposer d&rsquo;options d&rsquo;alimentation suppl\u00e9mentaires.&nbsp;Ils sont \u00e9galement facilement configurables dans les&nbsp;<a href=\"https:\/\/github.com\/esp8266\/Arduino\/blob\/4897e0006b5b0123a2fa31f67b14a3fff65ce561\/doc\/esp8266wifi\/generic-class.md#other-function-calls\">param\u00e8tres WiFi de<\/a>&nbsp;l&rsquo;&nbsp;<a href=\"https:\/\/github.com\/esp8266\/Arduino\/blob\/4897e0006b5b0123a2fa31f67b14a3fff65ce561\/doc\/esp8266wifi\/generic-class.md#other-function-calls\">ESP8266<\/a>&nbsp;.&nbsp;Mais, si vous avez besoin d&rsquo;un certain contr\u00f4le de la puissance, le sommeil profond est la voie \u00e0 suivre.<\/p>\n\n\n\n<p>Avec Deep-sleep, notre structure d\u2019application peut suivre les \u00e9tapes suivantes:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Effectuer une action (lire \u00e0 partir d&rsquo;un capteur)<\/li><li>Dormir pendant quelques <code>n<\/code>\u00a0microsecondes<\/li><li>R\u00e9p\u00e9ter<\/li><\/ol>\n\n\n\n<p>Il est important de noter que le temps de sommeil est sp\u00e9cifi\u00e9 en microsecondes (\u00b5s).<\/p>\n\n\n\n<p>Fait amusant, vous ne pouvez pas dormir pour toujours. Selon le SDK ESP8266, vous ne pouvez dormir que 4 294 967 295 \u00b5s, ce qui correspond \u00e0 environ 71 minutes. Je crois d&rsquo;ailleurs que l&rsquo;ESP32 r\u00e8gle ces probl\u00e8mes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Connexion<\/h2>\n\n\n\n<p>Concernant le c\u00e2blage du mode SLEEP rien de bien sorcier il faut raccorder la broche GPIO16 (D0) \u00e0 la broche RST.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/domotics.fr\/wp-content\/uploads\/2019\/04\/deep_sleep_esp8266_wiring-1024x677.png\" alt=\"\" class=\"wp-image-1470\"\/><\/figure>\n\n\n\n<p>Passons maintenant \u00e0 un extrait decode. Dans cet exemple, nous utiliserons l&rsquo;interface de l&rsquo;IDE Arduino.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p> \/**<br> * An example showing how to put ESP8266 into Deep-sleep mode<br> *\/<br>void setup() {<br><\/p><p>Serial.begin(115200);<\/p><p>Serial.setTimeout(2000);<br><br> \/\/ Wait for serial to initialize.<br> while(!Serial) { }<br>Serial.println(\u00ab\u00a0I&rsquo;m awake.\u00a0\u00bb);<br>Serial.println(\u00ab\u00a0Going into deep sleep for 20 seconds\u00a0\u00bb);<br>ESP.deepSleep(20e6); \/\/ 20e6 is 20 microseconds<br>}<br>void loop() {<br>} <\/p><\/blockquote>\n\n\n\n<p> Dans cet exemple, nous nous connectons en s\u00e9rie, passons en veille pendant 20 secondes et r\u00e9p\u00e9tons.\u00a0Vous pouvez utiliser cet exemple comme passe-partout pour d&rsquo;autres programmes. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ESPEASY et DEEP SLEEP<\/h2>\n\n\n\n<p>L&rsquo;ESP8266 peut \u00eatre r\u00e9gl\u00e9 sur sommeil profond avec <a href=\"https:\/\/www.letscontrolit.com\/wiki\/index.php\/ESPEasy\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"ESPEASY (s\u2019ouvre dans un nouvel onglet)\">ESPEASY<\/a>. Vous devez toujours connecter GPIO-16 (D0) avec la broche RST pour que cela fonctionne.<\/p>\n\n\n\n<p>Que fait le mode veille au r\u00e9veil:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Effectuez une tentative de connexion au SSID et au SSID2 s\u2019il est d\u00e9fini.<\/li><li>S&rsquo;il ne parvient pas \u00e0 se connecter et que vous avez activ\u00e9 l&rsquo;option&nbsp;<strong>Mettre en veille en cas d&rsquo;\u00e9chec de la connexion<\/strong>&nbsp;, il se remettra imm\u00e9diatement en veille.<\/li><li>Il enverra toutes les lectures du capteur en m\u00eame temps (les d\u00e9lais sont ignor\u00e9s, sauf pour Message Delay sur la page des param\u00e8tres avanc\u00e9s)<\/li><li>Il s&rsquo;\u00e9teindra et dormira pendant le nombre de secondes d\u00e9fini dans le&nbsp;param\u00e8tre&nbsp;<strong>D\u00e9lai de veille<\/strong>&nbsp;.&nbsp;Deepsleep utilise un compteur interne 32 bits en ussec.&nbsp;Cela signifie que cela fonctionne jusqu&rsquo;\u00e0 4294 secondes, des d\u00e9lais plus longs ne fonctionneront pas.&nbsp;Par exemple, le&nbsp;<strong>temps de sommeil<\/strong>&nbsp;le&nbsp;<strong>plus long est d&rsquo;environ 1 heure et 11 minutes<\/strong>&nbsp;.<\/li><\/ul>\n\n\n\n<p>Cela \u00e9conomise beaucoup d&rsquo;\u00e9nergie et vous permet d&rsquo;utiliser l&rsquo;ESP8266 avec des piles.<\/p>\n\n\n\n<p>Notez qu&rsquo;il est recommand\u00e9 de d\u00e9finir l&rsquo;intervalle des messages sur 100 (ou moins) dans la page des param\u00e8tres avanc\u00e9s, car vous souhaitez que l&rsquo;unit\u00e9 diffuse des messages le plus rapidement possible afin d&rsquo;\u00e9conomiser la pr\u00e9cieuse batterie.<\/p>\n\n\n\n<p>Utilisation du mode Veille prolong\u00e9e pour\u00a0<a href=\"https:\/\/www.letscontrolit.com\/wiki\/index.php?title=Tutorial_Battery_Powered_Devices\">les appareils aliment\u00e9s<\/a>\u00a0par\u00a0<a href=\"https:\/\/www.letscontrolit.com\/wiki\/index.php?title=Tutorial_Battery_Powered_Devices\">batterie,<\/a>\u00a0voir ici.<\/p>\n\n\n\n<p>pour plus de d\u00e9tails c&rsquo;est par l\u00e0:  <br><a href=\"https:\/\/www.letscontrolit.com\/wiki\/index.php\/SleepMode\">https:\/\/www.letscontrolit.com\/wiki\/index.php\/SleepMode<\/a> <\/p>\n\n\n\n<p>Bref, vous l&rsquo;aurez compris, si vous fabriquez un truc un peu nomade ou que vous souhaitez gagner en autonomie, pensez deep sleep.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Donc, vous avez construit ce projet g\u00e9nial en utilisant du mat\u00e9riel a base ESP8266 et de batterie LiPo, et de SparkFun ESP8266 Thing\u00a0ou\u00a0Adafruit plumes Hourra .\u00a0\u00a0Vous venez de connecter votre NodeMCU \u00e0 une batterie USB . Mais apr\u00e8s une nuit d&rsquo;essai grandeur nature, vous vous rendez compte que la batterie ne dure pas tr\u00e8s longtemps.\u00a0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[73,89,145],"class_list":["post-1466","post","type-post","status-publish","format-standard","hentry","category-esp8266","tag-deep-sleep","tag-esp8266","tag-modem-sleep","entry"],"_links":{"self":[{"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/posts\/1466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1466"}],"version-history":[{"count":1,"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/posts\/1466\/revisions"}],"predecessor-version":[{"id":2426,"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/posts\/1466\/revisions\/2426"}],"wp:attachment":[{"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/domotics.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}