Lesson 11
#
温度湿度センサー温度湿度センサーと電気式センサーの仕組みについて学習。
#
使用する機器- (1) x Elegoo Uno R3
- (1) x DHT11 Temperature and Humidity module
- (3) x F-M wires (Female to Male DuPont wires)
#
温度湿度センサー
セットに入っている温度湿度センサーは DHT11 というセンサーを採用しており、抵抗膜方式の湿度計測部とNTC方式の温度計測部で構成され、高性能な8ビットマイコンと接続することで、優れた品質、高速応答、耐干渉性、コストパフォーマンスを実現しています。
電子式の湿度センサーには、主に抵抗式と容量式の2種類があり、抵抗式は感湿材料の吸湿/脱湿によって変化する抵抗値を捉えて計測し、容量式の場合は、感湿材料の吸湿/脱湿によって変化する静電容量を捉えて計測します。抵抗型は湿度が低くなると抵抗値が大きくなり、湿度が高くなると抵抗値が小さくなります。
温度測定に使われている NTC とは 温度により電気抵抗値が下がる仕組みを利用している。
本キットは上記の組み合わせでモジュール化している。
DHT11 は データシートにある通り、正面から見たときに左から VDD 電源ピン、DATA データ転送ピン、NC 無接続ピン、GNDピンとなっており、モジュール化されるにあたり NC が省略され 3ピンになっている。
#
構成
配線し、サンプルプログラムとライブラリをデプロイして、シリアルコンソールを開くとセンサーデータを確認できる。
T(temperature)が温度、 H(humidity)が湿度となっており、コードを見てみると
DHT_nonblocking dht_sensor( DHT_SENSOR_PIN, DHT_SENSOR_TYPE );
でデータをやり取りするピンと、利用する DHTセンサーのタイプを指定している。
ライブラリ側で計算しているためセンサー制御系のコードは無く、データの定義とデータ取得、表示についてのコードのみ measure_environment
関数を定義して値を取り続けるようにし、あとは Loop
で値の取得確認と表示を繰り返している。
Lesson 5 で デジタル入力、アナログ入力について学習したように、本来温度のような短時間での連続データを取り扱うことに対してデジタル入力は本来向いていません。実際にセンサーが取得し Arudino 側に送っているデータは 8bit x 5種類となっており 先頭から湿度(High)、湿度(Low)、温度(High)、温度(Low)と下記のようになっておりモジュール側で吸収している。
