stylesheet

2017-08-22

DHT11 温度湿度センサーモジュールをテスト

温度と湿度を計測できるDHT11を使用した安価なモジュール。
通電LED等はついていないシンプルな造り。

セットアップ

動作確認として温度、湿度を交互に表示するものを作成する。

以下を用意。

  • 温度湿度センサーモジュール (DHT11)
  • 7セグ4桁ディスプレイモジュール (TM1637)
  • Arduino Nano

DHT11のoutとD10を接続。TM1637のCLK、DIOをそれぞれD12、D11と接続。VCCは5Vを使用。

コード

完全版はGitHubから。
DigitalTubeDHTライブラリを使用。

DHT11は仕様上、サンプリング周期が2秒以上必要。

#include <Arduino.h>
#include <TM1637.h>
#include <DHT.h>

const int CLK = 12;
const int DIO = 11;
const int DHT_OUT = 10;

const int OFF = 0x7E;

TM1637 tm1637(CLK,DIO);
DHT dht;
int current = 0;
boolean toggle = true;
int8_t DispData[4] = {OFF, OFF, OFF, 0x00};


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

  dht.setup(DHT_OUT);

  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);
}

void display()
{
  int value = current > 9999 ? 9999 : current;
  for (int i=0; i<4; i++) {
    if (value == 0) {
      DispData[3-i] = i == 0 ? 0 : OFF;
    } else {
      DispData[3-i] = value % 10;
      value /= 10;
    }
  }
  tm1637.display(DispData);
}

void loop()
{
  current = toggle ? (int)dht.getTemperature() : (int)dht.getHumidity();
  display();
  toggle = !toggle;

  delay(3000);
}


結果

温度・湿度が1つのモジュールでまかなえるのは良いのだが、精度がよろしくないのが難点。 個体差によるばらつきもあるだろうけど、温度は余裕で数度ずれる。特定の方向にずれてくれれば良いのだが、上へ下へふらふらと安定しない。(スペック上もプラスマイナス2度)

4度も違えば大分と体感温度も変わってくるので、ニャンともアテが外れた感じ。

あたりまえのことだが、+とーはよく確認してから接続すること。
間違えるとすごく発熱します。壊れはしなかったけど、熱でプラスチックのカバーが変形してしまいました。