温湿度センサー AM2301B / DHT20
温湿度センサー AM2301Bインターフェイス : I2C (7bitアドレス:0x38)
電源 : 3.3V(2.2~5.5V電源に対応)
計測範囲 : 湿度0~100% 温度-40~80℃
接続は▼の表通り ※RaspberryPi PICOはピン割り当てが可変なので公式(mBed)ボードライブラリを使用した場合の接続
AM2301B | ArduinoUNO | M5Stamp PICO | RaspberryPi PICO |
---|---|---|---|
白リード(SCL) | A5 | G21 | GP7 (mBed) |
黄色リード(SDA) | A4 | G22 | GP6 (mBed) |
赤リード(VCC) | 5V | 3.3V | 3.3V |
黒リード(GND) | GND | GND | GND |
DHT20
AM2301BとDHT20は(少なくともソフトウエア的には)同じモノのようです。スペックシートの記載もデータ読み取り方法も一緒でした。
AM2301B用に書いたスケッチは、そのままDHT20で使用できます。
読み取り手順
電源を入れてから100ミリ秒以待つ | 受信データ | |
0x71を送信 | ||
100ミリ待つ | ||
0xAC 0x33 0x00 を送信 | ||
80ミリ秒待つ | ||
7Byte受信 | ||
ステータスをチェック Bit[7] = 0なら読み取り完了 |
||
CRC8チェック |
CRCは CRC8-Dallas/Maxim 、初期値は0XFFで左ローテート
生成多項式は 1 + x^4 + x^5 + x^8 => B100110001 => 0x31
読み取ったデータは温度(RH)、湿度(RT)はそれぞれ20Bit、湿度・気温への変換は
湿度(%) = (RH/2^20) × 100
温度(℃) = (RT/2^20) × 200 - 50
スケッチ
AM2301B: AM2301Bの読み出し手順、出力はシリアルモニター(9600bps)以上の スケッチを公開しています。
YuruPuro/AM2301B