valeurs-partagees.ino
El almacén de valores del puente es la variable compartida MCU↔Linux: valuePut expone una clave legible con una simple petición HTTP local y valueGet recupera una consigna escrita desde el Linux. Dos líneas para un viaje completo.
Hardware
Un Arduino Yun (ATmega32U4 + Linux Linino sobre un Atheros AR9331, Wi-Fi y Ethernet, ranura microSD). 1 potenciómetro o LDR en A0 para la demo.
Cableado
Cursor a A0, extremos a 5V y GND.
Funcionamiento
Bridge.valuePut envía la clave al demonio bridge por el lado Linux, expuesta en /data/<clave>; valueGet relee el valor de una clave que el Linux escribió con un POST /data.
Ejecución
Arduino IDE: selecciona el puerto serie para grabar y luego la placa Arduino Yun para el monitor. Por el lado Linux: ssh root@arduino.local (contraseña de la distribución). La app Yunwizard configura la red.
Variantes
Añadir claves de estado (relé, modo) para un pequeño autómata, o rotar la consigna desde 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