« Arduinoで作ろう(24) 赤外線リモコンの信号解読 | トップページ | Arduinoで作ろう(26) 気温・湿度・気圧のデータロガー (その2) »

2019年8月24日 (土)

Arduinoで作ろう(25) 気温・湿度・気圧のデータロガー

Sdcardshield_3

 Arduinoで作ろう(23) でBME280を使って気温・湿度・気圧を測定しましたが,この取得データをSDカードに記録してみました。いわゆるデータロガーですな。
 使ったのは,Seeed Studio製のSDカードシールド。これを使えばCR類の配線をしなくていいからラクチンです。

8578d9e3f67546688955ea77bd4f41a0

 Arduino IDEのスケッチ例「Datalogger」をちょっと書き換えただけですが,スケッチはコレ→20190823sd_write.ino

 このSDカードシールドのFritzingパーツを見つけられなかったので,RTC付きのSDカードシールドで配線図を描きました。でも,僕のシールドにはRTCが付いてないので,millis()でArduino起動後の経過時間を記録し,あとでExcel上で処理してやることにします。

/*
  SD card datalogger
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11 , MISO - pin 12 , CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)
 */

#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include "SparkFunBME280.h"
BME280 sensor;
const int chipSelect = 4;

void setup() {
  Serial.begin(9600);
  Serial.print("Initializing SD card...");
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    while (1);
   }
  Serial.println("card initialized.");
  Wire.begin();
  sensor.beginI2C();
}

void loop() {
   String dataString = "";
    dataString += String(millis()/1000);
    dataString += ",";
    dataString += String(sensor.readTempC());
    dataString += ",";
    dataString += String(sensor.readFloatHumidity());
    dataString += ",";
    dataString += String(sensor.readFloatPressure()/100.0);
 
   File dataFile = SD.open("datalog.csv", FILE_WRITE);
    if (dataFile) {
     dataFile.println(dataString);
     dataFile.close();
     Serial.println(dataString);
    }
  delay(600000); //10分(600秒)ごとに測定
}

 24時間測定して得られたcsvファイルをExcelで読み込みました。
B列を挿入してA列の値を hh:mm:ss の形式に変えます。

Excel

んで,グラフを作るとこんな感じ。

Graph

木造住宅2階の室内での測定です。深夜から明け方に気圧が下がり,雨が降って湿度が上がっています。

(その2) へ続く・・・

| |

« Arduinoで作ろう(24) 赤外線リモコンの信号解読 | トップページ | Arduinoで作ろう(26) 気温・湿度・気圧のデータロガー (その2) »

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Arduinoで作ろう(24) 赤外線リモコンの信号解読 | トップページ | Arduinoで作ろう(26) 気温・湿度・気圧のデータロガー (その2) »