aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libraries/Bridge/examples/Datalogger/Datalogger.ino39
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;
}