Aller au contenu

Gestion de l'énergie

L'autonomie d'un nœud IoT se conçoit au niveau de l'architecture, pas après coup — chaque choix logiciel et matériel a un coût énergétique qui se paye en semaines ou en années de durée de vie batterie.


Modes de veille : la hiérarchie du sommeil

Les microcontrôleurs modernes proposent plusieurs niveaux de veille, chacun désactivant progressivement des sous-systèmes pour réduire la consommation. Le compromis est toujours le même : plus la veille est profonde, moins on consomme, mais plus le réveil prend du temps.

Modes de veille typiques

flowchart LR
    RUN["Mode RUN\nCPU actif\nTous périphériques\n5–80 mA"] --> SLEEP["Sleep\nCPU stoppé\nPériphériques actifs\nRéveil: interruption\n0,5–5 mA"]
    SLEEP --> LPSLEEP["Low-Power Sleep\nCPU stoppé\nHorloge réduite\nRTC actif\n50–500 µA"]
    LPSLEEP --> STOP["Stop / Deep Sleep\nCPU + RAM alimentés\nHorloges stoppées\nRéveil: GPIO / RTC\n2–50 µA"]
    STOP --> STANDBY["Standby\nSeul RTC + backup regs\nRAM perdue\nRéveil: WAKEUP pin / RTC\n0,5–5 µA"]
    STANDBY --> SHUTOFF["Shutdown / Off\nTout coupé\nRéveil: reset externe\n< 0,1 µA"]

Consommation par mode : comparaison MCU populaires

MCU Run (80 MHz) Sleep Stop / DeepSleep Standby Shutdown
STM32L4+ (ST) 28 µA/MHz 8 µA 2,4 µA 300 nA 30 nA
nRF52840 (Nordic) 58 µA/MHz 1,5 µA 1,5 µA (System ON RAM ret.) 0,7 µA 0,5 µA
ESP32 (Espressif) 80 mA (Wi-Fi actif) 6,8 mA (modem sleep) 0,8 mA (light sleep) 10 µA (deep sleep) 5 µA
SAML21 (Microchip) 35 µA/MHz 1,3 µA 0,8 µA 200 nA 100 nA
CC1312R (TI) 61 µA/MHz 0,85 µA 0,7 µA 185 nA

Note ESP32 : la consommation élevée en mode run reflète la présence du module Wi-Fi. En mode deep sleep avec réveil par timer, l'ESP32 consomme 10 µA — parfaitement adapté à des cycles de mesure toutes les minutes.

Wake-on-event

Le réveil sur événement externe (GPIO, RTC, ADC threshold, UART start bit) permet de ne réveiller le MCU que si quelque chose s'est passé :

// STM32L4 : configuration réveil sur RTC (toutes les 60 secondes)
HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, 60, RTC_WAKEUPCLOCK_CK_SPRE_16BITS);
// ... transmission, mesure ...
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
// Le MCU se rendort ici — réveil par RTC dans 60 s

Duty cycle et impact sur la durée de vie

Le duty cycle est le rapport entre le temps actif et le temps total. C'est le levier le plus puissant pour l'autonomie.

Formule de base

I_moy = I_actif × DC + I_veille × (1 - DC)
où DC = t_actif / T_cycle

Exemple chiffré : nœud ESP32 + LoRa

Configuration :

  • Mesure capteur : 20 ms à 30 mA
  • Transmission LoRaWAN SF7 (paquet 20 octets) : 56 ms à 120 mA
  • Calcul + overhead firmware : 10 ms à 25 mA
  • Veille deep sleep : le reste du cycle à 10 µA
  • Période de cycle : 10 minutes (600 s)

Calcul :

t_actif = 20 + 56 + 10 = 86 ms
t_veille = 600 000 - 86 = 599 914 ms

Charge active = (30 mA × 20 + 120 mA × 56 + 25 mA × 10) ms
              = (600 + 6720 + 250) mC = 7570 µAh

Charge veille = 10 µA × 599,914 s ≈ 1666 µAh

Charge totale par cycle = 7570 + 1666 = 9236 µAh

I_moy = 9236 µAh / 600 s × (3600 s/h) ≈ 55,4 µA

Avec une batterie Li-SOCl₂ de 3600 mAh (pile ½AA) :

Durée de vie = 3 600 000 µAh / 55,4 µA ≈ 65 000 heures ≈ 7,4 ans

En tenant compte de l'autodécharge de la Li-SOCl₂ (1–2 % par an) et des pertes du régulateur (~85 %) :

Durée de vie réelle ≈ 5–6 ans

Energy Harvesting : alimenter sans batterie

Solaire

Le solaire est la source de harvesting la plus mature et la plus prévisible. L'énergie disponible dépend fortement du contexte de déploiement.

Contexte Éclairement Puissance disponible (cellule 10 cm²)
Plein soleil été 100 000 lux ~100 mW
Ciel nuageux 10 000 lux ~10 mW
Intérieur bureau 500 lux 0,5 mW
Couloir éclairage LED 100 lux 0,1 mW

