🛠 PSM/eDRX et sommeil bas courant

Arduino MKR NB 1500 · avance · Schéma : IMG-mkr-nb-1500-avance-1-mkrnb-psm-edrx-sommeil.svg — MKR NB 1500 sur batterie LiPo avec multimètre en mesure de courant, graphique des états veille active / PSM et chronologie d'éveil toutes les heures

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

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

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales