valeurs-partagees.ino
Le magasin de valeurs du pont est la variable partagée MCU↔Linux : valuePut expose une clé lisible par une simple requête HTTP locale, valueGet récupère une consigne écrite depuis le Linux. Deux lignes pour un aller-retour complet.
Matériel requis
Une Arduino Tian (Microchip SAM3X8E + Linux TianOS sur Atheros AR9344, double port USB, Ethernet et Wi-Fi). 1 potentiomètre ou LDR sur A0 pour la démo.
Câblage
Curseur sur A0, extrémités sur 5V et GND.
Fonctionnement
Bridge.valuePut pousse la clé vers le démon bridge côté Linux, exposée sous /data/<clé> ; valueGet relit la valeur d'une clé que le Linux a écrite avec un POST /data.
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 des clés d'état (relais, mode) pour un petit automate, ou faire tourner la consigne depuis un cron Linux.
valeurs-partagees.ino
// Echange de donnees par le magasin de cles du pont.
#include <Bridge.h>
const int CAPTEUR = A0;
unsigned long t0 = 0;
void setup() {
Bridge.begin();
}
void loop() {
if (millis() - t0 < 1000) return;
t0 = millis();
// 1) Publier la mesure : cote Linux -> GET /data/lumiere
int brut = analogRead(CAPTEUR);
Bridge.valuePut("lumiere", String(brut).c_str());
// 2) Lire une consigne ecrite par le Linux (defaut 500).
String consigne;
if (!Bridge.valueGet("seuil", consigne) || consigne.length() == 0) {
consigne = "500";
}
int seuil = consigne.toInt();
if (brut < seuil) {
Bridge.valuePut("alerte", "obscurite");
} else {
Bridge.valuePut("alerte", "ok");
}
}
// Cote Linux (Yun) :
// curl http://localhost/data/lumiere
// curl -d "400" http://localhost/data/seuil