You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ja/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md

8.0 KiB

温度を測定する - Wio Terminal

このレッスンのこの部分では、Wio Terminalに温度センサーを追加し、そこから温度値を読み取ります。

ハードウェア

Wio Terminalには温度センサーが必要です。

使用するセンサーはDHT11湿度・温度センサーで、1つのパッケージに2つのセンサーが組み込まれています。このセンサーは非常に人気があり、温度、湿度、時には気圧を組み合わせた商用センサーが数多く存在します。温度センサーのコンポーネントは負の温度係数NTCサーミスタで、温度が上昇すると抵抗が減少する特性を持っています。

このセンサーはデジタルセンサーであり、オンボードADCを備えており、温度と湿度のデータを含むデジタル信号を生成し、マイクロコントローラーが読み取ることができます。

温度センサーを接続する

Grove温度センサーは、Wio Terminalのデジタルポートに接続できます。

タスク - 温度センサーを接続する

温度センサーを接続してください。

Grove温度センサー

  1. Groveケーブルの片方の端を湿度・温度センサーのソケットに差し込みます。このケーブルは一方向にしか差し込めません。

  2. Wio Terminalをコンピューターや他の電源から切り離した状態で、Groveケーブルのもう片方の端をWio Terminalの画面右側のGroveソケットに接続します。このソケットは電源ボタンから最も遠い位置にあります。

右側のソケットに接続されたGrove温度センサー

温度センサーをプログラムする

Wio Terminalをプログラムして、接続された温度センサーを使用できるようにします。

タスク - 温度センサーをプログラムする

デバイスをプログラムしてください。

  1. PlatformIOを使用して新しいWio Terminalプロジェクトを作成します。このプロジェクトをtemperature-sensorと名付け、setup関数内にシリアルポートを設定するコードを追加します。

    ⚠️ 必要に応じて、プロジェクト1、レッスン1のPlatformIOプロジェクト作成手順を参照してください。

  2. Seeed Grove湿度・温度センサーライブラリの依存関係をプロジェクトのplatformio.iniファイルに追加します:

    lib_deps =
        seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
    

    ⚠️ 必要に応じて、プロジェクト1、レッスン4のPlatformIOプロジェクトへのライブラリ追加手順を参照してください。

  3. 既存の#include <Arduino.h>の下に、以下の#includeディレクティブをファイルの先頭に追加します:

    #include <DHT.h>
    #include <SPI.h>
    

    これにより、センサーと対話するために必要なファイルがインポートされます。DHT.hヘッダーファイルにはセンサー自体のコードが含まれており、SPI.hヘッダーを追加することで、アプリがコンパイルされる際にセンサーと通信するためのコードがリンクされます。

  4. setup関数の前に、DHTセンサーを宣言します

    DHT dht(D0, DHT11);
    

    これにより、Digital Humidity and Temperatureセンサーを管理するDHTクラスのインスタンスが宣言されます。このセンサーはポートD0、つまりWio Terminalの右側のGroveソケットに接続されています。2番目のパラメータは、使用しているセンサーがDHT11センサーであることをコードに伝えます。このライブラリは他のバリエーションのセンサーもサポートしています。

  5. setup関数内に、シリアル接続を設定するコードを追加します:

    void setup()
    {
        Serial.begin(9600);
    
        while (!Serial)
            ; // Wait for Serial to be ready
    
        delay(1000);
    }
    
  6. 最後のdelayの後、setup関数の末尾にDHTセンサーを開始する呼び出しを追加します

    dht.begin();
    
  7. loop関数内に、センサーを呼び出して温度をシリアルポートに出力するコードを追加します:

    void loop()
    {
        float temp_hum_val[2] = {0};
        dht.readTempAndHumidity(temp_hum_val);
        Serial.print("Temperature: ");
        Serial.print(temp_hum_val[1]);
        Serial.println ("°C");
    
        delay(10000);
    }
    

    このコードは2つのfloat型の空の配列を宣言し、これをDHTインスタンスのreadTempAndHumidity呼び出しに渡します。この呼び出しにより、配列に2つの値が格納されます。湿度は配列の0番目の項目にC++の配列は0ベースであるため、0番目の項目が配列の「最初」の項目になります、温度は1番目の項目に格納されます。

    温度は配列の1番目の項目から読み取られ、シリアルポートに出力されます。

    🇺🇸 温度は摂氏で読み取られます。アメリカ人向けにこれを華氏に変換するには、読み取った摂氏値を5で割り、9を掛けてから32を足します。例えば、20°Cの温度は((20/5)*9) + 32 = 68°Fとなります。

  8. コードをビルドしてWio Terminalにアップロードします。

    ⚠️ 必要に応じて、プロジェクト1、レッスン1のPlatformIOプロジェクト作成手順を参照してください。

  9. アップロードが完了したら、シリアルモニターを使用して温度を監視できます:

    > Executing task: platformio device monitor <
    
    --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
    --- More details at http://bit.ly/pio-monitor-filters
    --- Miniterm on /dev/cu.usbmodem1201  9600,8,N,1 ---
    --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    Temperature: 25.00°C
    Temperature: 25.00°C
    Temperature: 25.00°C
    Temperature: 24.00°C
    

💁 このコードはcode-temperature/wio-terminalフォルダーにあります。

😀 温度センサーのプログラムが成功しました!

免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された原文が公式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いません。