【環境の見える化】環境の状態を「視覚化」しよう!

【スマート農園への第一歩】ESP32とDHT11で温度・湿度を計測!シリアルモニタに表示させる方法

前回の記事では、開発環境を整えてマイコンの挨拶とも言える「Lチカ(LED点灯)」を無事に成功させました。

LEDが点滅しただけでも感動的ですが、ESP32の真骨頂はここからです。

ESP32は単なる電子工作の枠を超え、多様なセンサーやデバイスと繋がることで、スマート農園(スマ農)のあらゆる制御を担うパワフルな「頭脳」として活躍します。

植物を元気に育てるために最も重要なのは、植物が今どんな環境に置かれているかを正確に把握することです。

勘や経験だけに頼るのではなく、農園の状態を数値として「視覚化(見える化)」することが、自動化への第一歩となります。

様々なセンサーを使って情報キャッチ!

ESP32には数多くのセンサーを接続することができ、アイデア次第で農園のあらゆるデータをキャッチできるようになります。

  • 土壌水分センサー:土の乾き具合をリアルタイムで数値化し、適切な水やりのタイミングを自動判断する。
  • 照度(光)センサー:日当たり状況をチェックし、日照不足の際にLED補光ライトを自動点灯させる。
  • CO2・気圧センサー:ビニールハウスや室内農園の生育環境を最適に保つ。
  • カメラモジュール(FNK0061 B付属):離れた場所から作物の成長具合を画像・動画で監視する。

そして、これらのセンサーで取得したデータは、目的に応じてさまざまな方法で「視覚化」できます。

キャッチした情報を確認する!

  • PCの画面(シリアルモニタ):開発やテスト時に手軽に数値を確認する(※今回はここからスタート!)
  • 小型液晶ディスプレイ(LCD/OLED):農園の現場に設置し、その場でひと目で数値を確認する
  • スマホアプリ / Webダッシュボード:Wi-Fi機能を活かし、外出先から遠隔でリアルタイム監視する

今回はその大きな第一歩として、電子工作の定番である温湿度センサー「DHT11」を使い、お部屋の温度と湿度をPC画面上のシリアルモニタに表示させてみましょう!

今回使用するアイテム

基本キット(FNK0061 B)に加えて、今回は定番の温湿度センサー「DHT11モジュール」を別途1つ用意します。

  • ESP32開発ボード × 1(キット同梱)
  • ブレッドボード × 1(キット同梱)
  • ジャンパー線(オス-メスまたはオス-オス) × 3本(キット同梱)
  • USB Type-Cケーブル × 1(キット同梱)
  • DHT11温湿度センサーモジュール × 1(※別途購入)
DHT11

今回使用するDHT11は、温度と湿度を1つの素子で同時に計測できる非常に便利なデジタルセンサーです。

単体のDHT11素子だと配線時に抵抗を挟む必要がありますが、初心者には基板に抵抗が実装済みの「DHT11モジュール(ピンが3本または4本のもの)」がおすすめです。

配線がたったの3本で済むため、ブレッドボードに挿すだけで簡単に使えます。

ESP32とDHT11の配線手順

それでは、ESP32とDHT11センサーをブレッドボードを使って接続していきましょう。

配線作業に入る前に、安全のための鉄則を確認します。

【注意!】

配線作業を行う際は、必ずESP32からUSBケーブルを抜き、電源が完全に切れた状態で行ってください。

通電したまま作業すると、誤配線によるショートでESP32やセンサーが破損する恐れがあります。

DHT11モジュールには3本のピンがあり、それぞれ役割が決まっています。

  • VCC(または + ):電源ピン(3.3Vまたは5Vを供給)
    • 補足:VCC(または+)は Voltage at the Common Collectorの略で共通コレクタの電圧(バイポーラトランジスタのコレクタに接続する電源に由来)、またVDDと記載されている場合もあり、VDDはVoltage at the Drain Drainの略で、ドレインの電圧(電界効果トランジスタ/FETのドレインに接続する電源に由来)、実用上はどちらも「プラス電源(3.3Vや5V)」を意味するものとして同じように扱って問題ないようです。
  • DATA(または OUT / S):データ信号ピン
  • GND(または − ):グランドピン(0V)

【配線手順】

  1. DHT11の「VCC」ピン => ESP32の「3.3V」ピン(または5Vピン)へ接続
  2. DHT11の「GND」ピン => ESP32の「GND」ピンへ接続
  3. DHT11の「DATA」ピン => ESP32の「GPIO 13」ピンへ接続

ピンの表記をよく確認し、間違いがないよう慎重にジャンパー線を差し込んでください。

