stats-systeme.ino
Le croquis joue le sysadmin : free, ip et uptime tournent côté Linux et remontent ligne par ligne sur le moniteur série. Utile pour surveiller une carte installée dans un placard, sans écran ni ssh.
Matériel requis
Une Arduino Yun (ATmega32U4 + Linux Linino sur Atheros AR9331, Wi-Fi et Ethernet, emplacement microSD). Aucun composant externe.
Câblage
Rien à câbler ; un moniteur série suffit.
Fonctionnement
runShellCommand + lecture available/readStringUntil consomme le flux stdout au fil de l'eau. Les commandes alternatives (ip ou ifconfig) couvrent les différences de distribution.
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
Pousser les lignes vers un écran I2C connecté au MCU, ou déclencher une LED d'alerte si "free" montre une mémoire épuisée.
stats-systeme.ino
// Process en mode ligne : streamer la sortie d'une commande Linux.
#include <Bridge.h>
#include <Process.h>
void setup() {
Bridge.begin();
Serial.begin(9600);
while (!Serial);
}
void afficher(const char *titre, const char *cmd) {
Serial.print("== ");
Serial.println(titre);
Process p;
p.runShellCommand(cmd);
while (p.available() > 0) {
String ligne = p.readStringUntil('
');
if (ligne.length()) Serial.println(ligne);
}
while (p.running());
Serial.println();
}
void loop() {
afficher("memoire", "free -m | head -3");
afficher("ip", "ip -brief addr 2>/dev/null || ifconfig | grep 'inet '");
afficher("uptime", "uptime");
delay(15000);
}
// La sortie arrive ligne par ligne : parfait pour un petit
// tableau de bord serie sans parser tout le bloc.