<arduino>温度計作ったよ

暑くないですか?

僕は暑いと思います。 (?)

部屋に温度計がなかったので逸般の誤家庭に1つはあるであろうarduinoとTMP36センサを使って温度計を作ります。 特にIoTしたってほどでもないのでメモがてらちょっとだけ書きます

目次

  1. 使ったもの
  2. 作ったもの
  3. 感想

1.使ったもの

今回は以下のものを使います

部品名 点数
arduino 1
TMP36センサ 1
LCDモニタ 1
USBケーブル 1
ブレッドボード 1
適量
モバイルバッテリー 1

モバイルバッテリーは電源用です。まぁ電源ケーブルなりなんでも好きなもの電源にしてください。

2.作ったもの

arduinoのアナログピンにセンサを繋いで出力用のLCDもつなぐと動きます。

ちなみに今回使ったLCDは昔紹介したキットについてきたやつを使いました。I2C通信で表示を制御しています。

poolbooyer.hatenablog.jp

2.作ったもの

回路は今回はブレッドボードにグサグサしました。

f:id:poolbooyer:20190527225648j:plain
グサグサした様子

わかりにくいので一覧を出しとく

ピン(パーツ) 接続先(arduino)
センサ Vcc 5V
センサ Vout A3
センサ GND GND
LCD Vcc 5V
LCD SDA A5
LCD SCL A4
LCD GND GND

そしてスケッチ

#include <Wire.h>
//I2Cライブラリ
#include <LiquidCrystal_I2C.h>
// センサの繋がるanalogポート番号
int io = 3;
LiquidCrystal_I2C lcd(0x27,16,2); 
void setup() {
  // デバッグ用にシリアル通信を開始
  Serial.begin(9600);
  lcd.init();
}

void loop() {
  // 温度状況を格納する変数
  double value;
  double temperature;

  //センサからの値を格納
  value = analogRead(io);
  //センサからの電圧値を変換
  temperature = (value/1024.0)*5.0;
  temperature=(temperature-0.5)*100.0;
  //温度情報をシリアル送信
  Serial.print("temp=");
  Serial.print(temperature);
  Serial.println("C");
  //遅延関数
  delay(1000);
  // LCDのカーソルを設定
  lcd.setCursor(0, 0);
  // LCDのバックライト点灯
  lcd.backlight();
  //文章を表示
  lcd.print("Now Temp is");
  //二行目に移動
  lcd.setCursor(0,1);
  //温度を表示
  lcd.print(temperature);
}

そうすると

f:id:poolbooyer:20190527225445p:plain
シリアル画面で見た様子

そして、

f:id:poolbooyer:20190527225733j:plain
LCDで表示してみた様子

って感じで表示できます。

3. 感想

今回はなんとなくArduino Unoを使いましたが、多分Nanoにして小型の電源にしておけばIoT的な使い方ができそうって感じですね。
今後使いたいと思ったら改造してみます。

っていうのを書いてる最中に

poolbooyer.hatenablog.jp

このエントリを思い出した。
今回はちゃんとデータシート見て温度計算方法確認して作りました。えらい!!!
この画像の撮影時刻23時ごろなのですが我が家で一番暑い部屋なので25度を超えてます。
やっぱり日本暑いよ、、、沖縄行きたい(日本)、、、、、以上です。。。。。


これは本編じゃないよ

poolbooyer.hatenablog.jp

これは進展0だよ、100円ドブに捨てたと思うしかないね