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()関数を使用する必要があります。最後に、シリアルモニターに温度と湿度の値を印刷します。
製品概要
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 | 通信ポート |
DownLoad Url osoyoo.com