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 Yun (ATmega32U4 + Linux Linino sur Atheros AR9331, Wi-Fi et Ethernet, emplacement microSD). 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 : sélectionne le port série pour téléverser, puis la carte Arduino Yun pour le moniteur. Côté Linux : ssh root@arduino.local (mot de passe de la distribution). L"app Yunwizard configure le réseau.
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