旅を楽しくするArduino端末を作る。その4-温湿度計を作る-

第4回はバイク走行時に外気温を図るため、温湿度各種センサーを用いて、動作を確認していきます。
第3回はこちらからどうぞ

温度センサーについて

今回使用する温度センサーは、DHT-11を利用します。
おそらく日本で出回っているお試し温度センサーとしては、一番メジャーなセンサーでいろいろな通販サイトで取り扱っています。

私はAmazonで中国製の基盤実装型を購入いたしました。
(評価用と呼ばれるものです。基板実装しなくても端子に接続するだけでIOが取得できます。)
この手のセンサーの値段はピンキリなので、「高いのがいい」「互換機で十分」などどちらの意見もありますが、購入の検討にあたっては自分のスキルと状況(スケジュール等)をよく考えて購入頂ければと思います。

下記は基盤実装されたセンサーのデータシートの内容を簡単にまとめた仕様です。
DHT-11単体とは異なるので注意してください。

温度レンジ:0~50℃(60)
温度誤差:±2℃
湿度レンジ:20%~90%RH
湿度誤差:±5%RH

温度誤差が意外と大きく、利用できるところが少なく感じますが、DHT-11の良いところは購入時点で校正がされており、袋から出した状態で利用できるところです。

お気軽にテストするのに向いていることがセンサー仕様からも読めますね。

回路

ブレッドボードがなければ直接Arduinoにつないでも問題ありません。
DHT-11評価基盤の動作電圧は5Vでしたので、5V出力から電気を供給しました。

コード

#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.println(F("°C "));
}

DHT-11のセンサーは読み取りの信号を受けてからセンサー値を吐きます。
その応答時間が約1秒ほどありますので、ループを回す際にはdelayをかけてから取得するようにします。
また、値が取得できない場合はシリアルモニターにFaild…を出します。

結果

結果は2秒に1回シリアルモニターに出力されます。湿度は1%単位、温度は0.1℃で出力されました。
息を吹きかけるとセンサー値が上昇しますので、問題なく動作していると思います。

まとめ

バイクに乗せる際の考慮点ですが、走行風を直接当ててしまうと正しい値が取得できませんので、設置場所は何かで遮れる場所にしたいと思います。
ただ、どこにおいても走行風で実温度より低くなってしまうので、参考値ぐらいに利用するのがよさそうです。

旅を楽しくするArduino端末を作る。リンク集

その1-不満点を挙げよう- 
その2-不満点をまとめよう-

その3-電圧測定器を作る-
その4-温湿度計を作る-
その5-気圧計を作る-
その6-方位・高度計をGPSで-
その7-12Vバッテリーから電力供給
その8-Ver1作成-
その9-電圧計の誤差とその代替案-
その10-Ver2へアップデート-
その11-LCDをI2Cで制御しよう-
その12-LCDをI2C化-
その13-Ver3へアップデート-
その14-USB充電の仕様に関して-
その15-Arduino言語を用いながらBluetoothで通信できるESP32-
その16-旅Arduino Ver4 スマホアプリ化-

関連記事一覧

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP