clignotant-rest.ino
Le pont REST est la signature des cartes Yun/Tian : le croquis devient un serveur HTTP local. Un curl côté Linux (ou le navigateur) allume et éteint la LED — la démonstration immédiate du dual-boot MCU + Linux.
Matériel requis
Une Arduino Tian (Microchip SAM3X8E + Linux TianOS sur Atheros AR9344, double port USB, Ethernet et Wi-Fi). Aucun : LED utilisateur embarquée.
Câblage
Rien à câbler. Carte connectée au réseau (câble ou Wi-Fi) pour l'accès distant.
Fonctionnement
Bridge.begin() établit le lien avec le Linux ; YunServer écoute sur localhost et l'URL /arduino/... arrive au croquis. La commande lue (on/off/toggle) pilote la broche, la réponse revient en HTTP.
Exécution
Arduino IDE avec la carte Arduino Tian : téléversement par le port USB « Native ». Côté Linux : ssh root@arduino.local. La bibliothèque Bridge est identique à celle de la Yun.
Variantes
Ajouter un chemin /analog pour lire A0 en JSON, ou brancher l'URL sur un bouton d'une page servie par le 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
}