🛠 Commander la Boron à distance avec Particle.function

Particle Boron · intermediaire · Schéma : IMG-particle-boron-intermediaire-2-boron-particle-function.svg — ordinateur portable et smartphone envoyant une requête HTTP vers le cloud Particle qui appelle une fonction sur la Boron pilotant un relais.

Objectifs

Particle.function expose une fonction de votre firmware au cloud : n'importe quel client (CLI, curl, Python, application web) peut l'appeler via l'API REST, et Device OS gère l'authentification TLS et l'identité par device. Chaque device est une ressource REST sur https://api.particle.io — on POSTe un appel de fonction comme on enverrait une requête à un micro-serveur. Vous allez piloter une sortie (allumer/éteindre une charge via relais) depuis le terminal, puis comprendre les contraintes : argument de 63 caractères max, nom de fonction court, valeur de retour entière.

Matériel

Code complet

// Boron — commande cloud via Particle.function
const uint16_t RELAIS_PIN = D5;    // broche sortie — vérifier le pinout
bool chargeActive = false;

void setup {
    pinMode(RELAIS_PIN, OUTPUT);
    digitalWrite(RELAIS_PIN, LOW);
    Particle.function("setCharge", setChargeHandler);
}

int setChargeHandler(String args) {
    // args vient du champ POST "arg" (63 caractères max)
    if (args == "on") {
        digitalWrite(RELAIS_PIN, HIGH);
        chargeActive = true;
        return 1;
    }
    if (args == "off") {
        digitalWrite(RELAIS_PIN, LOW);
        chargeActive = false;
        return 0;
    }
    return -1;                     // argument inconnu
}

void loop {
    delay(1000);
}

Appels côté client : particle call <device> setCharge on puis particle call <device> setCharge off. En curl :

curl https://api.particle.io/v1/devices/<device_id>/setCharge \
  -d arg="on" -H "Authorization: Bearer $TOKEN"
# -> {"id":"...","return_value":1,"connected":true}

Vérification attendue

Chaque appel CLI ou REST renvoie le JSON avec return_value égal à la valeur retournée par votre handler (1, 0 ou -1), et la sortie physique bascule dans le même temps (millisecondes si le device est connecté). Testez aussi un argument invalide : vous devez recevoir -1, preuve que le handler s'exécute bien.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels