🛠 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

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

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

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels