lecture-fichier.ino
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 Tian (Microchip SAM3X8E + Linux TianOS sobre un Atheros AR9344, doble USB, Ethernet y Wi-Fi). 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 con la placa Arduino Tian: grabado por el puerto USB « Native ». Por el lado Linux: ssh root@arduino.local. La librería Bridge es idéntica a la del Yun.
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.