Arduinoで作ろう(25) 気温・湿度・気圧のデータロガー
Arduinoで作ろう(23) でBME280を使って気温・湿度・気圧を測定しましたが,この取得データをSDカードに記録してみました。いわゆるデータロガーですな。
使ったのは,Seeed Studio製のSDカードシールド。これを使えばCR類の配線をしなくていいからラクチンです。
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 の形式に変えます。
んで,グラフを作るとこんな感じ。
木造住宅2階の室内での測定です。深夜から明け方に気圧が下がり,雨が降って湿度が上がっています。
(その2) へ続く・・・
| 固定リンク | 0
「Arduino」カテゴリの記事
- 大型7セグLEDを4個使った表示装置(2022.01.23)
- Arduinoで作ろう(61) Digisparkで7セグLED温度計(2022.01.16)
- Arduinoで作ろう(60) Digisparkでデジタル時計(2022.01.10)
- Arduinoで作ろう(59) DigisparkのP5を使えるようにした(2022.01.08)
- Arduinoで作ろう(58) DigisparkとLM35で温度計(2022.01.02)
コメント