aboutsummaryrefslogtreecommitdiff
path: root/libraries/Bridge/examples/Datalogger/Datalogger.ino
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/Bridge/examples/Datalogger/Datalogger.ino')
-rw-r--r--libraries/Bridge/examples/Datalogger/Datalogger.ino99
1 files changed, 99 insertions, 0 deletions
diff --git a/libraries/Bridge/examples/Datalogger/Datalogger.ino b/libraries/Bridge/examples/Datalogger/Datalogger.ino
new file mode 100644
index 0000000..2d792a4
--- /dev/null
+++ b/libraries/Bridge/examples/Datalogger/Datalogger.ino
@@ -0,0 +1,99 @@
+/*
+ SD card datalogger
+
+ This example shows how to log data from three analog sensors
+ to an SD card mounted on the Arduino Yún using the Bridge library.
+
+ The circuit:
+ * 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
+ the system is writing to it.
+
+ created 24 Nov 2010
+ modified 9 Apr 2012
+ by Tom Igoe
+ adapted to the Yún Bridge library 20 Jun 2013
+ by Federico Vanzati
+ modified 21 Jun 2013
+ by Tom Igoe
+
+ This example code is in the public domain.
+
+ */
+
+#include <FileIO.h>
+
+void setup() {
+ // Initialize the Bridge and the Serial
+ Bridge.begin();
+ Serial.begin(9600);
+ FileSystem.begin();
+
+ while(!Serial); // wait for Serial port to connect.
+ Serial.println("Filesystem datalogger\n");
+}
+
+
+void loop () {
+ // make a string that start with a timestamp for assembling the data to log:
+ String dataString;
+ dataString += getTimeStamp();
+ dataString += " = ";
+
+ // read three sensors and append to the string:
+ for (int analogPin = 0; analogPin < 3; analogPin++) {
+ int sensor = analogRead(analogPin);
+ dataString += String(sensor);
+ if (analogPin < 2) {
+ 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/sd/datalog.txt", FILE_APPEND);
+
+ // if the file is available, write to it:
+ if (dataFile) {
+ dataFile.println(dataString);
+ dataFile.close();
+ // print to the serial port too:
+ Serial.println(dataString);
+ }
+ // if the file isn't open, pop up an error:
+ else {
+ Serial.println("error opening datalog.txt");
+ }
+
+ delay(15000);
+
+}
+
+// This function return a string with the time stamp
+String getTimeStamp() {
+ String result;
+ Process time;
+ // 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;
+}