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

Objetivos

Particle.function expone una función de su firmware a la nube: cualquier cliente (CLI, curl, Python, aplicación web) puede llamarla a través de la API REST, y Device OS gestiona la autenticación TLS y la identidad por dispositivo. Cada dispositivo es un recurso REST en https://api.particle.io — se envía una llamada de función mediante POST como si se enviara una solicitud a un microservidor. Usted controlará una salida (encender/apagar una carga mediante relé) desde la terminal, y luego entenderá las restricciones: argumento de máximo 63 caracteres, nombre de función corto y valor de retorno entero.

Material

Código completo

// Boron — commande cloud via Particle.function
const uint16_t RELAIS_PIN = D5;    // broche sortie — verifier 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 caracteres 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);
}

Llamadas desde el cliente: particle call <device> setCharge on y luego 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}

Verificación esperada

Cada llamada CLI o REST devuelve el JSON con return_value igual al valor devuelto por su handler (1, 0 o -1), y la salida física cambia en ese mismo momento (en milisegundos si el dispositivo está conectado). Pruebe también con un argumento inválido: debe recibir -1, lo que demuestra que el handler se ejecuta correctamente.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales