注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!

5.11.3 温度 - 湿度

湿度と温度は、物理量自体から実際の人々の生活まで、密接に関連しています。 人間の生活環境の温度と湿度は、人体の体温調節機能と熱伝達効果に直接影響を与えます。 これはさらに思考活動と精神状態に影響を与え、私たちの学習と仕事の効率に影響を与えます。

温度は、国際単位系における7つの基本物理量の一つで、物体の熱さや冷たさを測定するために使用されます。 摂氏は、世界で広く使用されている温度尺度の一つで、"℃"という記号で表されます。

湿度は、空気中に存在する水蒸気の濃度を示します。 相対湿度は日常生活でよく使用され、%RHで表されます。相対湿度は温度と密接に関連しています。 一定の容積の密閉ガスに対して、温度が高ければ相対湿度は低く、温度が低ければ相対湿度は高くなります。

../_images/Dht11.png

このキットには、デジタル温湿度センサであるdht11が付属しています。周囲の空気を測定するための静電容量式湿度センサとサーミスタを使用し、データピンにデジタル信号を出力します。

必要な部品

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

キットを一式で購入するのは非常に便利です、リンクは以下の通りです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

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

コンポーネントの紹介

購入リンク

Arduino Uno R4 Minima

-

ブレッドボード

購入

ジャンパーワイヤー

購入

DHT11 温湿度センサ

-

回路図

../_images/circuit_7.3_dht11.png

配線図

../_images/5.11_dht11_bb.png

コード

注釈

  • 3in1-kit\learning_project\5.11.temperature_humidity のパスの下で 5.11.temperature_humidity.ino ファイルを開きます。

  • または、このコードを Arduino IDE にコピーします。

  • ここでは DHT sensor library を使用しています。 Library Manager からインストールできます。

    ../_images/lib_dht11.png

コードが正常にアップロードされた後、シリアルモニターが連続して温度と湿度を表示するのを見ることができます。プログラムが安定して実行されると、これらの2つの値はますます正確になります。

どのように動作するのか?

  1. DHT.h ライブラリを含めることで、DHTセンサと対話するための関数を提供します。次に、DHTセンサのピンとタイプを設定します。

    #include "DHT.h"
    
    #define DHTPIN 11  // DHT11データピンに接続されたピンを設定
    #define DHTTYPE DHT11 // DHT 11
    
    DHT dht(DHTPIN, DHTTYPE);
    
  2. 115200のボーレートでシリアル通信を初期化し、DHTセンサを初期化します。

    void setup() {
        Serial.begin(115200);
        Serial.println("DHT11 test!");
        dht.begin();
    }
    
  3. loop() 関数で、DHT11センサから温度と湿度の値を読み取り、それらをシリアルモニターに表示します。

    void loop() {
        // 測定の間に数秒待機します。
        delay(2000);
    
        // 温度または湿度の読み取りには約250ミリ秒かかります!
        // センサーの読み取りは最大2秒「古い」ものになることがあります(非常に遅いセンサーです)
        float humidity = dht.readHumidity();
        // 温度を摂氏で読み取る(デフォルト)
        float temperture = dht.readTemperature();
    
        // 読み取りが失敗したかどうかを確認して、早期に終了します(再試行するため)。
        if (isnan(humidity) || isnan(temperture)) {
            Serial.println("Failed to read from DHT sensor!");
            return;
        }
        // 湿度と温度を表示
        Serial.print("Humidity: ");
        Serial.print(humidity);
        Serial.print(" %\t");
        Serial.print("Temperature: ");
        Serial.print(temperture);
        Serial.println(" *C");
    }
    
    • dht.readHumidity() 関数は、DHTセンサから湿度値を読み取るために呼び出されます。

    • dht.readTemperature() 関数は、DHTセンサから温度値を読み取るために呼び出されます。

    • isnan() 関数は、読み取りが有効であるかどうかを確認するために使用されます。湿度または温度の値がNaN(数値でない)の場合、センサーからの読み取りに失敗したことを示し、エラーメッセージが表示されます。