🛠 Exposer des Variables cloud avec Particle.variable

Particle Boron · intermediaire · Schéma : IMG-particle-boron-intermediaire-3-boron-variables-cloud.svg — Boron publiant des jauges (RSSI, batterie, température) vers le cloud Particle, consultées par une requête HTTP GET depuis un serveur.

Objetivos

Mientras que Particle.function dispara una acción, Particle.variable expone un valor en vivo del firmware, leído bajo demanda por la nube: cada dispositivo se convierte en un pequeño servidor de telemetría. La lectura se realiza mediante CLI (particle get) o mediante una simple solicitud GET REST a api.particle.io/v1/devices/<id>/<nombre>?format=raw, lo que facilita la integración con Grafana, Node-RED o un simple script. Expondrá varios tipos (int, booleano, cadena), los leerá local y remotamente, y comprenderá el modelo «pull» (la nube lee la variable, no es el dispositivo quien la envía).

Material

Código completo

// Boron — Variables cloud : telemetry exposee en lecture
SYSTEM_THREAD(ENABLED);

int rssi = 0;
bool radioActive = true;
String etat = "demarrage";
float temperature = 0.0f;

void setup {
    Serial.begin(9600);
    Particle.variable("rssi", rssi);              // INT
    Particle.variable("radioActive", radioActive); // BOOL
    Particle.variable("etat", etat);               // STRING
    Particle.variable("temperature", temperature); // DOUBLE
}

void loop {
    if (Cellular.ready) {
        rssi = Cellular.RSSI;
        etat = "connectee";
    } else {
        etat = "hors-ligne";
    }
    // temperature = lire_capteur;  // votre logique ici
    Serial.printf("rssi=%d etat=%s\n", rssi, etat.c_str);
    delay(5000);
}

Lecturas: particle get <device> rssi y luego en REST:

curl "https://api.particle.io/v1/devices/<device_id>/rssi?format=raw" \
  -H "Authorization: Bearer $TOKEN"

Verificación esperada

particle get devuelve el nombre, el tipo y el valor actual de cada variable, actualizado entre dos lecturas. La solicitud GET REST con format=raw devuelve el valor sin procesar, útil para scripts; sin este parámetro obtendrá JSON con name, result, coreInfo. Desconecte la antena o apague la tarjeta: la lectura falla (dispositivo fuera de línea), lo que confirma el modelo pull: el último valor no se sirve en diferido.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales