🛠 Variables cloud et intégration HTTP
Objetivos
Exponer datos del Photon a la nube con Particle.variable: un entero de solo lectura (el valor de un sensor) y una String escribible desde la nube, luego consultarlos y modificarlos desde un script HTTP — la base de un hook de integración hacia cualquier backend.
Material
- 1 Particle Photon con sensor en A0 (tuto photon-capteur-adc)
- token API (
particle token create) y el ID del dispositivo - Python 3 con la biblioteca requests, o curl
Código completo
// photon-variables-hook.ino — variables cloud
int sensor = 0;
String status = "idle"; // les String sont inscriptibles depuis le cloud
unsigned long derniere = 0;
void setup {
Particle.variable("sensor", sensor); // lecture: GET .../sensor
Particle.variable("status", status); // ecriture: POST .../status
}
void loop {
if (millis - derniere > 2000) {
derniere = millis;
sensor = analogRead(A0); // 12 bits, 0..4095
}
}
Verificación esperada
Lectura: curl -H "Authorization: Bearer $TOKEN" 0 devuelve el valor. Escritura: curl -H "Authorization: Bearer $TOKEN" -d value=mode_nuit https://api.particle.io/v1/devices/<ID>/status` modifica la String en el firmware. En Python, requests.get seguido de r.json realiza la misma tarea.
Errores frecuentes
- Pasar una variable local: Particle.variable debe apuntar a una variable global que viva durante toda la ejecución del programa.
- Cambiar el tipo de una variable entre dos firmwares sin volver a reclamarla: la nube puede rechazar el nuevo esquema.
- Hacer polling demasiado agresivo desde tu hook HTTP: cuida la API y el Wi-Fi, mantén un intervalo de varios segundos.
- Olvidar que el endpoint es api.particle.io: el antiguo api.spark.io ha sido cerrado definitivamente.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-evenement.inoArduinofonction-distance.inoArduinocapteur-dht.inoArduinoruban-neopixel.inoArduinopwm-respiration.inoArduino