La consommation électrique de l'ESP32 peut être réduite grâce à ses modes de veille

Par Jeremy Cook

L'ESP32 est un appareil incroyable : il est capable de traiter des informations à des fréquences de plusieurs centaines de mégahertz, de communiquer par Wi-Fi et Bluetooth et d'exécuter un large éventail de tâches grâce à ses broches GPIO. Pourtant, on pourrait dire qu'un grand pouvoir implique... une grande…consommation électrique.

Pour être honnête, la consommation électrique de l'ESP32 est relativement faible par rapport à celle de dispositifs comparables d'il y a 10 ans. Mais pour les applications IoT modernes, surtout si une pile est nécessaire, elle peut représenter un lourd fardeau, avec une consommation de plusieurs centaines de milliampères de courant au plus fort de l'activité.

Heureusement, l'ESP32 possède également des modes de veille et d'hibernation. Utilisés avec soin, ces modes permettent de maîtriser l'appétit de l'ESP ou, au moins, de le circonscrire à de brefs pics d'activité.

Modes de veille

Le tableau suivant, tiré de la fiche technique de l'ESP32, répertorie les modes de veille profonde et les autres modes d'alimentation de l'appareil :

Body Image 1 ESP32 Power Consumption Can Be Reduced With Sleep Modes

Copie d'écran de la fiche technique

L'ESP32 possède cinq modes basse consommation : veille modem, veille légère, veille profonde, hibernation et mise hors tension. La veille modem et la veille profonde présentent plusieurs sous-modes, avec différents taux de consommation électrique selon leurs capacités de traitement actives. L'hibernation stoppe la quasi-totalité des fonctionnalités de la puce, à l'exception d'une horloge en temps réel destinée à la réveiller à l'issue d'une période définie. Le mode de mise hors tension est activé lorsqu'une broche CHIP_PU est réglée sur une valeur basse et nécessite une interaction externe pour reprendre les traitements.