Un nœud LoRaWAN consommant 55 µA en moyenne = 0,17 mW @ 3,3 V. Une cellule solaire amorphe de 5 cm² dans un bureau éclairé (200 lux) produit ~0,1 mW — insuffisant. Il faut 15–20 cm² minimum pour une alimentation fiable en intérieur.

Vibration piézoélectrique

Les capteurs piézoélectriques convertissent les déformations mécaniques en tension électrique. Sur une machine industrielle vibrant à 50–100 Hz avec une accélération de 0,5–2 g, un transducteur piézo de 50 mm × 50 mm peut fournir 50–200 µW — suffisant pour des mesures et transmissions peu fréquentes.

Thermique (TEG — Thermoelectric Generator)

Un module Peltier utilisé en générateur exploite le gradient de température entre deux surfaces (effet Seebeck). L'efficacité est très faible (< 5 % du rendement de Carnot) mais la source est disponible 24h/24 sur les machines industrielles.

P_out = η × ΔT² / (4 × R_θ)
Pour ΔT = 20 °C, R_θ = 2 K/W : P_out ≈ 50 mW

Dimensionnement batterie : méthode complète

Étape 1 : établir le profil de consommation

Phase Courant Durée par cycle Charge par cycle
Boot MCU 8 mA 5 ms 11,1 µAh
Lecture capteur 15 mA 100 ms 416,7 µAh
Traitement + chiffrement 20 mA 50 ms 277,8 µAh
Transmission BLE 10 mA 20 ms 55,6 µAh
Deep sleep 5 µA 299 725 ms 415,7 µAh
Total / cycle (5 min) 300 000 ms 1 177 µAh

Consommation moyenne = 1177 µAh / (5 × 60) s × 3600 = 141 µA

Étape 2 : choisir la chimie de batterie

Chimie Densité énergie Autodécharge/an Temp. min Durée de vie Usage IoT
Li-SOCl₂ 590 Wh/kg 1 % -60 °C 10–15 ans Déploiement longue durée
Li-MnO₂ 280 Wh/kg 1 % -40 °C 5–10 ans Grand froid
Li-Ion (LiPo) 150–250 Wh/kg 5–10 % -20 °C 500 cycles Rechargeable
NiMH 60–80 Wh/kg 20–30 % -20 °C 500 cycles Rechargeable low-cost
Alcaline 100 Wh/kg 3 % -20 °C 5–7 ans Remplacement facile

Étape 3 : calculer la capacité requise

Capacité (mAh) = I_moy (mA) × Durée (h) × Facteur sécurité / Rendement régulateur

Pour 5 ans, I_moy = 0,141 mA, rendement 85 %, marge 20 % :
C = 0,141 × (5 × 8760) × 1,2 / 0,85 = 0,141 × 43800 × 1,41 ≈ 8 706 mAh

Choisir une batterie Li-SOCl₂ ½AA (1 200 mAh) × 3 en parallèle = 3 600 mAh — insuffisant pour 5 ans. Il faut passer à un pack D-size (19 000 mAh) ou réviser le duty cycle.


Cycle de vie énergétique d'un nœud IoT

stateDiagram-v2
    [*] --> DeepSleep : Boot terminé\nprêt à dormir
    DeepSleep --> WakeUp : Timer RTC\nou GPIO event
    WakeUp --> Mesure : Alimentation capteur\nstabilisation (5–20 ms)
    Mesure --> Traitement : Lecture ADC/I²C\nfiltrage, calibration
    Traitement --> Transmission : Chiffrement AES\nconstruction paquet
    Transmission --> ACK : Envoi radio\nattente acknowledge
    ACK --> DeepSleep : ACK reçu\nou timeout
    ACK --> Retransmission : Pas d'ACK\n(max 3 tentatives)
    Retransmission --> ACK : Renvoi
    Retransmission --> DeepSleep : Max tentatives\natteindres → store & forward

Ce qu'il faut retenir

  • Le deep sleep est la clé de l'autonomie longue durée : un MCU passant 99,97 % de son temps à 5 µA peut durer 5 ans sur une batterie modeste.
  • La consommation radio est souvent la plus coûteuse (12–120 mA selon le protocole) : minimiser le temps de transmission active est aussi important que minimiser la fréquence des transmissions.
  • La chimie Li-SOCl₂ est le standard industriel pour les déploiements longue durée (> 5 ans) — son autodécharge de 1 % par an et sa tenue en température (-60 à +85 °C) n'ont pas d'équivalent.
  • Dimensionner la batterie exige un profil de consommation détaillé par phase — une erreur de mesure sur la phase de transmission (la plus coûteuse) peut diviser la durée de vie par 2 ou 3.
  • Le harvesting solaire en intérieur requiert 15–20 cm² minimum pour des consommations moyennes de 100–200 µA.

Chapitre suivant : Cycle de vie matériel — obsolescence, certifications et réalités industrielles de la mise en production.