releve-periodique.ino

Arduino Tian (id : tian) · Fichier : releve-periodique.ino · Langage : Arduino · Usage : Horodateur Linux + capteur : journal CSV complet sans PC

Le duo parfait des cartes Yun/Tian : le MCU mesure, le Linux horodate et journalise en CSV. Le capteur analogique devient un enregistreur autonome, exportable en un scp, sans horloge externe.

Matériel requis

Une Arduino Tian (Microchip SAM3X8E + Linux TianOS sur Atheros AR9344, double port USB, Ethernet et Wi-Fi). 1 capteur analogique (LDR, potentiomètre) sur A0.

Câblage

Capteur entre A0, 5 V et GND selon le montage diviseur.

Fonctionnement

date +%s fournit l'epoch côté Linux (le MCU n'a pas d'horloge) ; echo >> ajoute la ligne CSV au fichier. Le test -f crée l'entête au premier lancement.

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

Ajouter la température du SoC dans le CSV, ou remplacer le shell par FileIO pour éviter le spawn de processus.

releve-periodique.ino

// Horodateur via le Linux, mesure via le MCU : CSV dans /tmp.
#include <Bridge.h>
#include <Process.h>

const int CAPTEUR = A0;
unsigned long t0 = 0;

String horodatage() {
  Process p;
  p.runShellCommand("date +%s");        // epoch seconde
  String s = p.readString();
  while (p.running());
  s.trim();
  return s.length() ? s : String(millis() / 1000);
}

void setup() {
  Bridge.begin();
  Serial.begin(9600);
  Process init;
  init.runShellCommand(
    "test -f /tmp/mesures.csv || echo 'epoch,capteur' > /tmp/mesures.csv");
  while (init.running());
}

void loop() {
  if (millis() - t0 < 30000) return;    // 30 s
  t0 = millis();

  int brut = analogRead(CAPTEUR);
  String ligne = horodatage() + "," + String(brut);

  Process ecriture;
  ecriture.runShellCommand("echo '" + ligne + "' >> /tmp/mesures.csv");
  while (ecriture.running());

  Serial.print("journalise : ");
  Serial.println(ligne);
}

// Cote Linux : scp root@<carte>:/tmp/mesures.csv . pour exporter.

← Retour à la fiche