🛠 Sommeil profond et réveil programmé sur la Boron

Particle Boron · avance · Schéma : IMG-particle-boron-avance-1-boron-sommeil-profond.svg — Boron endormie (icône lune) branchée sur une LiPo, réveil par RTC après 1 heure, cycle mesure puis publication vers le cloud.

Objectifs

L'autonomie est la raison d'être d'une carte cellulaire sur batterie. Le nRF52840 du Boron offre des modes de sommeil profonds : le datasheet annonce environ 106 µA en HIBERNATE sur le modèle LTE (127 µA avec réveil ULP GPIO), contre 3,9 mA au repos radio éteinte. Vous allez endormir la carte avec System.sleep(SLEEP_MODE_DEEP, secondes), la laisser se réveiller seule grâce au RTC, mesurer, publier, puis se rendormir — le patron classique d'un capteur sur pile. Attention : ces chiffres supposent une configuration soignée ; les premières versions de Device OS affichaient 0,6 à 1,2 mA en sommeil profond, d'où l'intérêt de mesurer votre propre consommation.

Matériel

Code complet

// Boron — réveil RTC, mesure, publication, sommeil profond
#include "Particle.h"
SYSTEM_THREAD(ENABLED);

FuelGauge fuel;   // jauge de batterie TI integratee

void setup {
    Serial.begin(9600);
}

void loop {
    // Patiente jusqu'à 60 s pour la liaison cellulaire ; sinon passe le cycle
    if (waitFor( => Cellular.ready, 60000)) {
        char msg[96];
        snprintf(msg, sizeof(msg), "V=%.2fV SoC=%.1f%%",
                 fuel.getVCell, fuel.getSoC);
        Particle.publish("battery", msg, PRIVATE);
        Particle.process;   // laisse partir l'événement en file
        delay(2000);
    }
    // Sommeil profond jusqu'au RTC (1 h). En HIBERNATE : ~106 uA (datasheet),
    // mais prevoir les valeurs STOP ~0,5-0,6 mA si des sources de réveil
    // restent actives. Le 3V3 est coupe : pas d'alimentation externe secourue.
    System.sleep(SLEEP_MODE_DEEP, 3600);
}

Vérification attendue

Au réveil (après 1 h, ou temporairement 60 s), l'événement battery arrive dans le cloud puis la carte redort. À l'ampèremètre, le courant moyen s'effondre après l'appel System.sleep — visez ~0,1-0,6 mA selon le mode effectif, et non les dizaines de mA du repos connecté. Un appui Reset réveille immédiatement la carte (redémarrage complet, pas reprise).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels