02使用sd card儲存監測資料

10
電子工程系 電腦遊戲設計組 使用SD Card記錄監測 資料 吳錫修 July 20, 2015

Upload: -

Post on 16-Aug-2015

120 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 02使用sd card儲存監測資料

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

使用SD Card記錄監測資料 吳錫修

July 20, 2015

Page 2: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

microSD是⼀種極細⼩的快閃記憶體卡

Arduino Yún之microSD插槽位於背面板

microSD

2

Page 3: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

範例:File/Examples/Bridge/Datalogger

Datalogger範例展示將Arduino Yún類比輸入接腳(A0,A1,A2)監測之數據儲存到SD記憶卡

每15秒記錄⼀筆資料

資料格式:mm/dd/yy-hh:mm:ss = data1,data2,data3

Log檔名稱:arduino\datalog.txt

參考資料http://www.arduino.cc/en/Tutorial/YunDatalogger

Datalogger範例

3

Page 4: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

在SD記憶卡建立⼀個arduino目錄

Arduino Yún與電腦連接到相同WiFi

確認已連接Arduino Yún

測試Datalogger範例 1/3

4

Page 5: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

開啟Arduino Yún Console視窗Tools/Serial Monitor

測試Datalogger範例 2/3

5

Page 6: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

檢查SD記憶卡datalog.txt內容

測試Datalogger範例 3/3

6

Page 7: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

#include <FileIO.h>

void setup() {

Bridge.begin(); //起始Bridge

Console.begin(); //啟動Console

FileSystem.begin(); //起始FileSystem

while (!Console); //等待Console連線

Console.println("Filesystem datalogger\n");

}

解析Datalogger範例程式碼 1/4

7

Page 8: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

void loop () {

String dataString; //log字串變數

dataString += getTimeStamp(); //加上時間戳章

dataString += " = ";

//讀取類比輸入A0,A1,A2值,並附加到log字串之後

for (int analogPin = 0; analogPin < 3; analogPin++) {

int sensor = analogRead(analogPin);

dataString += String(sensor); //串接類比輸入讀值

if (analogPin < 2) {

dataString += “,”; //資料間以逗號分隔

}

}

解析Datalogger範例程式碼 2/4

8

Page 9: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

//開啟SD card資料記錄檔

File dataFile = FileSystem.open(“/mnt/sd/arduino/datalog.txt”, FILE_APPEND);

if (dataFile) { //檢查是否正常開啟資料記錄檔

dataFile.println(dataString);

dataFile.close(); //闗閉檔案

Console.println(dataString); //將log訊息同步輸出到Console

}

else { //顯示檔案開啟作業異常訊息

Console.println("error opening datalog.txt");

}

delay(15000); //間隔15秒再重複作業

}

解析Datalogger範例程式碼 3/4

9

Page 10: 02使用sd card儲存監測資料

shap

e th

e fu

ture

電子工程系應 用 電 子 組電 腦 遊 戲 設 計 組

String getTimeStamp() { //時間戳章字串函式

String result;

Process time; //建立Linux processes

time.begin(“date”); //指定所要執行的作業命令

time.addParameter(“+%D-%T”); //戳章格式mm/dd/yy-hh:mm:ss

time.run(); //執行date命令列作業

while (time.available() > 0) { //檢查執行結果

char c = time.read(); //讀取時間戳章

if (c != '\n')

result += c;

}

return result;

}

解析Datalogger範例程式碼 4/4

10