8.6 Adafruit IOを使った温度と湿度のモニタリング

このプロジェクトでは、人気のあるIoTプラットフォームの使用方法を案内します。プログラミング愛好家向けに、オンラインで多くの無料(または低コスト)プラットフォームが利用可能です。例としてはAdafruit IO、Blynk、Arduino Cloud、ThingSpeakなどがあります。これらのプラットフォームの使用方法は非常に似ています。ここでは、Adafruit IOに焦点を当てます。

DHT11センサーを使用して温度と湿度の読み取りをAdafruit IOのダッシュボードに送信するArduinoプログラムを書きます。また、ダッシュボードのスイッチを通じて回路上のLEDを制御することもできます。

必要な部品

このプロジェクトでは、以下のコンポーネントが必要です。

一式を購入するのが間違いなく便利です。リンクはこちらです:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ブレッドボード

BUY

ジャンパーワイヤ

BUY

抵抗器

BUY

LED

BUY

DHT11 湿温度センサー

BUY

ダッシュボードの設定

  1. Adafruit IO にアクセスし、 Start for free をクリックして無料アカウントを作成します。

    ../../_images/sp230516_102503.png
  2. フォームに記入してアカウントを作成します。

    ../../_images/sp230516_102629.png
  3. Adafruitアカウントを作成した後、Adafruit ioを再度開いてください。 Dashboards をクリックし、次に New Dashboard をクリックします。

    ../../_images/sp230516_103347.png
  4. New Dashboard を作成します。

    ../../_images/sp230516_103744.png
  5. 新しく作成された Dashboard に入り、新しいブロックを作成します。

    ../../_images/sp230516_104234.png
  6. 1つの Toggle ブロックを作成します。

    ../../_images/sp230516_105727.png
  7. ここで新しいフィードを作成する必要があります。このトグルはLEDの制御に使用されるので、このフィードには「LED」という名前を付けます。

    ../../_images/sp230516_105641.png
  8. LED フィードを確認し、次のステップに進みます。

    ../../_images/sp230516_105925.png
  9. ブロック設定(主にブロックタイトル、オンテキスト、オフテキスト)を完了し、右下の Create block ボタンをクリックして終了します。

    ../../_images/sp230516_110124.png
  10. 次に、温度と湿度を表示するために使用される Text Blocks を2つ作成する必要があります。したがって、 temperaturehumidity という名前の2つのフィードを作成します。

    ../../_images/sp230516_110657.png
  11. 作成後、ダッシュボードは以下のようになります。

    ../../_images/sp230516_111134.png
  12. ダッシュボードの Edit Layout オプションを使用してレイアウトを調整できます。

    ../../_images/sp230516_111240.png
  13. API KEY をクリックすると、ユーザー名と API KEY が表示されます。これらはコードで必要になるのでメモしておきます。

    ../../_images/sp230516_111641.png

コードの実行

  1. 回路を組み立てます。

    ../../_images/iot_6_adafruit_io_bb.png
  2. 次に、USBケーブルを使ってESP32-WROOM-32Eをコンピュータに接続します。

    ../../_images/plugin_esp32.png
  3. コードを開きます。

    • esp32-starter-kit-main\c\codes\iot_6_adafruit_io ディレクトリにある iot_6_adafruit_io.ino ファイルを開くか、Arduino IDEにコードをコピーします。

    • ボード(ESP32 Dev Module)と適切なポートを選択した後、 アップロード ボタンをクリックします。

    • "Unknown COMxx"が常に表示されますか?

    • ここでは Adafruit_MQTT LibraryDHT sensor library が使用されており、 Library Manager からインストールできます。

  4. 次の行を見つけて、 <SSID><PASSWORD> をあなたのWiFiネットワークの詳細に置き換えます。

    /************************* WiFi Access Point *********************************/
    
    #define WLAN_SSID "<SSID>"
    #define WLAN_PASS "<PASSWORD>"
    
  5. そして、 <YOUR_ADAFRUIT_IO_USERNAME> をあなたのAdafruit IOのユーザー名に、 <YOUR_ADAFRUIT_IO_KEY> を先ほどコピーした API KEY に置き換えます。

    // Adafruit IO Account Configuration
    // (to obtain these values, visit https://io.adafruit.com and click on Active Key)
    #define AIO_USERNAME "<YOUR_ADAFRUIT_IO_USERNAME>"
    #define AIO_KEY      "<YOUR_ADAFRUIT_IO_KEY>"
    
  6. 正しいボード(ESP32 Dev Module)とポートを選択した後、 アップロード ボタンをクリックします。

  7. コードが正常にアップロードされると、シリアルモニターに次のメッセージが表示され、Adafruit IOとの通信が成功したことがわかります。

    Adafruit IO MQTTS (SSL/TLS) Example
    
    
    Connecting to xxxxx
    WiFi connected
    IP address:
    192.168.18.76
    Connecting to MQTT... MQTT Connected!
    Temperature: 27.10
    Humidity: 61.00
    
  8. Adafruit IOに戻ります。これで、ダッシュボード上で温度と湿度の読み取りを観察することができますし、LEDトグルスイッチを利用して回路に接続された外部LEDのオン/オフ状態を制御することもできます。

    ../../_images/sp230516_143220.png