ArduinoでGROVE デジタル温度・湿度センサで取得した値をGROVE 7セグメント4桁ディスプレイに表示する

温度センサーで取得した値をディスプレイに表示します。以下の記事の応用編なので基本的な設定についてはそちらの内容をご確認ください。


必要な機材

  1. Arduino Uno
  2. GROVE ベースシールド
  3. GROVE 7セグメント4桁ディスプレイ
  4. GROVE デジタル温度・湿度センサ

温度センサの値をディスプレイに表示するスケッチ

デジタル温度・湿度センサは[D2]に接続します。
7セグメント4桁ディスプレイは[D5]に接続します。

#include "DHT.h"
#include "TM1637.h"

#define DHTPIN 2
#define DHTTYPE DHT11

#define CLK 5
#define DIO 6

DHT dht(DHTPIN , DHTTYPE);
TM1637 tm1637(CLK , DIO);

//---温度の値
int temperature = 0;

///=======================================================================
//   +setup
///=======================================================================

void setup() {

	//---Serialポートを開く
	Serial.begin(9600);

	//---ディスプレイ初期化
	tm1637.init();

	//---温度計初期化
	dht.begin();

	//---ディスプレイ輝度(普通)
	tm1637.set(BRIGHT_TYPICAL);
}

///=======================================================================
//   +loop
///=======================================================================

void loop() {

	//---------------------------------------------
	//   +温度・湿度取得
	//---------------------------------------------

	float sensor_h = dht.readHumidity();
	float sensor_t = dht.readTemperature();

	//---エラー時
	if(isnan(sensor_t) || isnan(sensor_h)){

		Serial.println("Failed to read from DHT");

		//---ディスプレイの消灯
		tm1637.clearDisplay();

		//---正常時
	}else{

		Serial.print("湿度: "); Serial.print(sensor_h); Serial.print("% ");
		Serial.print("温度: ");	Serial.print(sensor_t);	Serial.println("℃");

		//---数値の温度に変換
		temperature = (int)sensor_t;

		//---ディスプレイに表示
		tm1637.displayNum(temperature);
	}

	//---------------------
	//   +1秒ごとに実行
	//---------------------

	delay(1000);
}

スケッチの実行結果

温度センサーの値をディスプレイに表示する事が出来ました。

温度センサーが小数点以下の値を取得出来ない&小数点を表示出来ないディスプレイという事で温度は整数のみの表示となっています。

※計測した温度が一定にならなかったりディスプレイ表示が異常な場合には、GROVEベースシールドに3.3Vと5Vの切替スイッチがありますので5V側に切り替わっているか確認してください。3.3Vでは正しく動作しません。