🛠 Télémétrie : pousser une mesure du capteur vers le réseau
Objetivos
Encadenar los dos mundos para un primer pipeline de datos: el SAMD21 adquiere la medición (ADC de 12 bits en A0), la transmite al Bridge, y el lado Linux la envía a la red mediante HTTP. Descubrirás el patrón «el MCU mide, Linux transporta» — la razón de ser de la Tian frente a una placa con solo microcontrolador.
Material
- 1 Arduino Tian conectada a la red (ver el tutorial de panel web/SSH)
- 1 LDR + 10 kΩ en divisor de tensión sobre A0 (punto medio hacia A0)
- Un PC de prueba ejecutando un mini-servidor HTTP que escuche POST, por ejemplo:
# sur le PC, pour recevoir : nc -l -p 8080 (netcat) ou tout serveur web local
Código completo
// Le SAMD21 mesure, Linux expédie.
#include <Bridge.h>
const uint8_t LDR = A0;
const uint32_t PERIODE = 10000; // 1 POST toutes les 10 s
uint32_t precedent = 0;
void setup {
Serial.begin(9600);
while (!Serial) { }
Bridge.begin;
}
void loop {
uint32_t maintenant = millis;
if (maintenant - precedent < PERIODE) return;
precedent = maintenant;
int v = analogRead(LDR); // 0..4095 (ADC 12 bits)
String cmd = "curl -s -m 5 -X POST -d ldr=" + String(v);
cmd += " http://192.168.1.20:8080/tian"; // IP de votre PC
BridgeProcess p = Bridge.runShellCommand(cmd);
p.readString; // vide la sortie, évite les blocages
Serial.print(F("envoye ldr=")); Serial.println(v);
}
Verificación esperada
En el PC, cada POST recibido muestra «ldr=xxxx» que sigue tus variaciones de luz (tapa la LDR, el valor cae). Corta el WiFi del router: los envíos fallan pero el sketch sigue midiendo — la robustez proviene del timeout -m 5 de curl, que evita el bloqueo del bucle.
Errores frecuentes
- curl ausente en la imagen Linino base:
opkg update && opkg install curl ca-bundlepor SSH; si no, busybox wget como alternativa. - Escribir la IP a mano en todas partes: centraliza la configuración, si no, cada cambio de DHCP te hará perder una hora.
- Hacer POST en cada vuelta de loop: el Bridge no es un bus de tiempo real, marca la cadencia (10 s aquí); Linux registra todo.
- >
- Comparar millis con < en lugar de la resta sin signo: el desbordamiento (~49 días) bloquea la cadencia.
- Envolver datos en el comando shell sin escapar: un nombre de sensor con espacios rompe la línea de comando — de ahí un payload numérico simple aquí.
Otros tutoriales para esta placa
- Découvrir l'Arduino Tian : un microcontrôleur et un vrai Linux sur la même carte
- Bouton et LED sur les GPIO de la Tian : les bases côté SAMD21
- Lire un capteur avec l'ADC 12 bits du SAMD21
- Le Bridge : faire exécuter des commandes Linux depuis le croquis
- Configurer le WiFi et piloter Linino en SSH
- GPIO duos : commander les broches de l'Arduino depuis Linux
Ejemplos de código para esta placa
clignotant-rest.inoArduinoconsole-bridge.inoArduinovaleurs-partagees.inoArduinoprocess-shell.inoArduinoserveur-json.inoArduinolecture-fichier.inoArduino