DHT11 と Blynk で温湿度をリアルタイム監視する Arduino チュートリアル
概要
安価な DHT11 温湿度センサーと Arduino UNO、Blynk アプリを組み合わせ、スマートフォン上で温度・湿度をゲージ表示・履歴グラフ記録する手順をステップバイステップで解説します。Linux PC への Arduino 接続(シリアル通信)を前提としています。
必要な部品
- Arduino UNO × 1
- DHT11 温湿度センサー(4 ピン) × 1
- ジャンパーワイヤー × 1 セット
- Android 端末(Blynk アプリインストール済み) × 1
必要なソフトウェア
- Arduino IDE
- Blynk アプリ(iOS/Android)および Blynk ライブラリ
配線
DHT11 の VCC→5V、GND→GND、DATA→デジタルピン 5 に接続。(データ線には 10 kΩ プルアップ抵抗を推奨)
Blynk アプリ設定
- 新規プロジェクト作成、ハードウェア「Arduino UNO」、接続タイプ「USB (Serial)」を選択
- Auth Token をメモ(スケッチに記述)
- ウィジェット追加:
- Gauge ×2:
・温度用:Virtual Pin V6、範囲 -40〜125℃、ラベル "Temp °C"
・湿度用:Virtual Pin V5、範囲 0〜100%、ラベル "Hum %" - (任意)History Graph:V5, V6 を追加し、時間範囲設定
- Gauge ×2:
- プロジェクト実行(▶ ボタン)でオンライン状態に
Arduino スケッチ
/**************************************************************
* Blynk + DHT11 温湿度モニター
**************************************************************/
#include <SoftwareSerial.h>
#include <BlynkSimpleStream.h>
#include <SimpleTimer.h>
#include <DHT.h>
SoftwareSerial DebugSerial(2, 3); // RX, TX (デバッグ用)
#define BLYNK_PRINT DebugSerial
#define DHTPIN 5
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;
char auth[] = "YourAuthToken"; // Blynk アプリの Auth Token に置き換え
void sendSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature(); // 摂氏
// float t = dht.readTemperature(true); // 華氏の場合
if (isnan(h) || isnan(t)) {
Serial.println(F("DHTセンサー読み取り失敗"));
return;
}
Blynk.virtualWrite(V5, h); // 湿度
Blynk.virtualWrite(V6, t); // 温度
}
void setup() {
DebugSerial.begin(9600);
Serial.begin(9600); // Blynk 通信用 (USB シリアル)
Blynk.begin(Serial, auth);
dht.begin();
timer.setInterval(1000L, sendSensor); // 1 秒ごと送信
}
void loop() {
Blynk.run();
timer.run();
}
Linux 側の準備(USB シリアル転送)
Arduino を USB 接続後、以下で Blynk サーバーへ転送:
# 権限設定
sudo usermod -a -G dialout $USER
# 再ログイン後
sudo ./blynk-ser.sh -c /dev/ttyACM0
blynk-ser.sh は Blynk 公式 USB HOWTO から入手。
動作確認
アプリのゲージがリアルタイムで更新され、ヒストリグラフに推移が記録されます。DHT11 は精度 ±2℃ / ±5% 程度のため、用途に応じて DHT22 (AM2302) への置き換えも検討してください(コード内 #define DHTTYPE DHT22 に変更)。
トラブルシューティング
- "Failed to read from DHT sensor!" が出る → 配線確認、プルアップ抵抗追加、電源安定化
- Blynk がオフラインのまま → Auth Token 確認、
blynk-ser.sh実行中か確認、ファイアウォール/ポート 8442 確認 - 値が 0 や nan → センサー不良、配線ミス、3.3V 動作時の電圧不足
発展アイデア
- Deep Sleep で電池駆動化(ESP8266/ESP32 移行が容易)
- 複数センサーを同一ダッシュボードに統合
- Webhook で IFTTT/Google Sheets 連携
製造プロセス
- QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
- Raspberry Pi 2でDS18B20温度センサー読み取りガイド
- EzTempでRaspberry Pi上の温度・湿度をシームレスに監視
- Raspberry Piと湿度センサーで作る自動エアロポニックスシステム
- 湿度センサーの検証とキャリブレーションで精密測定を実現
- DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
- Arduinoで温湿度ロガーを作る – DHT11とEthernetシールドでSDカード記録
- BME280 温湿度・気圧データを Nextion タッチスクリーンに表示
- Arduinoで楽器演奏:音階生成のステップバイステップガイド
- ArduinoをNMEA-0183に接続するステップバイステップガイド
- ArduinoでModbusをマスターする:ステップバイステップガイド