DHTxx温度湿度センサーとArduinoのインターフェース

問題を排除するために楽器を試してください





この記事では、温度と湿度の測定に使用されるDHTxxシリーズセンサーを見ていきます。両方の機能が1つのモジュールに統合されています。

プロジェクトに最適なセンサーを選択できるように、それらの仕様を確認し、最後にそれをarduinoとインターフェースして、arduinoIDEソフトウェアのシリアルモニターで値を読み取ります。



DHTxxは、DHT11とDHT22の2つのシリーズのみで構成されています。それらの主な違いは、仕様とコストです。 DHT11はローエンドセンサーで、DHT22はハイエンドセンサーです。 DHT22はDHT11よりも高価ですが、プロジェクトで本格的な測定を行わない限り、ローエンドは趣味のプロジェクトには十分です。

DHTxxは4ピンデバイスであり、そのうちの1つはNCであるか接続がないため、3ピンのみを使用します。そのうちの2つは電源ピンで、残りの1つは出力ピンです。センサーはシンプルに見えるかもしれませんが、それを処理するためのライブラリが必要です。



センサーは、サーミスタ、湿度検知デバイス、およびモジュールに組み込まれたマイクロコントローラーで構成されています。それらの仕様は次のとおりです。

DHT11:
•動作電圧範囲は3〜5Vです。
•最大消費電流は2.5mAです。
•20%から80%-/ + 5%の精度で湿度を測定できます。
•摂氏0度から50度+/- 2%の精度で温度を測定できます。
•1秒ごとに値を更新します。
•サイズは15.5mmx 12mm x 5.5mm

DHT22:
•動作電圧は3〜5Vです
•最大消費電流は2.5mAです。
•0%から100%2-5%の精度で湿度を測定できます。
•-40〜 + 125℃+/- 0.5%の精度で温度を測定できます。
•値を1秒ごとに2回更新します。
•サイズは15.1mmx 25mm x 7.7mm
上記の未加工の仕様から、プロジェクトに最適な仕様を選択できます。

DHT11温度湿度センサー

データピンは常に4.7Kから10Kのプルアップ抵抗で接続する必要があります。上に示したセンサーには、NCピンが削除されたPCBとプルアップ抵抗が付属しています。ただし、一部のセンサーにはこれらの機能がなく、プルアップ抵抗がないと、読み取り値がarduinoに送信されると致命的なエラー値になります。

次に、DHTセンサーをarduinoとインターフェースします。プロジェクトを進める前に、次のリンクからライブラリファイルをダウンロードしてください。

https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

必要なのは、DHTxxセンサー、arduino Uno、USBケーブル、およびPCの4つのコンポーネントだけです。

プロトタイプに示されているように、センサーをarduinoのアナログピンに挿入し、コードをarduinoにダンプし、シリアルモニターを開くだけで、読み取り値を確認できます。
著者のプロトタイプ:

DHTxx温度湿度センサーとArduinoのインターフェース//----------------------Program developed by R.Girish-------------// #include dht DHT #define DHTxxPIN A1 int p = A0 int n = A2 int ack int f void setup(){ Serial.begin(9600) pinMode(p,OUTPUT) pinMode(n,OUTPUT) } void loop() { digitalWrite(p,1) digitalWrite(n,0) ack=0 int chk = DHT.read11(DHTxxPIN) switch (chk) { case DHTLIB_ERROR_CONNECT: ack=1 break } if(ack==0) { f=DHT.temperature*1.8+32 Serial.print('Temperature(°C) = ') Serial.println(DHT.temperature) Serial.print('Temperature(°F) = ') Serial.print(f) Serial.print(' ') Serial.print('Humidity(%) = ') Serial.println(DHT.humidity) Serial.print(' ') delay(500) } if(ack==1) { Serial.print('NO DATA') Serial.print(' ') delay(500) } } //----------------------Program developed by R.Girish-------------//

シリアルモニター出力:




前:ハンズフリータップ制御のためにこのタッチフリー蛇口回路を作る 次へ:Arduinoを使用してこのデジタル温度湿度計回路を作成します