正規オンライン販売店


説明

DHT-22(またはRHT03とも呼ばれます)は、シングルワイヤーデジタルインターフェースを備えた低コストの湿度温度センサーです。センサーはキャリブレーションされており、追加の部品は必要ありませんので、相対湿度と温度を測定する準備ができています。DHT22は、DHT11センサーよりも精度が高く、ダイナミックレンジが広いです。

技術仕様は以下の通りです。

・3.3〜5.5V入力
・1〜1.5mAの測定電流
・40〜50μAの待機電流
・0〜100%RHの湿度
・-40〜80℃の温度範囲
・±2%RHの精度
・±0.5℃の精度

ドキュメントとダウンロード

Arduinoとの接続

DHT22 Arduino
GND GND
VCC 5V
DATA D8

 

ソースコード


 

まずArduino公式ウェブサイトからDHTライブラリをインクルードし、センサーが接続されているピン番号を定義し、DHTオブジェクトを作成する必要があります。セットアップセクションでは、結果を印刷するためにシリアル通信を初期化する必要があります。read22()関数を使用して、センサーからデータを読み取り、温度と湿度の値をtおよびh変数に入力します。DHT11センサーを使用する場合は、read11()関数を使用する必要があります。最後に、シリアルモニターに温度と湿度の値を印刷します。

  1. /* DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
  2. * Program made by Dejan Nedelkovski,
  3. * www.HowToMechatronics.com
  4. */
  5. /*
  6. * You can find the DHT Library from Arduino official website
  7. * https://playground.arduino.cc/Main/DHTLib
  8. */
  9. #include
  10. #define dataPin 8 // Defines pin number to which the sensor is connected
  11. dht DHT; // Creats a DHT object
  12. void setup() {
  13. Serial.begin(9600);
  14. }
  15. void loop() {
  16. int readData = DHT.read22(dataPin); // Reads the data from the sensor
  17. float t = DHT.temperature; // Gets the values of the temperature
  18. float h = DHT.humidity; // Gets the values of the humidity
  19. // Printing the results on the serial monitor
  20. Serial.print(“Temperature = “);
  21. Serial.print(t);
  22. Serial.print(” *C “);
  23. Serial.print(” Humidity = “);
  24. Serial.print(h);
  25. Serial.println(” % “);
  26. delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
  27. }

製品概要

DHT22(AM2302)は、環境の温度と湿度を測定するためのキャリブレーション済みデジタルセンサーです。DHT11よりも高い精度と広い測定範囲を持ち、標準的なシングルワイヤインターフェースを採用しています。

製品特性

パラメータ名
パラメータ値
センサー DHT22(温湿度センサー)
動作電圧 3.3V-5.5V
湿度分解能 0.1%RH
湿度測定範囲 0%RH ~ 99.9%RH
湿度測定誤差 ±2%RH (25°C)
温度分解能 0.1°C
温度測定範囲 -40°C ~ 80°C
温度測定誤差 ±0.5℃
  • 推奨保管環境:

温度:10°C ~40°C
湿度:60%RH以下

製品アプリケーション

  • 気象ステーション
  • 温度調節器
  • テストおよび検査機器

インターフェース説明

ピン 機能
VCC 電源正(3.3V~5.5V)
GND 電源地
DOUT 通信ポート工作原理

動作原理

AM2302デバイスは、シンプルなシングルワイヤ通信を採用しています。シングルワイヤは、データ交換と制御が1本のデータ線で行われる方式です。通常、約5.1kΩのプルアップ抵抗が外部に接続され、バスがアイドル状態のときは高電位になります。SDAは、マイクロプロセッサとAM2302間の通信と同期に使用され、シングルワイヤデータフォーマットを採用し、40ビットのデータを一度に送信します。通信のタイミングは以下の通りです。

AM2302通信フォーマット説明

