温度と湿度を計測できる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度も違えば大分と体感温度も変わってくるので、ニャンともアテが外れた感じ。
あたりまえのことだが、+とーはよく確認してから接続すること。
間違えるとすごく発熱します。壊れはしなかったけど、熱でプラスチックのカバーが変形してしまいました。