温度と湿度を計測できるDHT11を使用した安価なモジュール。
通電LED等はついていないシンプルな造り。
セットアップ
動作確認として温度、湿度を交互に表示するものを作成する。
以下を用意。
- 温度湿度センサーモジュール (DHT11)
- 7セグ4桁ディスプレイモジュール (TM1637)
- Arduino Nano
DHT11のoutとD10を接続。TM1637のCLK、DIOをそれぞれD12、D11と接続。VCCは5Vを使用。
コード
完全版はGitHubから。
DigitalTubeと
DHTライブラリを使用。
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度も違えば大分と体感温度も変わってくるので、ニャンともアテが外れた感じ。
あたりまえのことだが、+とーはよく確認してから接続すること。
間違えるとすごく発熱します。壊れはしなかったけど、熱でプラスチックのカバーが変形してしまいました。




