はじめに
世の中には、当然色んな温度センサや環境センサが存在しますが、どう選べばいいのかわからないので、ちょっと調べてみました。
DHT11、DHT22、AM2302
- 電子工作やラズパイの初心者向け文脈ではDHT11が頻繁に登場。
- DHT11もDHT22もAM2302も若干の仕様が異なるだけでほとんど似たようなもののようです。
- 1wireに似ているがことなる謎のプロトコルをつかっているらしい。
- Elixirライブラリのjjcarstens/dht
- Adafruit Python DHTのCコード(サポート終了)をポートしたもの。
- Nervesとrpi0で動作確認OK。
- ホストマシンで
mix test
したら、コンパイルエラーがでた。原因不明。 - 今後メンテされることもなさそうなので、大事なプロジェクトには向いていないと思われる。
AHT20
- DHT11の新しい版?
- I2Cでシリアル通信。
- データシートにある換算方法を使い、取得したデータを簡単に温度と湿度に変換できる。
- @myasuさんの「Elixir Circuits I2Cで温度・湿度測定 (AHT20)」がデータ取得方法の説明がわかりやすい。
- Nerves JPの@takasehidekiさんもオススメなので間違いなし。
BME280、BME680
- Bosch製
- I2CとSPIの両方使える。
- BME680は値段が高いが複数のセンサが一つの基盤にコンパクトに収まっているので、考えようによってはお買い得かも。
- メーカーがドライバーを提供してくれる。BoschSensortec/BME280_driver
- それをElixirにポートしたlucaong/elixir_bme680でBME280とBME680の両方を使える。
さいごに
またあたらしいことが分かったら追記していこうと思います。