Groveの水分センサーを買いました。
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- この商品を含むブログを見る
毎度のことながら、精度はそれほど要求されないので厳密性はポイしてます。
外観
Arduino UNOとSparkFunのmicroSDカードシールド。
スクリプト
/* Groveの湿度センサとSparkFunのmicroSDカードシールドを使った簡易データロガー 2016-06-11 @shuzo_kino 参考もと - http://qiita.com/kinu/items/6cd5da0415e31834e7da - https://www.switch-science.com/catalog/814/ - http://arms22.blog91.fc2.com/blog-entry-502.html */ #include <SD.h> File fds; const int chipSelect = 8; //SparkFun は8 unsigned long time; void setup() { Serial.begin(9600); while (!Serial) { ; } //動作待機 //SDライブラリはSPIライブラリに依存しています。 // SPIライブラリで使用するSlave Select (SS) pinをアクティブ化しないと、動作しなくなります。 // Ref: https://www.arduino.cc/en/Reference/SPI pinMode(SS, OUTPUT); lineWrite(); if (!SD.begin(chipSelect)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); //書込先ファイルの存在を確認 if (SD.exists("data.txt")) { Serial.println("data.txt exists."); } else { Serial.println("data.txt doesn't exist."); } lineWrite(); } void lineWrite() { Serial.println("***********************"); } void dataWrite(int data) { // ファイルの書込みオープン // test.txtファイルが無い場合は作成、あればファイルの最後に追記。 fds = SD.open("data.txt",FILE_WRITE) ; if (fds) { time = millis(); //ファイルに書く。後々の使い回しを考慮しCSV風に fds.write(time); fds.write(","); fds.write(data); fds.write("\r\n"); //シリアルに書く。ファイルと同様の書込 Serial.print(time); Serial.print(","); Serial.println(data); // ファイルのクローズ fds.close() ; } else { // ファイルのオープンエラー Serial.println("error opening") ; } } void loop() { // 10秒毎に値を読みだして書込。 char sensorValue = analogRead(A0); dataWrite(sensorValue); delay(10000); }