🛠 PSM/eDRX et sommeil bas courant
Objectifs
Prolonger l'autonomie sur batterie LiPo en combinant trois leviers : les états basse consommation du module SARA-R410M (PSM/eDRX) activés via gsm.lowPowerMode, le sommeil du SAMD21, et la mesure du courant réel. NB-IoT est un standard LPWAN (3GPP Release 13) conçu pour le PSM/eDRX ; les chiffres de consommation de la carte ne sont pas publiés, d'où la mesure.
Matériel
- 1 carte MKR NB 1500 + batterie LiPo 3,7 V sur le connecteur JST (chargeur embarqué TI BQ24195L)
- Antenne + SIM data (le modem doit rester enregistré pour bénéficier du PSM)
- Un multimètre en micro-ampères ou un nano-expert en série avec la batterie
- Quartz 32,768 kHz sur PA00/PA01 pour l'RTC de réveil
Code complet
// Sommeil profond + reprise toutes les heures — MKR NB 1500
#include <MKRGSM.h>
#include "arduino_secrets.h"
const char PINNUMBER[] = SECRET_PINNUMBER;
const char APN[] = "orange";
GSM gsm;
GPRS gprs;
void setup {
Serial.begin(9600);
while (!Serial);
bool ok = false;
while (!ok) {
if ((gsm.begin(PINNUMBER) == GSM_READY) &&
(gprs.attachGPRS(APN) == GPRS_READY)) ok = true;
else delay(3000);
}
// ... ici : connexion MQTT, publication, deconnexion propre ...
// Autorise le module a entrer dans ses états basse consommation
// (PSM / eDRX negocie avec le réseau) : gsm.noLowPowerMode pour annuler.
gsm.lowPowerMode;
Serial.println("Endormissement 1 h...");
Serial.flush;
delay(3600000UL); // pour l'essai ; en production : RTC + sleep
}
void loop {}
Vérification attendue
Après lowPowerMode, le courant mesuré chute fortement et par paliers (le module se désactive des créneaux eDRX, puis entre en PSM). Réveillez la carte (reset ou appui) : elle se ré-enregistre sur le réseau. Comparez batterie nue / USB : la LED d'alimentation allumée en permanence sur batterie (bug connu arduino/ArduinoCore-samd#515) ajoute un courant de fond constant.
Erreurs fréquentes
- Attendre le courant « magazine » : sans mesure réelle, toute estimation d'autonomie est fausse ; mesurez chez vous.
- Oublier que la LED PWR reste allumée sur batterie (problème ouvert du core SAMD) : la corriger (désolder/occulter ou la supporter) pour un nœud à très faible consommation.
- PSM non accordé par l'opérateur : le réseau peut refuser les paramètrès demandés ; vérifiez avec les commandes AT du tutoriel diagnostic.
- Réveils trop fréquents : chaque reprise de connexion coûte énergie et batterie ; espacez les envois (toutes les heures plutôt que chaque minute).
- Le BQ24195L a ses propres particularités (détail des quirks PMIC dans le core) : testez le comportement charge/décharge avant déploiement.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
attente-lte-nbiot.inoArduinochoix-bande.inoArduinopublish-mqtt-minimal.inoArduinoeconomie-energie.inoArduinogeoloc-cellules.inoArduinotest-coverage.inoArduino