Arduino携帯型温湿度計:DHT11+16x2 LCD+モバイルバッテリーでどこでも測定
必要な部品と材料
| Arduino UNO R3(または互換機、5V動作品) | ×1 |
| DHT11 温湿度センサ(4ピンタイプ) | ×1 |
| 16x2 キャラクタLCD(RGBバックライト付き、または標準品) | ×1 |
| ポテンショメータ 10kΩ(LCDコントラスト調整) | ×1 |
| 抵抗 10kΩ(DHT11プルアップ用) | ×1 |
| タクトスイッチ(バックライトON/OFF用) | ×1 |
| モバイルバッテリー(USB出力) | ×1 |
| USB A-Bケーブル、ブレッドボード、ジャンパーワイヤー | 各1式 |
プロジェクト概要
Arduino UNOとDHT11センサ、LCDを組み合わせ、モバイルバッテリーで駆動する持ち運び可能な温湿度計を作ります。将来的にはATtiny84+自作PCBで小型化予定ですが、まずはUNOで動作確認・実用化しました。家の中の「隙間風が強い窓」発見や、換気計画の立案に役立ちます。
配線ガイド
共通電源レール
- Arduino GND → ブレッドボード負極レール
- Arduino 5V → ブレッドボード正極レール
DHT11(4ピン)
- Pin 1 (VCC) → 5Vレール & 10kΩ抵抗の一端
- Pin 2 (DATA) → Arduino D8 & 同抵抗の他端(プルアップ)
- Pin 3 → 未接続
- Pin 4 (GND) → GNDレール
16x2 LCD(標準16ピン、HD44780互換)
| LCDピン | 接続先 |
|---|---|
| 1 (VSS) | GND |
| 2 (VDD) | 5V |
| 3 (VO) | ポテンショメータ中央端子(両端は5V/GND) |
| 4 (RS) | Arduino D12 |
| 5 (RW) | GND |
| 6 (EN) | Arduino D11 |
| 7-10 (D0-D3) | 未接続(4ビットモード) |
| 11 (D4) | Arduino D5 |
| 12 (D5) | Arduino D4 |
| 13 (D6) | Arduino D3 |
| 14 (D7) | Arduino D2 |
| 15 (A/LED+) | 5V |
| 16 (K/LED-) | タクトスイッチ経由でGND(スイッチでバックライトON/OFF) |
※手元のLCDが標準ピンアサインと異なる場合(例:Pin15/16が逆等)は、データシートやテスタで確認してください。Fritzing図は標準ピンアサインで描いています。
ソフトウェア
ライブラリ
LiquidCrystal.h(標準付属)DHT sensor libraryby Adafruit(ライブラリマネージャから「DHT sensor library」で検索インストール、依存のAdafruit Unified Sensorも同時インストール)
スケッチ全文
// Portable DHT11 Temp/Humidity Monitor with LCD
#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, EN, D4, D5, D6, D7
DHT dht(DHTPIN, DHTTYPE);
void setup() {
lcd.begin(16, 2);
dht.begin();
lcd.print("Temp: Humidity:"); // 1行目ヘッダ固定
}
void loop() {
delay(500); // DHT11は1秒以上の間隔推奨だが、表示更新用に500ms
lcd.setCursor(0, 1); // 2行目へ
float h = dht.readHumidity();
float f = dht.readTemperature(true); // trueで華氏、falseで摂氏
if (isnan(h) || isnan(f)) {
lcd.print("ERROR "); // 桁数合わせでクリア
return;
}
// 摂氏表示にしたい場合は readTemperature(false) に変更
lcd.print(f, 1); // 小数点以下1桁
lcd.setCursor(7, 1);
lcd.print(h, 1);
lcd.print("% "); // 単位追加・桁あふれ対策
}
動作確認・使い方
- 配線完了後、モバイルバッテリーをArduinoのUSBポートに接続
- LCDに「Temp: Humidity:」と表示されれば起動成功
- タクトスイッチを押すとバックライト点灯(離すと消灯)
- 2行目に温度(華氏)と湿度(%)が0.5秒ごとに更新表示
実用上の注意点
- DHT11は精度±2℃/±5%RH、サンプリング間隔1秒以上推奨。高精度が必要ならDHT22/AM2302への置き換えを検討
- モバイルバッテリーの自動電源オフ機能(低負荷時)に注意。Arduino UNOの消費電流(約50mA)では切れることがあるため、常時給電対応モデル或いは小型抵抗負荷を併用
- 屋外使用時は防水ケース・センサ保護が必要
- 将来のATtiny84版では、ディープスリープで電池寿命を大幅延長可能
拡張アイデア
- SDカードシールド追加でデータロガー化(タイムスタンプ付きCSV記録)
- Bluetoothモジュール(HC-05等)でスマホアプリと連携、グラフ表示
- 複数センサ(室内/室外)を無線で集約し、中央モニタに表示
- 閾値超過でブザーやLEDアラート
まとめ
入手しやすい部品だけで、すぐに実用できる携帯型温湿度計が完成します。DHT11の精度は「傾向把握」レベルですが、家庭内の環境比較には十分です。コードも50行未満とシンプルで、Arduino入門後の「次に作るもの」として最適です。ぜひ自分の生活環境の「見えない空気」を可視化してみてください。
製造プロセス
- Raspberry Piと湿度センサーで作る自動エアロポニックスシステム
- Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
- スマートホーム連携向けマルチポジション温度センサーシステム
- K30 CO2センサで室内空気質をリアルタイム監視する
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
- DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
- Arduino、Yaler、IFTTTでWeb対応IoTゲージを構築する
- Arduinoで作る斥力式磁気浮上装置: シンプル回路とDIYガイド
- 高性能 Arduino 気象観測気球データロガーの製作ガイド
- 10ドルで作る携帯型Arduino気象観測ステーション – Nano、DHT22、BMP180、LCDで簡単DIY
- DS1302 RTCとArduino UNOで作る信頼性の高い目覚まし時計