温湿度センサーモジュール「DHT11」をArduinoで動かします。
目次:
今回の目的
ELEGOOのチュートリアル「DHT11 温度湿度センサー」をチュートリアル通りに動かします。
※チュートリアルの文章(PDF日本語版含む)もスケッチもELEGOOのサイトから無料でダウンロードできました。
DHT11 温度湿度センサー
「DHT11」、珍しく型式がチュートリアルのタイトルに含まれます。
型式を出しているだけあって、今回は製品仕様もチュートリアルに記載されておりますが、日本語版にも関わらず英語表記でしたので、以下仕様部分を和訳しました。
■相対湿度
分解能 : 16bit
測定ばらつき : ±1%RH
精度 : ±5%RH(25°C)
互換性 : 完全?(チュートリアルには「fully interchangeable」と表記※)
※上位製品に「DHT22」等あるようです。それらとの互換?
応答時間 : 6秒(?)(チュートリアル記述「1 / e (63%) of 25℃ 6s 1m / s air 6s」※)
※環境温度25℃、風速1m/sの条件で測定値が収束する時定数が6秒という意味?
ヒステリシス : <±0.3%RH
長期安定性 : <±0.5%RH/年
■温度
分解能 : 16bit
測定ばらつき : ±0.2°C
精度 : ±2°C(25°C)
応答時間 : 10秒(?)(チュートリアル記述「1 / e(63%)10S」)
※測定値の収束における時定数が10秒という意味?
■電気的特性
電源 : DC3.5〜5.5V
消費電流 : 測定時0.3mA、スタンバイ時60μA
サンプリング期間 : 2秒以上
■ピン配列:
1#「VDD」、2#「DATA」、3#「NC」、4#「GND」
なぜか仕様に測定範囲がありませんので、ネットで探しました。
測定範囲:湿度20%〜90%RH、温度0〜50℃。
湿度測定はNTCサーミスタ(Negative Temperature Coefficient Thermistor)。
これは名前の通り温度上昇に対して抵抗値が下がる(数%/℃)素子で、ニッケル、マンガン、コバルト、鉄などの酸化物を焼成したセラミックス半導体のセンサだそうです。
温度測定は容量性の高分子膜湿度センサ。
こちらは高分子膜が気中の水分の吸収・放出に伴い誘電率が変化する素子で、湿度によってコンデンサの高分子膜誘電体が誘電率を変化し、それがコンデンサの容量変化として現れる仕組み。
青いブロックがDHT11。その4本のリード端子が子基板に挿入実装されております。
子基板には「103」表記の抵抗(10kΩ?)と思しきチップ部品1個の実装に、リード端子3本が突き出ています。
※同じ「DHT11」の名称で販売されているモジュールでも販売元によって色々あり、子基板とそこに実装している部品がここで紹介したものとは異なっていたりします。
DHT11とリード端子間の接続を確認しました。
10kΩ抵抗はDATA-VDD間を接続するプルアップ抵抗のようです。
器材接続
モジュールはArduino直結です。
シリアルモニタをパソコン画面で表示するため、USBケーブルをバッテリーではなくパソコンにつなぎます。
スケッチ
読解しきれなかったので詳細は省略です。
スケッチを読む限り、プログラム開始から温湿度測定を延々と実行し続け?、メインループで一定時間の経過を判断→測定値が取得出来ていることを判断→シリアルモニタに出力、という動きのようです。
DHT11のDATAピンと、Arduinoの2#ピン間を配線1本で測定要求、測定値出力のやり取りをしているはずなのですが。。。その辺り読み取れませんでした。
スケッチとライブラリは前述のELEGOOのサイトの「ELEGOO UNO R3 The Most Complete Starter Kit」 に入っておりますのでご興味ある方はダウンロードしてください。
動作
パソコンのArduino IDEの「ツール」→「シリアルモニタ」でウインドウを立ち上げます。
時計側の測定精度がどの程度かわかりませんが、両者の差は±2℃、±5%RHの範囲です。およそ測れていることでしょう。
所感
今回はライブラリだけでなく、スケッチ本文についても消化不良になってしまいました。
理由というわけではないのですが、前回までは出てこなかったポインタらしき記述がスケッチ本文に出てきました。次のLessonはさらに難解なスケッチになるのでしょうか。
時間かけて言語を学習すればもう少し読解できるのでしょうが。。。学習しきる前に放り出してしまいかねないので先に進みます。
前回の記事:膜スイッチ(メンブレンスイッチ)モジュールをArduinoで動かす①チュートリアル通りに動かす-sozoro-Lab.
0 件のコメント:
コメントを投稿