🛠 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.

Objectifs

Prolonger l'autonomie sur batterie d'une station terrain : mettre le module SARA-U201 en reset (le core SAMD maintient déjà le modem en reset au démarrage pour économiser l'énergie), endormir le SAMD21, et réveiller la carte sur un événement — appui bouton ou alarme périodique — pour une mesure puis une transmission rapide. La conception Arduino documente une descente de « plusieurs mA à quelques µA » quand le modem et la puce crypto sont coupés.

Matériel

Code complet

#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'état BAS.
  pinMode(GSM_RESETN, OUTPUT);
  digitalWrite(GSM_RESETN, LOW);

  // 2) USB inutile en sommeil profond : couper la CDC libere de l'énergie.
  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, réveil 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
}

Vérification attendue

Au multimètre, le courant moyen chute nettement quand LowPower.sleep est atteint et que le modem est maintenu en reset ; l'appui sur D2 réveille la carte et la console affiche le message de réveil. Mesurer en moyenne sur plusieurs minutes : un module enregistré émet par pics (paging), et le PMIC BQ24195L de charge peut masquer les microampères si le chargeur est alimenté en USB.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels