このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

13. 温度と湿度

DHT (Digital Humidity & Temperature)センサは、周囲の空気を測定する静電容量式湿度センサとサーミスタを備えた低コストのデジタルセンサです。これらは、アナログ/デジタル変換を処理し、1-wire インタフェースを提供するチップを備えています。より新しいセンサーは、I2Cインターフェースを追加提供します。

DHT11 (青)と DHT22 (白)センサーは同じ 1-wire インターフェースを提供しますが、DHT22 はより複雑な計算を必要とするため別のオブジェクトが必要です。DHT22 は、湿度と温度の両方の読み取り値に対して小数点以下1桁の分解能を持ちます。DHT11 は両方とも整数での分解能になります。

センサーから測定値を取得するには、Dallas 1-wire とは異なるカスタムの 1-wire プロトコルを使います。ペイロードは、湿度値、温度値、チェックサムで構成されています。

1-wire インタフェースを使うには、データピンを指定してオブジェクトを構築します:

>>> import dht
>>> import machine
>>> d = dht.DHT11(machine.Pin(4))

>>> import dht
>>> import machine
>>> d = dht.DHT22(machine.Pin(4))

次に、測定を行い、その結果を読み取ります:

>>> d.measure()
>>> d.temperature()
>>> d.humidity()

temperature() `` が返す測定値は摂氏で、 ``humidity() が返す測定値は相対湿度のパーセンテージです。

最も正確な結果を得るために、DHT11 では1秒間に1回、DHT22 では2秒に1回だけ呼び出せます。センサの精度は時間とともに低下します。各センサは異なる動作範囲をサポートしています。詳細については、製品データシートを参照してください。

1-wire モードでは、4ピンのうちの3ピンのみが使用され、I2C モードでは、4ピンがすべて使用されます。古いセンサーは I2C をサポートしていないにもかかわらず4つのピンを持っていることがあります。3番ピンは単に接続されていません。

ピン配置

1-wire モードで I2C のないセンサ (例: DHT11, DHT22, AM2301, AM2302):

1=VDD, 2=Data, 3=NC, 4=GND

1-wite モードで I2C ありのセンサー (例: DHT12, AM2320, AM2321, AM2322):

1=VDD, 2=Data, 3=GND, 4=GND

I2C モードで I2C ありのセンサー (例: DHT12, AM2320, AM2321, AM2322):

1=VDD, 2=SDA, 3=GND, 4=SCL

データ、SDA, SCL ピンにはプルアップ抵抗を使用する必要があります。

新しい I2C センサを下位互換性のある 1-wire モードで動作させるには、ピン3と4の両方を GND に接続する必要があります。これにより I2C インターフェイスが無効になります。

DHT22 センサーは現在、AM2302 という名前で販売されています。