項目 1-Wire バス フォーマットの定義
初期化 AM2302に電源を供給後、2秒間待機して不安定な状態を回避します。この間、デバイスは指令を送信しないでください。AM2302のSDAデータ線はプルアップ抵抗により高電位に維持され、入力状態で外部信号を常に監視します。
開始信号の送信 マイクロプロセッサのI/Oを出力に設定し、低電位を出力します。低電位の保持時間は少なくとも800μsで、典型的には1ms程度です。その後、I/Oを入力状態に設定し、バスを解放します。プルアップ抵抗により、I/O(AM2302のSDAデータ線)も高電位になります。マスターがバスを解放すると、AM2302は応答信号を送信します。応答信号は80μsの低電位、続いて80μsの高電位です。
データ送信 AM2302は応答後、データバス(SDA)を通じて40ビットのデータをシリアルに送信します。マイクロプロセッサはI/Oの電位変化を監視し、データを受信します。各ビットのデータ「0」は50μsの低電位に続く26~28μsの高電位で、データ「1」は50μsの低電位に続く70μsの高電位で表されます。
湿度 湿度の解像度は 16 ビットで、上位ビットが先になります。センサーから送信される湿度値は、実際の湿度値の 10 倍になります。
温度 温度分解能は 16 ビットで、上位ビットが先頭になります。センサーが出力する温度値は、実際の温度値の 10 倍です。最高温度ビット (Bit15) が 1 の場合は負の温度を示し、最高温度ビット (Bit15) が 0 の場合は正の温度を示します。最高ビット (Bit14 ~ Bit0) 以外の温度は温度値を示します。
チェックデジット チェックデジット = 高湿度 + 低湿度 + 高温 + 低温。单总线通信时序

ユーザー ホスト (MCU) が開始信号を送信すると (データ バス SDA を少なくとも 800μs の間ローにする)、AM2302 はスリープ モードから高速モードに切り替わります。ホストが信号を開始すると、AM2302 は応答信号を送信し、データ バス SDA から 40 ビットのデータをシリアルに送信します。最初にバイトの上位ビットを送信します。送信されるデータは、湿度の上位ビット、湿度の下位ビット、温度の上位ビット、温度の下位ビット、チェック ビットの順です。データ送信の終了は、情報収集をトリガーします。収集が完了すると、センサーは次の通信が来るまで自動的にスリープ モードに入ります。 (注意:DHT22(AM2302)のデータ形式はDHT11と異なります。)

  • 周辺機器の読み取り手順の例

ホストとセンサー間の通信は、次の 3 つのステップでデータを読み取ることで完了します。

ステップ1:

AM2302 の電源がオンになると (AM2302 は不安定な状態を克服するために 2 秒間待機する必要があり、その間読み取りデバイスは指示を送信できません)、周囲の温度と湿度のデータがテストされ、記録され、その後センサーは自動的にスリープ モードに入ります。 AM2302のSDAデータラインはプルアップ抵抗によってプルアップされ、ハイレベルに維持されます。このとき、AM2302のSDAピンは入力状態にあり、常に外部信号を検出します。

ステップ2:

マイクロプロセッサのI/Oは出力に設定され、同時に低レベルを出力します。低レベル保持時間は800us未満にすることはできません。標準値は1MSプルダウンです。次に、マイクロプロセッサのI/Oは入力状態に設定され、バスを解放します。プルアップ抵抗により、マイクロプロセッサのI/O、つまりAM2302のSDAデータラインもハイになります。ホストがバスを解放した後、AM2302は応答信号を送信します。つまり、応答信号として80マイクロ秒の低レベルを出力し、次に80マイクロ秒の高レベルを出力して、周辺機器にデータ受信の準備を通知します。信号伝送を図に示します。
ステップ3:

AM2302 が応答を送信した後、データ バス SDA は 40 ビットのデータを連続して出力し、マイクロプロセッサは I/O レベルの変化に基づいて 40 ビットのデータを受信します。
ビット データ「0」の形式は、50 マイクロ秒の低レベルと 26 ~ 28 マイクロ秒の高レベルです。
ビット データ「1」の形式は、50 マイクロ秒の低レベルと 70 マイクロ秒の高レベルです。
ビットデータ「0」とビットデータ「1」のフォーマット信号を図に示します。

AM2302 のデータバス SDA は 40 ビットのデータを出力した後、50 マイクロ秒間ローレベルを出力し続け、その後入力状態に切り替わり、プルアップ抵抗によりハイレベルになります。同時に、AM2302 は内部で周囲の温度と湿度のデータを再測定し、データを記録します。テスト記録が完了すると、マイクロコントローラは自動的にスリープ モードに入ります。マイクロコントローラは、ホストから開始信号を受信した後にのみセンサーを起動し、動作状態に入ります。

 

Pico使用チュートリアル

ハードウェア接続

以下の表に従って接続してください。

DHT22 Pico 機能
VCC 3.3V 電源入力
GND GND 電源地
DOUT GP15 通信ポート