#include <SD.h>
#include <SPI.h>
#include <DHT.h>
#define DHTPIN 2 // DHTセンサーのデータピン
#define DHTTYPE DHT22 // DHT22 (AM2302)
#define CSPIN 10 // SDカードのCSピン
DHT dht(DHTPIN, DHTTYPE);
File dataFile;
void setup() {
Serial.begin(9600);
dht.begin();
// SDカードの初期化
if (!SD.begin(CSPIN)) {
Serial.println("SDカードの初期化に失敗しました!");
return;
}
Serial.println("SDカードが見つかりました。");
// データファイルの作成または開く
dataFile = SD.open("data.txt", FILE_WRITE);
if (!dataFile) {
Serial.println("データファイルを開けませんでした!");
}
}
void loop() {
// 温度と湿度の取得
float h = dht.readHumidity();
float t = dht.readTemperature();
// 測定結果をシリアルモニタに表示
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" ℃");
// データをSDカードに保存
if (dataFile) {
dataFile.print("Humidity: ");
dataFile.print(h);
dataFile.print(" %\t");
dataFile.print("Temperature: ");
dataFile.print(t);
dataFile.println(" ℃");
dataFile.flush(); // データの即時書き込み
} else {
Serial.println("データファイルに書き込めません!");
}
delay(2000); // 2秒ごとにデータを取得
}