センサはSHT-71を使いました。SHTシリーズではSHT-11が有名なのですが、小型の基盤にセットしなければ使いづらそうなので、ちょっと値段は高くなりますが4本のピンが並んでいるこちらを使う事にします。センサとしての性能は全く同じですが、SHT-11とはピンの配置が異なるので注意が必要です。
このセンサの利点はまずその小ささです。センサ部分が4mm×5mmしかありません。あと、Arduinoへの入力はデジタルインピンを使うので貴重なアナログインピンを節約できます。この小ささで正確な温度と湿度が計測できます。
材料
温湿度センサ SHT-71 データシート
10kΩの炭素皮膜抵抗 2個
参考
Arduino と Ruby で温湿ネットロガー
SHT1X Humidity & Temperature Sensor Code
2線式 温・湿度センサSHT11 アーカイブ
プルアップ、プルダウン
参考リンク先にも詳しく記述してありますが、このSHTシリーズの温湿度センサを簡単に扱えるようにArduino用のライブラリがあります。ダウンロードしてきたsht11ライブラリを解凍し、フォルダごと
arduino-0016/hardware/libraries/
以下に設置します。
回路図
まだあまり理解していませんが、VDDからプルアップ抵抗をSCKとDATAに挟まないと正しく計測できません。SHT-11センサは、参考リンク先のエレキジャックさんがとても詳しく書かれているので、大変参考になります。
SHT-71センサを電線にハンダ付けし、防水用にエキポシ樹脂で固めます。
参考リンク先からコピーしたArduinoのスケッチです。湿度と温度をSerial.print()する時に、センサの値を湿度と温度に変換しています。
#include "sht1x.h"
void setup(){
int timeout = 0;
Serial.begin(19200);
delay(11);
sht1x_init();
if (sht1x_read_humidity() < 0) {
Serial.println("soft reset");
sht1x_reset();
}
}
void loop(){
unsigned int h = sht1x_read_humidity();
unsigned int t = sht1x_read_temp();
while (millis() % 1000);
Serial.print(millis(), DEC);
Serial.print(",");
Serial.print(-4.0 + 0.0405 * h - 2.8e-6 * h * h, DEC);
Serial.print(",");
Serial.println(-40.0 + 0.01 * t, DEC);
}
スケッチを実行し、Arduino IDE のシリアルモニタで表示させます。左の値が湿度、右が温度になっています。
植物・農業・エレクトロニクス・音楽...。実験とプロジェクトのblog。 ▶ projects : Biotope |
0 件のコメント:
コメントを投稿