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¶
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) :
En tenant compte de l'autodécharge de la Li-SOCl₂ (1–2 % par an) et des pertes du régulateur (~85 %) :
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.
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.