🛠 Sommeil bas courant du module et réveil

Arduino MKR GSM 1400 · avance · Schéma : IMG-mkr-gsm-1400-avance-2-mkrgsm-sommeil-bas-courant.svg — MKR GSM 1400 sur batterie LiPo endormie (LED éteinte, croissant de lune), une ligne de courant chutant de quelques milliampères vers quelques microampères, bouton de réveil sur D2.

Objetivos

Prolongar la autonomía de la batería de una estación de campo: poner el módulo SARA-U201 en reset (el core SAMD ya mantiene el módem en reset al arrancar para ahorrar energía), poner a dormir el SAMD21 y despertar la placa ante un evento — pulsación de botón o alarma periódica — para realizar una medición y una transmisión rápida. La documentación de Arduino indica una reducción de «varios mA a unos pocos µA» cuando el módem y el chip criptográfico están desconectados.

Material

Código completo

#include <ArduinoLowPower.h>

const uint8_t BTN_REVEIL = 2;
volatile bool reveille = false;

void onReveil { reveille = true; }

void setup {
  // 1) Maintenir le modem GSM en reset pendant le sommeil.
  //    GSM_RESETN (broche 31 de la variante) est actif a l'etat BAS.
  pinMode(GSM_RESETN, OUTPUT);
  digitalWrite(GSM_RESETN, LOW);

  // 2) USB inutile en sommeil profond : couper la CDC libere de l'energie.
  Serial.begin(9600);
  delay(3000);                      // laisser le temps d'ouvrir la console
  Serial.println("Entree en sommeil, appuyer sur D2");

  LowPower.attachInterruptWakeup(BTN_REVEIL, onReveil, FALLING);
}

void loop {
  reveille = false;
  LowPower.sleep;                 // SAMD en mode attente, reveil par IT

  // --- Reveil : phase active courte ---
  digitalWrite(GSM_RESETN, HIGH);   // relancer le modem
  delay(1000);
  Serial.begin(9600);
  Serial.println("Reveille ! Mesure + transmission ici.");
  // ... mesure capteur, gsmAccess.begin, envoi GPRS/SMS, shutdown ...;
  delay(3000);
  Serial.end;
  digitalWrite(GSM_RESETN, LOW);    // remettre le modem en reset
}

Verificación esperada

En el multímetro, la corriente media cae notablemente cuando se alcanza LowPower.sleep y el módem se mantiene en reset; la pulsación en D2 despierta la placa y la consola muestra el mensaje de despertar. Medir en promedio durante varios minutos: un módulo registrado emite por picos (paging), y el PMIC de carga BQ24195L puede enmascarar los microamperios si el cargador está alimentado por USB.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales