LE CARNET TECHNIQUE / AUTONOMIE
Une batterie se dimensionne avec des mesures.
La consommation du processeur en veille ne décrit pas celle d’une carte complète. Régulateur, LED, capteur et modem peuvent décider de l’autonomie finale.
1. Découper un cycle réel
Décrivez les états successifs : démarrage, stabilisation du capteur, acquisition, connexion réseau, envoi, puis sommeil. Mesurez la durée et le courant de chaque état sur l’entrée d’alimentation de l’ensemble. Pour comparer deux versions, gardez la même tension d’alimentation, le même signal radio et le même intervalle d’échantillonnage.
Un modem qui recherche le réseau durant une minute peut consommer plus d’énergie qu’un échange réussi de quelques secondes. Mesurez aussi un cycle avec réseau absent. Dans le firmware, donnez une durée maximale à chaque tentative pour éviter qu’une panne transforme un système périodique en système toujours allumé.
2. Distinguer trois niveaux de veille
| État | Ce qui peut rester actif | Conséquence |
|---|---|---|
| Écran en hibernation | ESP32 et alimentation | L’image reste visible, mais le microcontrôleur peut continuer à consommer. |
| ESP32 en deep sleep | Régulateur, LED, modem, capteurs | Le code redémarre au réveil ; les périphériques ne sont pas automatiquement coupés. |
| Montage à alimentation commutée | Circuit de réveil et fuites | Exige un schéma adapté, des états GPIO maîtrisés et une validation électrique. |
3. Un réveil temporisé minimal
Exemple pour le support Arduino ESP32 : ce programme compte les réveils en mémoire RTC puis dort une minute. Il ne configure ni capteur ni modem. Une coupure complète efface ce compteur ; ne l’utilisez pas comme identifiant permanent d’une mesure.
#include <Arduino.h>
#include <esp_sleep.h>
RTC_DATA_ATTR uint32_t reveils = 0;
void setup() {
Serial.begin(115200);
delay(200);
Serial.printf("Reveil %lu, cause %d\n",
(unsigned long)++reveils,
(int)esp_sleep_get_wakeup_cause());
// Lire le capteur et terminer les échanges ici, avec délais bornés.
// Mettre chaque périphérique dans son état de repos documenté.
Serial.flush();
esp_sleep_enable_timer_wakeup(60ULL * 1000000ULL);
esp_deep_sleep_start();
}
void loop() {}Vérification : observer plusieurs réveils au moniteur série, puis mesurer l’alimentation du montage sans que l’USB ne contourne l’instrument. Un intervalle de sommeil de 60 secondes n’est pas une période totale de 60 secondes : le temps d’exécution s’y ajoute. Pour une période stricte, calculer le sommeil restant à partir de la durée du cycle.
4. Calculer un ordre de grandeur
Pour un cycle, I moyen = somme(I état × durée état) / durée totale. Toutes les durées doivent être dans la même unité. L’autonomie idéale en heures est capacité utile en mAh / courant moyen en mA. Si les tensions diffèrent, raisonnez en énergie (Wh) et incluez le rendement du convertisseur.
| État hypothétique | Courant fictif | Durée fictive |
|---|---|---|
| Mesure et transmission | 100 mA | 10 s |
| Sommeil du montage | 0,10 mA | 590 s |
Dans cet exemple de calcul, pas une mesure Quiet Bee, le courant moyen vaut (100 × 10 + 0,10 × 590) / 600 = 1,765 mA. Une capacité utile hypothétique de 1 600 mAh donnerait environ 907 heures, soit 38 jours. Ce chiffre ignore notamment température, vieillissement, autodécharge et variation du réseau ; il ne constitue pas une autonomie annoncée pour votre carte.
5. Protocole de mesure sur l’établi
- Photographier le montage et noter carte, firmware, batterie et tension.
- Insérer l’instrument en série sur l’entrée commune ; choisir un calibre compatible avec les pointes de courant.
- Vérifier que la chute de tension de l’instrument ne provoque pas de reset ou d’échec modem.
- Enregistrer plusieurs cycles complets avec un instrument capable de suivre les transitoires ; un multimètre seul peut manquer les pointes.
- Répéter avec le réseau coupé, puis avec une réception dégradée.
- Conserver les traces, le nombre de cycles et les conditions avant de publier une moyenne.
6. Les pièges du montage terrain
Le modem du projet LTE-M n’est pas automatiquement hors tension lorsque l’ESP32 dort. Une commande de radio ou une demande de PSM ne prouve pas une consommation donnée : la réponse du réseau et les états du module doivent être vérifiés. Une entrée GPIO alimentant indirectement un périphérique éteint peut créer un chemin de fuite. Il faut traiter ces points sur le schéma avant de multiplier les durées de sommeil dans le code.
Aucune campagne de courant instrumentée n’est fournie dans cet article. La prochaine étape expérimentale consiste à publier un relevé de cycle complet, avec ses conditions, plutôt qu’un chiffre repris de la fiche du processeur.
Sources et références
Les schémas de votre référence matérielle et la documentation de votre version de logiciel priment sur un exemple générique.