L'avantage de tout ceci est que les modes basse consommation de l'ESP32 peuvent consommer respectivement entre 68 mA et 5 µA ou 0,068 A et 0,000005 A, indépendamment de la mise hors tension. L'inconvénient est que chaque mode limite l'utilité du l'ESP32, comme cela est expliqué ci-dessous :

  • Veille modem : les communications sans fil sont interrompues.
  • Veille légère : place le processeur en pause, mais conserve les états de la mémoire.
  • Veille profonde : désactive la mémoire principale de l'ESP32. Une quantité limitée de mémoire RTC (horloge en temps réel) est conservé et peut être utilisée pour le réveil. Le processeur ULP (ultra-basse consommation) est actif dans deux des trois sous-modes de veille profonde, ce qui permet d'exécuter des tâches simples et de surveiller les entrées.
  • Hibernation : ne laisse que la RTC et un nombre limité de broches GPIO actives pour le réveil. Aucune mémoire n'est conservée.
  • Mise hors tension : la mise sous tension doit être effectuée de façon externe. La consommation électrique de 1 µA est négligeable dans la plupart des cas.
  • Si l'on néglige les effets de tension, une petite pile rechargeable de 3,7 V et 850 mAh pourrait alimenter une ESP32 en mode de veille modem pendant environ 12,5 heures. La veille légère pourrait durer plus de 1 000 heures. Une hibernation de mi-niveau de veille profonde offre une durée de 8 500 heures (environ un an), tandis qu'un état d'hibernation pourrait en théorie être maintenu pendant près de 20 ans. Bien évidemment, l'appareil devra être réveillé de temps à autre pour être d'une quelconque utilité, mais une planification soigneuse pourrait permettre de conférer une très longue durée de vie à une configuration avec ESP32 entre deux rechargements.

    Différences entre les modes de veille profonde de la carte de développement ESP32

    Body Image 2 ESP32 Power Consumption Can Be Reduced With Sleep Modes

    Copie d'écran de la fiche technique

    Lorsqu'il s'agit de consommation électrique, une puce ou un module ESP32 ne représente qu'une partie de l'appareillage électronique. Si vous souhaitez expérimenter, vous utiliserez probablement une carte de développement. Pour les conceptions électroniques plus épurées, un arrangement personnalisé de pièces associées sera nécessaire pour exécuter un « objet » IoT. Correctement programmée, une ESP32 peut faire preuve d'une grande efficacité énergétique, mais l'électronique environnante doit être pensée avec soin.

    Pour illustrer ce point, j'ai branché une carte de développement Adafruit HUZZAH32 ESP32à une alimentation et à un matériel de mesure du courant, ainsi qu'à une carte ESP32 DFRobot DFR0478. Toutes deux figurent dans cette publication sur une horloge vidéo composite avec ESP32 et ont manifesté des comportement différents dans ce qui pourrait être considéré comme un cas d'utilisation assez confidentiel. Le rendement énergétique pourrait aussi se révéler être un paramètre distinctif entre les deux.

    Pour le vérifier, j'ai utilisé un exemple modifié de « TimerWakeUp » d'ESP32 Arduino qui passe en veille profonde, se réveille, allume le voyant LED, puis redémarre le cycle en repassant en veille. Chaque carte a reçu 5,3 V à convertir en une tension d'environ 3,3 nécessaire pour alimenter l'ESP32. La consommation a été la suivante :

    HUZZAH32 :   veille = 6,6 mA    active = 43,2 mA active + LED = 44,6 mA 
     DFR0478 :  veille = 0,02 mA     active = 39,7 mA active + LED = 40 mA

    Pour être honnête, une mesure du courant au niveau du port batterie dans un cas réel d'utilisation IoT aurait constitué une meilleure simulation. Il apparaît néanmoins dans ce scénario que la carte DFR0478 FireBeetle est bien plus efficace en mode veille que son homologue.

    La HUZZAH32 tire 7 000 µA (7 mA) de la batterie en veille profonde, soit à peu près ce que j'avais mesuré dans mon expérience. Une analyse réalisée par Andreas Spiess a montré que la DFR0478 consommait 53 µA (0,053 mA) de courant de la batterie en mode de veille profonde. Cela fait nettement plus que ce que j'avais mesuré sur la DFR0478, mais son rapport utilise une alimentation différente et une version plus ancienne de la carte (la 2.0 au lieu de la 4.0 que j'avais testée). Cette mesure atteint également la limite inférieure de ce que mon multimètre est capable de mesurer, ce qui pourrait influer sur sa précision. Dernier bémol enfin, la FireBeetle testée utilise un module WROOM-32D ESP32, alors que la HUZZAH32 utilise un WROOM-32E.

    Cela dit, la différence entre les deux cartes testées est de plusieurs ordres de grandeur, ce qui montre bien que le circuit entourant l'ESP32 peut très fortement influer sur la consommation électrique.

    Consommation électrique de l'ESP32 tempérée par les modes de veille

    L'ESP32 est un appareil d'une incroyable puissance qui peut nécessiter une quantité d'énergie assez importante pour fonctionner. Toutefois, avec une programmation attentive, il est possible de le faire fonctionner sur batterie pendant des semaines, des mois, voire plus. Le secret est de bien connaître les compromis qu'entraîne une conception basse consommation et de savoir ce qui peut être abandonné sans trop compromettre les performances.

    Actualité

    Sorry, your filter selection returned no results.

    Nous avons mis à jour notre politique de confidentialité. Prenez un moment pour lire les changements. En cliquant sur "J'accepte", vous acceptez la clause de confidentialité d'Arrow Electronics ainsi que les conditions d'utilisation.

    Notre site Internet place des cookies sur votre appareil pour améliorer votre expérience et pour améliorer notre site. Pour en savoir plus sur les cookies que nous utilisons et la façon de les désactiver, cliquez ici. Des cookies et des technologies de suivi peuvent être utilisés à des fins de marketing. En cliquant sur « Accepter », vous consentez au placement de cookies sur votre appareil et à notre utilisation de technologies de suivi. Cliquez sur « En savoir plus » pour de plus amples informations et instructions sur la façon de désactiver les cookies et les technologies de suivi. Même si l'acceptation des cookies et technologies de suivi est volontaire, leur désactivation peut entraîner un mauvais fonctionnement du site Internet et certaines publicités peuvent être moins pertinentes pour vous. Nous respectons votre confidentialité. Lisez notre politique de confidentialité ici.