Arduino IDEにDHTライブラリを追加しよう

配線が完了したら、PCとESP32をUSBケーブルで接続します。

コードを書き込む前に、Arduino IDEに「DHTセンサーを動かすための専用プログラム集(ライブラリ)」を追加する必要があります。

ライブラリとは、複雑なセンサーの制御手順を誰でも簡単に呼び出せるようにまとめた「拡張プログラム」のようなものです。

【ライブラリのインストール手順】

  1. Arduino IDEを開きます。
  2. 画面左側のメニューアイコンから「ライブラリマネージャー(本棚のようなアイコン)」をクリックします。
  3. 検索窓に「DHT sensor library」と入力します。
  4. 「DHT sensor library by Adafruit」を探し、「インストール」をクリックします。
  5. 「依存するライブラリも一緒にインストールしますか?」という確認画面が出たら、「Install all(すべてインストール)」を選択します。

これで、簡単に温湿度データを取得する準備が整いました。

サンプルコードの書き込みと動作確認

ライブラリの準備ができたら、プログラムをESP32に書き込みます。 以下のコードをArduino IDEに貼り付けてください。

コード

#include "DHT.h"

#define DHTPIN 13 // DHT11のDATAピンを繋いだGPIO番号
#define DHTTYPE DHT11 // センサーの型番を指定

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(115200); // シリアル通信の速度を115200bpsに設定
Serial.println(F("DHT11 test!"));

dht.begin();
}

void loop() {
// 測定には約2秒かかるため、2秒ごとにデータを取得します
delay(2000);

float h = dht.readHumidity(); // 湿度を取得
float t = dht.readTemperature(); // 温度を取得(摂氏)

// 読み取りに失敗した場合は再試行
if (isnan(h) || isnan(t)) {
Serial.println(F("DHTセンサーからの読み取りに失敗しました!"));
return;
}

// シリアルモニタに結果を出力
Serial.print(F("湿度: "));
Serial.print(h);
Serial.print(F("% 温度: "));
Serial.print(t);
Serial.println(F(" °C"));
}

fine DHTPIN 13 // DHT11のDATAピンを繋いだGPIO番号
#
【書き込みと確認手順】

  1. 画面左上の「書き込みボタン(右矢印マーク)」を押して、コードをESP32に転送します。
  2. 書き込みが完了したら、画面右上にある「シリアルモニタ」のアイコンをクリックして開きます。
  3. シリアルモニタ画面の右下にある通信速度(ボーレート)の設定を「115200 baud」に変更します。

画面上に「湿度: 55.00% 温度: 24.50 °C」といった数値が2秒おきに流れてくれば成功です!

【出来上がったら確認しよう】

動作確認ができたら、センサーに向かって「ふーっ」と息を吹きかけてみてください。シリアルモニタに表示されている湿度の数値がスーッと上がっていけば、センサーがお部屋の空気の変化をリアルタイムでキャッチしている証拠です!

「Failed to read from DHT sensor!」が出たときのチェックリスト

もしシリアルモニタにエラーメッセージが表示されたり、数値が出ない場合は、慌てずに以下のポイントをチェックしてみましょう。

  • 配線が緩んでいないか:ブレッドボードのピンがしっかり奥まで刺さっているか確認してください。
  • ピン番号の間違い:コード上の「#define DHTPIN 13」と、実際に配線したESP32のGPIOピン番号が一致しているか確認してください。
  • 電源ピンの確認:VCCとGNDが逆になっていないか再確認してください。
  • ボーレートの設定:シリアルモニタの通信速度が「115200 baud」になっているか確認してください。

まとめ:視覚化の第一歩クリア!次は「データ」をどう活かす?

今回は、ESP32にDHT11温湿度センサーを接続し、お部屋の環境データをPC画面上に視覚化することに成功しました!

自分自身の手で構築したシステムから、リアルタイムの環境データが流れてくる瞬間は、スマート農園構築の中でも特にワクワクするポイントです。

データが数値として見えてくると、次は「このデータを現場で見たい」「数値によって何かを動かしたい」というステップが見えてきます。

次回は、この温湿度データをPCなしでもその場で確認できるように、液晶ディスプレイ(LCD/OLED)へ表示させる方法に挑戦します!

液晶ディスプレイが必要になります。下のリンクからでも購入できます。

農園機器としての「見た目」が一気に本格化しますので、ぜひ楽しみに待っていてくださいね!

次回予告:

【PC不要で確認可能!】ESP32とOLEDディスプレイで温湿度をリアルタイム表示!可視化ガジェットを作ろう

おすすめの記事