stats-systeme.ino

Arduino Tian (id : tian) · Fichier : stats-systeme.ino · Langage : Arduino · Usage : Afficher les statistiques réseau du Linux sur le moniteur

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 Tian (Microchip SAM3X8E + Linux TianOS sur Atheros AR9344, double port USB, Ethernet et Wi-Fi). 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 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

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.

← Retour à la fiche