clignotant-rest.ino
El puente REST es la firma de las placas Yun/Tian: el sketch se vuelve un servidor HTTP local. Un curl por el lado Linux (o el navegador) enciende y apaga el LED: la demostración inmediata del dual MCU + Linux.
Hardware
Un Arduino Tian (Microchip SAM3X8E + Linux TianOS sobre un Atheros AR9344, doble USB, Ethernet y Wi-Fi). Ninguno: LED de usuario integrado.
Cableado
Nada que cablear. Placa conectada a la red (cable o Wi-Fi) para el acceso remoto.
Funcionamiento
Bridge.begin() establece el enlace con el Linux; YunServer escucha en localhost y la URL bajo /arduino/... llega al sketch. La orden leída (on/off/toggle) controla el pin y la respuesta vuelve por HTTP.
Ejecución
Arduino IDE con la placa Arduino Tian: grabado por el puerto USB « Native ». Por el lado Linux: ssh root@arduino.local. La librería Bridge es idéntica a la del Yun.
Variantes
Añadir una ruta /analog para leer A0 en JSON, o conectar la URL a un botón de una página servida por el Linux.
clignotant-rest.ino
// Le croquis expose un mini-serveur REST : le cote Linux (ou un
// navigateur via http://arduino.local/) commande la LED utilisateur.
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
YunServer serveur;
const int LED = LED_BUILTIN;
bool etat = false;
void setup() {
pinMode(LED, OUTPUT);
Bridge.begin(); // attend le lien avec le Linux
serveur.listenOnLocalhost();
serveur.begin();
}
void loop() {
YunClient client = serveur.accept();
if (!client) return; // pas de connexion : on revient vite
String commande = client.readStringUntil('/');
commande.trim();
if (commande == "led") {
String action = client.readStringUntil('/');
action.trim();
if (action == "on") etat = true;
else if (action == "off") etat = false;
else if (action == "toggle") etat = !etat;
digitalWrite(LED, etat);
client.print(etat ? "on" : "off");
} else {
client.print("led/on|off|toggle");
}
client.stop();
delay(50); // laisse le temps de fermer la connexion
}