Arduinoで温湿度ロガーを作る – DHT11とEthernetシールドでSDカード記録
必要なパーツと用品
| DHT11 温湿度センサー(4ピン) | ×1 |
| Arduino UNO | ×1 |
| Arduino Ethernet W5100 Shield | ×1 |
| ジャンパーワイヤー | ×1 |
| 9V電池 | ×1 |
| ブレッドボード | ×1 |
| 9V電池スナップ | ×1 |
使用するアプリ
- Arduino IDE
プロジェクト概要
このプロジェクトについて
Arduinoを使った初めての実用的なプロジェクトとして、温度と湿度をSDカードに記録するデータロガーを作成します。回路はシンプルですが、SDカードライブラリとDHT11ライブラリを組み合わせるコードはややトリッキーです。
作り方
- Arduino UNOにEthernetシールドを装着し、以下の回路をブレッドボード上に組みます。
- EthernetシールドのSDカードスロットにフォーマット済みのSDカードを挿入。
- スケッチをアップロードすると、自動的に測定を開始し、SDカードに
datalog.txtファイルを作成して記録します。 - 電源を切ると記録停止、再投入で再開します。

注意: 1〜2時間以上の長時間測定を行う場合は、9V電池ではなくACアダプター(ウォールワート)などの常時電源を使用することを推奨します。電池切れでデータが欠損するのを防げます。
ソースコード
Temp_and_Humid.ino(Arduino)
Arduino IDEの「ファイル」→「スケッチ例」→「SD」→「Datalogger」をベースに、DHT11センサー用のコードを追加したものです。元のサンプルはアナログピン3つ分(0〜2)をループしていますが、DHT11のみ使用するため、57行目の条件を analogPin < 3 から analogPin < 1 に変更しています。
/* SD card datalogger
* DHT11温湿度センサー対応版
* SDカード接続: MOSI-pin11, MISO-pin12, CLK-pin13, CS-pin4
*/
#include
#include
#include
dht DHT;
#define DHT11_PIN A0
const int chipSelect = 4;
void setup() {
Serial.begin(9600);
while (!Serial) { ; }
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
}
void loop() {
String dataString = "";
for (int analogPin = 0; analogPin < 1; analogPin++) {
int chk = DHT.read11(DHT11_PIN);
dataString += String(chk);
if (analogPin < 2) {
dataString += ",";
}
}
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(DHT.temperature);
dataFile.println(DHT.humidity);
dataFile.close();
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(600000); // 10分間隔(600,000ms)
} else {
Serial.println("error opening datalog.txt");
}
}
回路図


製造プロセス
- EzTempでRaspberry Pi上の温度・湿度をシームレスに監視
- Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用
- DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- BME280 温湿度・気圧データを Nextion タッチスクリーンに表示
- Arduino超音波センサーとProcessingで作るリアルタイム距離測定ソナー
- 非接触温度スクリーニングゲート:Arduino MKR1000で迅速・高精度な検温
- DHT11 と Blynk で温湿度をリアルタイム監視する Arduino チュートリアル
- Arduino Unoと1Sheeldで作る4x4x4 LEDキューブ – インタラクティブLEDプロジェクト
- ゲーム用カスタムArduinoジョイスティックハンドルの製作
- 精密温度制御チャコールスモーカーキット:Arduino MKR1000で極上BBQを実現