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

Objetivos

La autonomía es la razón de ser de una tarjeta celular con batería. El nRF52840 del Boron ofrece modos de sueño profundo: la hoja de datos anuncia aproximadamente 106 µA en HIBERNATE en el modelo LTE (127 µA con despertar ULP GPIO), frente a 3,9 mA en reposo con la radio apagada. Usted dormirá la tarjeta con System.sleep(SLEEP_MODE_DEEP, segundos), la dejará despertarse sola gracias al RTC, medirá, publicará y volverá a dormir — el patrón clásico de un sensor con pila. Atención: estas cifras suponen una configuración cuidadosa; las primeras versiones de Device OS mostraban 0,6 a 1,2 mA en sueño profundo, de ahí el interés de medir su propio consumo.

Material

Código completo

// Boron — reveil 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'a 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'evenement 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 reveil
    // restent actives. Le 3V3 est coupe : pas d'alimentation externe secourue.
    System.sleep(SLEEP_MODE_DEEP, 3600);
}

Verificación esperada

Al despertar (después de 1 h, o temporalmente 60 s), el evento battery llega a la nube y luego la tarjeta vuelve a dormir. En el amperímetro, la corriente media se desploma tras la llamada a System.sleep — apunte a ~0,1-0,6 mA según el modo efectivo, y no a las decenas de mA del reposo conectado. Una pulsación de Reset despierta inmediatamente la tarjeta (reinicio completo, no reanudación).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales