レッスン 35-2: HTU21D 温度センサーの使用 - カスタムコード

レッスン 35-2: HTU21D 温度センサーの使用 - カスタムコード

このチュートリアルでは、HTU21D温度センサーを使用してArduinoで温度と湿度を測定する方法を探ります。HTU21Dは信頼性が高く、低消費電力のセンサーで、I2Cを介して通信するため、プロジェクトに簡単に統合できます。このレッスンの終わりまでに、摂氏、華氏、ケルビンで温度を読み取るとともに、相対湿度を測定する動作コードを持つことができます。

HTU21D module

配線とコードに入る前に、関与するコンポーネントを理解することが重要です。HTU21Dセンサーは、電源、接地、およびデータ転送のための2本のI2Cワイヤーという最小限の接続を必要とします。このシンプルさは、気象ステーションからスマートホームデバイスまで、さまざまな用途に適しています。ビジュアルガイドについては、タイムスタンプ03:45のビデオを参照してください。

ハードウェアの解説

このプロジェクトの主要コンポーネントはHTU21Dセンサーで、温度と湿度を測定します。このセンサーは1.5Vから3.6Vまでの電圧で動作できるため、さまざまなアプリケーションに対応します。高解像度の測定値を提供し、温度測定範囲は-40°Cから+125°Cで、湿度測定の解像度は0.04%です。

さらに、センサーはI2C通信を使用しており、2つのピン、SDA(データライン)とSCL(クロックライン)が必要です。これにより、複雑な配線を必要とせず、Arduinoや他のマイクロコントローラとの簡単な統合が可能になります。Adafruitライブラリはセンサーとのインタラクションを簡素化し、データ取得や通信プロトコルをシームレスに処理します。

データシートの詳細

メーカーTEコネクティビティ
部品番号HTU21D-F
論理/入出力電圧1.5 - 3.6 V
電源電圧3.3 V
現在の消費量(アイドル)0.02 µA(典型値)
現在の消費量(アクティブ)450 µA(典型)
温度範囲-40から+125 °C
湿度範囲0から100 %RH
解像度0.04 %RH; 0.01 °C
パッケージ6ピンDFN

  • センサーの損傷を避けるために、正しい電源供給を確保してください。
  • SDAおよびSCLラインにプルアップ抵抗を使用してください(統合されていない場合)。
  • センサー接続を短く保ち、ノイズを最小限に抑えてください。
  • 作動中に電圧を監視して安定性を維持してください。
  • 電源ピンの近くでデカップリング用にコンデンサを使用することを検討してください。

配線指示書

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

HTU21D温度センサーを配線するには、まず電源とグラウンドを接続します。センサーの左側のピンを3.3Vのソースに接続し、必要な電圧を処理できることを確認します。通常赤でマークされている2番目のピンはグラウンドに接続する必要があります。

次に、センサーのSDAピンをピンに接続しますA4Arduino上で、I2C通信のデータラインとして機能します。それから、SCLピンをピンに接続します。A5時計線として機能します。これらの接続が確実であることを確認してください。緩んだ配線は、断続的な読み取りやセンサーとの通信の失敗につながる可能性があります。

コード例とウォークスルー

コードでは、必要なライブラリを含めてセンサーを初期化することから始めます。行Adafruit_HTU21DF htu = Adafruit_HTU21DF();センサークラスのインスタンスを作成します。setup()関数では、シリアル通信を開始し、センサーが適切に接続されているかを確認します。

void setup() {
  Serial.begin(9600);
  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

このスニペットはセンサーが正しく機能しているかを確認します。もしそうでなければ、エラーメッセージを表示し、プログラムを停止します。loop()機能として、温度と湿度の値を継続的に読み取ります。

void loop() {
    Serial.print(getHTU('C'));
    Serial.print("C");
    Serial.print(getHTU('H'));
    Serial.println("%");
    delay(1000);
}

ここでは、関数getHTU()異なるパラメーターで呼び出され、摂氏温度と湿度を取得します。遅延は、読み取りが毎秒行われてスムーズな出力がシリアルモニターに表示されることを保証します。完全なコードは、記事の下に参考として掲載されています。

デモンストレーション / 期待すること

すべてが正しく配線され、コードがアップロードされると、シリアルモニターに温度と湿度の読み取り値が表示されるはずです。温度はセルシウスで表示され、その後に対応する湿度のパーセンテージが続きます。センサーに熱を加えると、温度がそれに応じて上昇するのを観察できるはずです(ビデオの:15)。

センサーの制限に注意してください。温度が125°Cを超えると、誤った読み取りを返すか、ゼロを表示する可能性があります。運転中に問題が発生しないように、接続が確実であり、センサーに正しく電源が供給されていることを常に確認してください。

ビデオのタイムスタンプ

  • 00:00はじめに
  • 03:45センサーの配線
  • 05:30コードウォークスルー
  • 10:15デモンストレーション
  • 12:00結論

画像

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
513-Lesson 35: Using HTU21D Temperature Sensor | Arduino Step-by-Step Course
言語: C++
コピーしました!

必要かもしれないもの

ファイル📁

データシート(pdf)