🛠 PSM/eDRX et sommeil bas courant
Objetivos
Prolongar la autonomía con batería LiPo combinando tres palancas: los estados de bajo consumo del módulo SARA-R410M (PSM/eDRX) activados mediante gsm.lowPowerMode, el sueño del SAMD21 y la medición de la corriente real. NB-IoT es un estándar LPWAN (3GPP Release 13) diseñado para PSM/eDRX; las cifras de consumo de la placa no están publicadas, de ahí la necesidad de medir.
Material
- 1 placa MKR NB 1500 + batería LiPo de 3,7 V en el conector JST (cargador integrado TI BQ24195L)
- Antena + SIM de datos (el módem debe permanecer registrado para beneficiarse del PSM)
- Un multímetro en microamperios o un nano-expert en serie con la batería
- Cristal de 32,768 kHz en PA00/PA01 para el RTC de despertar
Código completo
// 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 etats basse consommation
// (PSM / eDRX negocie avec le reseau) : gsm.noLowPowerMode pour annuler.
gsm.lowPowerMode;
Serial.println("Endormissement 1 h...");
Serial.flush;
delay(3600000UL); // pour l'essai ; en production : RTC + sleep
}
void loop {}
Verificación esperada
Tras lowPowerMode, la corriente medida cae fuertemente y por etapas (el módulo se desactiva de las ventanas eDRX y luego entra en PSM). Despierte la placa (reset o pulsación): se vuelve a registrar en la red. Compare batería sola / USB: el LED de alimentación encendido permanentemente con batería (bug conocido arduino/ArduinoCore-samd#515) añade una corriente de fondo constante.
Errores frecuentes
- Esperar la corriente «de revista»: sin medición real, cualquier estimación de autonomía es falsa; mida en su entorno.
- Olvidar que el LED PWR permanece encendido con batería (problema abierto del core SAMD): corríjalo (desoldar/ocultar o soportarlo) para un nodo de muy bajo consumo.
- PSM no concedido por el operador: la red puede rechazar los parámetros solicitados; verifique con los comandos AT del tutorial de diagnóstico.
- Despertares demasiado frecuentes: cada reconexión cuesta energía y batería; espacie los envíos (cada hora en lugar de cada minuto).
- El BQ24195L tiene sus propias particularidades (detalle de los quirks del PMIC en el core): pruebe el comportamiento de carga/descarga antes del despliegue.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
attente-lte-nbiot.inoArduinochoix-bande.inoArduinopublish-mqtt-minimal.inoArduinoeconomie-energie.inoArduinogeoloc-cellules.inoArduinotest-coverage.inoArduino