diff options
Diffstat (limited to 'libraries/Bridge/examples/Datalogger/Datalogger.ino')
-rw-r--r-- | libraries/Bridge/examples/Datalogger/Datalogger.ino | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/libraries/Bridge/examples/Datalogger/Datalogger.ino b/libraries/Bridge/examples/Datalogger/Datalogger.ino index 5878e05..2d792a4 100644 --- a/libraries/Bridge/examples/Datalogger/Datalogger.ino +++ b/libraries/Bridge/examples/Datalogger/Datalogger.ino @@ -2,11 +2,15 @@ SD card datalogger This example shows how to log data from three analog sensors - to an SD card mounted on the Arduino Yun using the Bridge library. + to an SD card mounted on the Arduino Yún using the Bridge library. The circuit: - * analog sensors on analog ins 0, 1, and 2 - * SD card attached to SD card slot of the Arduino Yun + * analog sensors on analog pins 0, 1 and 2 + * SD card attached to SD card slot of the Arduino Yún + + Prepare your SD card creating an empty folder in the SD root + named "arduino". This will ensure that the Yún will create a link + to the SD to the "/mnt/sd" path. You can remove the SD card while the Linux and the sketch are running but be careful not to remove it while @@ -15,7 +19,7 @@ created 24 Nov 2010 modified 9 Apr 2012 by Tom Igoe - adapted to the Yun Bridge library 20 Jun 2013 + adapted to the Yún Bridge library 20 Jun 2013 by Federico Vanzati modified 21 Jun 2013 by Tom Igoe @@ -25,7 +29,6 @@ */ #include <FileIO.h> -#include <Serial.h> void setup() { // Initialize the Bridge and the Serial @@ -34,14 +37,14 @@ void setup() { FileSystem.begin(); while(!Serial); // wait for Serial port to connect. - Serial.println("Filesystem datalogger"); + Serial.println("Filesystem datalogger\n"); } void loop () { // make a string that start with a timestamp for assembling the data to log: - String dataString = ""; - dataString += addTimeStamp(); + String dataString; + dataString += getTimeStamp(); dataString += " = "; // read three sensors and append to the string: @@ -49,14 +52,14 @@ void loop () { int sensor = analogRead(analogPin); dataString += String(sensor); if (analogPin < 2) { - dataString += ","; + dataString += ","; // separate the values with a comma } } // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. // The FileSystem card is mounted at the following "/mnt/FileSystema1" - File dataFile = FileSystem.open("/mnt/sda1/datalog.txt", FILE_APPEND); + File dataFile = FileSystem.open("/mnt/sd/datalog.txt", FILE_APPEND); // if the file is available, write to it: if (dataFile) { @@ -74,17 +77,23 @@ void loop () { } -// This function append a time stamp to the string passed as argument -String addTimeStamp() { +// This function return a string with the time stamp +String getTimeStamp() { String result; Process time; - time.begin("date"); - time.addParameter("+%D-%T"); - time.run(); + // date is a command line utility to get the date and the time + // in different formats depending on the additional parameter + time.begin("date"); + time.addParameter("+%D-%T"); // parameters: D for the complete date mm/dd/yy + // T for the time hh:mm:ss + time.run(); // run the command + // read the output of the command while(time.available()>0) { char c = time.read(); if(c != '\n') result += c; } + + return result; } |