一覧へ 前へ<< >>次へ
温度測定の結果をSDカードに記録 (2017年09月10日更新)
イーサネットシールド2 (Arduino Ethernet Shield 2) |
秋月電子で購入しました。
これはネットワークに接続できるようにすると共に、SDカードのスロットがあり、データを記録することができます。 |
|
|
---|
まずはここで勉強しながら試してみます。
http://deviceplus.jp/hobby/entry022/ |
温度測定とSDカードへのカキコミプログラム |
前述のサイトのプログラムを参考にして、温度測定結果をSDカードに書き込むプログラムを作成して、試してみました。
#include <SPI.h> #include <SD.h> const int chipSelect = 4; int analogPin = 0; // A0にて抵抗にかかる電圧を測定 int val = 0; float Vt; float Rt; float T0; float R0; float B; float Temp; void setup() { Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.print("Initializing SD card..."); pinMode(4, OUTPUT); if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); return; } Serial.println("card initialized."); } void loop() { delay(1000); val = analogRead(analogPin); Vt = val * 5 / 1023.0; Rt = Vt * 5000 / ( 5.0 - Vt); T0 = 25; R0 = 10000; B = 3380; //温度センサーの値を摂氏度℃に変換 Temp = 1/(log(Rt / R0) / B + 1/(273+T0))-273 ;
String dataString = ""; dataString += String(Temp); dataString += ","; File dataFile = SD.open("DATALOG.TXT", FILE_WRITE); //ファイル名 if (dataFile) { //SDカードのファイルが無事開けたら(ない場合は新規作成) dataFile.println(dataString); //dataStringに入っている内容を書き込み dataFile.close(); //書き込み後ファイルを閉じる Serial.println(dataString); } else { Serial.println("error opening datalog.txt"); } } |
結果 |
|
---|
温度計はPCの放熱口においてしばらく放置、USBを取り外してSDカードと取り出し、PCで覗いてみたところ、DATALOG.TXTというファイルが生成されており、以下のように記録が残っていました。
時刻の記録も欲しいですね。。。
33.30, 33.52, 33.63, 33.63, 33.41, 33.86, 34.76, 35.44, 36.68, 37.81, 38.94, 39.51, 40.88, 41.34, 42.14, 42.14,
|
|