lecture-fichier.ino

Arduino Yún · Archivo : lecture-fichier.ino · Lenguaje : Arduino · Uso : Lire et écrire des fichiers sur le Linux depuis le croquis

La clase FileIO da al sketch acceso directo al sistema de archivos del Linux: leer /etc/hostname, escribir en modo append en un diario. El MCU se vuelve productor de datos del sistema, sin red.

Hardware

Un Arduino Yun (ATmega32U4 + Linux Linino sobre un Atheros AR9331, Wi-Fi y Ethernet, ranura microSD). Ningún componente externo.

Cableado

Nada que cablear; monitor serie USB para el retorno.

Funcionamiento

FileSystem.open transmite las órdenes de archivo al demonio bridge; O_APPEND añade sin sobrescribir, close() valida la escritura. Aplican los permisos del demonio (escribir en /tmp es fácil).

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

Leer un sensor 1-wire por el lado Linux (archivos /sys/bus/w1) y devolver el valor al sketch vía FileIO.

lecture-fichier.ino

// FileIO : le croquis lit un fichier du Linux et journalise.
#include <Bridge.h>
#include <FileIO.h>

void setup() {
  Bridge.begin();
  Serial.begin(9600);
  FileSystem.begin();
  while (!Serial);
}

void loop() {
  // 1) Lire le nom d'hote de la carte.
  File nom = FileSystem.open("/etc/hostname", O_RDONLY);
  if (nom) {
    String hote = nom.readStringUntil('
');
    nom.close();
    Serial.print("hote : ");
    Serial.println(hote);
  }

  // 2) Journaliser l'uptime dans un fichier dedie.
  File journal = FileSystem.open("/tmp/croquis.log", O_APPEND | O_WRONLY | O_CREAT);
  if (journal) {
    journal.print(millis() / 1000);
    journal.println(" : cycle ok");
    journal.close();
    Serial.println("journal /tmp/croquis.log ecrit");
  } else {
    Serial.println("ouverture du journal refusee");
  }

  delay(10000);
}

// Cote Linux : tail -f /tmp/croquis.log pour suivre la trace.

← Volver a la ficha