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

Objectifs

Alors que Particle.function déclenche une action, Particle.variable expose une valeur vivante du firmware, lue à la demande par le cloud : chaque device devient un petit serveur de télémétrie. La lecture se fait par CLI (particle get) ou par simple GET REST sur api.particle.io/v1/devices/<id>/<nom>?format=raw, ce qui facilite l'intégration avec Grafana, Node-RED ou un simple script. Vous allez exposer plusieurs types (int, booléen, chaîne), les lire en local et à distance, et comprendre le modèle « pull » (le cloud lit la variable, ce n'est pas le device qui pousse).

Matériel

Code complet

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

int rssi = 0;
bool radioActive = true;
String état = "démarrage";
float temperature = 0.0f;

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

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

Lectures : particle get <device> rssi puis en REST :

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

Vérification attendue

particle get renvoie le nom, le type et la valeur courante de chaque variable, mise à jour entre deux lectures. Le GET REST avec format=raw renvoie la valeur brute, pratique pour les scripts ; sans ce paramètre vous obtenez du JSON avec name, result, coreInfo. Coupez l'antenne ou éteignez la carte : la lecture échoue (device hors-ligne), ce qui confirme le modèle pull — la dernière valeur n'est pas servie en différé.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels