はじめに
スマートハウスの実現には、室内環境をリアルタイムで監視し、自動で調整する仕組みが不可欠です。その第一歩として、温湿度センサーを活用した環境モニタリングシステムを構築してみましょう。本記事では、DHT11/DHT22温湿度センサーとArduinoを使って、室内の温度と湿度を測定し、LCDディスプレイやスマートフォンにデータを表示するシステムを作成します。
また、過去に解説したArduinoで植物の水やりを自動化するシステムとも連携させることで、湿度データをもとに最適な水やりを実現できます。
温湿度センサーを使うメリット
温湿度センサーを使うことで、以下のようなメリットがあります。
- リアルタイム監視:温度と湿度の変化をリアルタイムで取得可能。
- スマートホーム化の第一歩:データを活用してエアコンや加湿器の制御に応用できる。
- 低コストで導入可能:DHT11やDHT22は安価で入手可能。
- 他のIoT機器との連携:ESP32を使えばスマホアプリやクラウドと連携も可能。
必要な部品
このシステムを作成するために、以下の部品を準備します。
部品名 | 用途 |
---|---|
Arduino Uno(またはESP32) | データ処理を担当するマイコンボード |
DHT11またはDHT22温湿度センサー | 室内の温度・湿度を測定 |
16×2 LCDディスプレイ(I2C対応推奨) | 測定結果を表示 |
抵抗(4.7kΩ) | DHTセンサーの安定動作用 |
ジャンパーワイヤー | 各コンポーネントを接続するため |
ESP8266/ESP32(オプション) | スマホやクラウドと連携するため |
システムの仕組み
- DHTセンサーが温湿度データを取得
- Arduinoがデータを処理し、LCDディスプレイに表示
- (オプション)ESP32経由でスマホアプリやクラウドにデータ送信
- (応用例)湿度に応じて換気扇や加湿器を自動制御
配線と回路図
DHTセンサーの接続(Arduinoの場合)
DHT ピン | Arduino ピン |
VCC | 5V |
GND | GND |
DATA | D2 |
(プルアップ抵抗) | 4.7kΩ(DATAとVCC間に接続) |
LCDディスプレイの接続(I2C対応)
LCD ピン | Arduino ピン |
VCC | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |

Arduinoのプログラム
以下のコードをArduinoに書き込むことで、温湿度を測定し、LCDディスプレイに表示できます。
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin();
lcd.backlight();
}
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(hum);
lcd.print(" %");
delay(2000);
}
システムの応用
1. スマートフォン通知機能(ESP32連携)
ESP32を使うことで、温湿度データをスマホに送信し、異常時に通知を受け取ることができます。ESP32でWi-Fi制御するスマートスイッチ と組み合わせれば、スマホから家電を制御することも可能です。
2. エアコンや加湿器との連携
リレーを使用して、温度や湿度の閾値を超えた場合にエアコンや加湿器の電源を自動でオン/オフすることができます。
3. クラウド連携(Google Firebase/AWS)
クラウドにデータをアップロードし、Webブラウザやスマホアプリで遠隔監視することも可能です。
よくあるトラブルと解決策
1. 温湿度センサーの数値が取得できない
- 配線ミスがないか確認(特にプルアップ抵抗)
- 電源電圧をチェック(DHT22は3.3V駆動も可能だが、安定性を考えると5Vが推奨)
- センサーの初期化コードを適切に実行しているか確認
2. LCDに表示されない
- I2Cアドレスが適切か確認(
0x27
ではなく0x3F
の場合もある) lcd.begin();
を忘れていないか確認
3. ESP32がWi-Fiに接続できない
- SSIDとパスワードが正しく入力されているか確認
- Wi-Fiルーターの2.4GHz帯を使用しているか確認(ESP32は5GHz非対応)
まとめ
本記事では、温湿度センサーを使ったスマートハウス実験を紹介しました。
本記事で学んだこと
- DHTセンサーを使った温湿度測定
- LCDディスプレイへの表示
- スマートフォンやクラウドとの連携
- エアコンや加湿器の自動制御
また、Arduinoで植物の水やりを自動化するシステム との組み合わせで、湿度に応じた水やり制御も可能です。ぜひ、スマートホーム化の第一歩として挑戦してみてください!
コメント