[電子工作]999円で温度計を作ってみた

# 概要
手元に温度センサーとLEDがあったので…
温度計を作ってみた。

# 部品
**温度センサ:**[BME280](https://ja.aliexpress.com/item/32853751253.html?spm=a2g0o.detail.1000023.1.554e4800G2IFYg)
227円
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/527f6f04-d253-6243-dbbd-61ccd4124771.png">

**表示機:**[TM1637が組み込まれた7セグLED](https://ja.aliexpress.com/item/4000174141889.html?spm=a2g0s.9042311.0.0.27424c4dboG22l)
73円
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/4ce296b8-61c4-8857-770e-6173b76eb6bc.png">

**コンピュータ:**[Arduino UNO互換機](https://www.amazon.co.jp/FC-%E5%B7%A5%E5%A0%B4-R3%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89-%E3%83%90%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3-ATmega328P-Arduino%E3%81%A8%E4%BA%92%E6%8F%9B%E6%80%A7/dp/B07H4KTVK5/ref=sxbs_sxwds-stvp?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2S335VL3VWB52&cv_ct_cx=arduino+uno&keywords=arduino+uno&pd_rd_i=B07H4KTVK5&pd_rd_r=d31aaf3a-0258-4866-b883-ee3cb37525ae&pd_rd_w=II02q&pd_rd_wg=kzB7i&pf_rd_p=e29507e3-7937-4495-82f4-55b5d5ca8047&pf_rd_r=SN5PWYGF5TQS3EX5XFVB&psc=1&qid=1584128141&s=diy&sprefix=Ard%2Cdiy%2C251)
699円
<img width="400" alt="img.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/47f88a1f-c4ae-cc1d-84cc-12b8cc736b9b.png">


#配線
<img width="436" alt="スクリーンショット 2020-03-22 7.18.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89227/7e4874bb-77d2-0b30-2b6f-01d08bfbcc49.png">

今回利用する温度センサはI2Cという通信を利用します。
近距離で利用するシリアル通信規格で、Arduino工作だとよく利用されるものです…
(多分通常の開発でも利用されるかと思いますが…)

#ソースコード

```c++

#include <Arduino.h>
#include <BME280I2C.h>
#include <Wire.h>
#include <TM1637Display.h>
#define SERIAL_BAUD 115200

BME280I2C::Settings settings(
   BME280::OSR_X1,
   BME280::OSR_X1,
   BME280::OSR_X1,
   BME280::Mode_Forced,
   BME280::StandbyTime_1000ms,
   BME280::Filter_Off,
   BME280::SpiEnable_False,
   0x76
);
BME280I2C bme(settings);

#define CLK 2
#define DIO 3
TM1637Display display(CLK, DIO);

void setup() {
  Serial.begin(SERIAL_BAUD);
  while(!Serial) {}

  Wire.begin();
  while(!bme.begin()){
    Serial.println("not find BME280");
    delay(1000);
  }
  settings.tempOSR = BME280::OSR_X4;
  bme.setSettings(settings);

  uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
  display.setBrightness(0x0f);
  display.setSegments(data);
  delay(1000);
}

void loop() {
   float temp(NAN), hum(NAN), pres(NAN);
   BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
   BME280::PresUnit presUnit(BME280::PresUnit_Pa);

   bme.read(pres, temp, hum, tempUnit, presUnit);
   display.showNumberDec((unsigned int)(temp*100), false); //温度
//   display.showNumberDec((unsigned int)(hum*100), false); // 気圧
   Serial.print("Temp: ");
   Serial.print(temp);
   Serial.print("°"+ String(tempUnit == BME280::TempUnit_Celsius ? 'C' :'F'));
   Serial.print("\t\tHumidity: ");
   Serial.print(hum);
   Serial.print("% RH");
   Serial.print("\t\tPressure: ");
   Serial.print(pres);
   Serial.println(" Pa");
   delay(100);
}
```
[github](https://github.com/hashito/arduino_startup/tree/master/temp2led7)


# 動作確認
gif動画で上げても分かりにくかったので、Youtubeにて確認いただけると幸いです。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/Yeq_z52tvbg/0.jpg)](http://www.youtube.com/watch?v=Yeq_z52tvbg)


# 現在(2020/04/25) AMAZONで購入できるもの
**温度センサ:**[BME280](https://www.amazon.co.jp/HiLetgo%C2%AE-Arduino-%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC-%E3%83%96%E3%83%AC%E3%82%A4%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88-Arduino%E3%81%AB%E5%AF%BE%E5%BF%9C/dp/B01M98R905/ref=pd_vtp_21_1/358-1384795-6359657?_encoding=UTF8&pd_rd_i=B01M98R905&pd_rd_r=95109af8-7f0f-49c7-a8fe-835845ff0412&pd_rd_w=CCPP9&pd_rd_wg=4pTJ1&pf_rd_p=ce0ee46d-e0fc-4d2e-8abd-e68a0729425a&pf_rd_r=RDGRX9H8T2PMW6M554M0&psc=1&refRID=RDGRX9H8T2PMW6M554M0)
¥750

**表示機:**[TM1637が組み込まれた7セグLED](https://www.amazon.co.jp/HiLetgo%C2%AE-3%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%96%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-%E5%85%B1%E9%80%9A%E3%82%A2%E3%83%8E%E3%83%BC%E3%83%89%E3%81%A8%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4-TM1637/dp/B010GX9CA4/ref=pd_aw_sbs_328_1/358-1384795-6359657?_encoding=UTF8&pd_rd_i=B010GX9CA4&pd_rd_r=27379b73-b694-4578-b118-846c3fced506&pd_rd_w=Jsa2T&pd_rd_wg=Y6sz3&pf_rd_p=bff3a3a6-0f6e-4187-bd60-25e75d4c1c8f&pf_rd_r=M2K4FZ9226TMGSPRE7E9&psc=1&refRID=M2K4FZ9226TMGSPRE7E9)
¥600

**コンピュータ:**[Arduino UNO互換機](https://www.amazon.co.jp/FC-%E5%B7%A5%E5%A0%B4-R3%E9%96%8B%E7%99%BA%E3%83%9C%E3%83%BC%E3%83%89-%E3%83%90%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3-ATmega328P-Arduino%E3%81%A8%E4%BA%92%E6%8F%9B%E6%80%A7/dp/B07H4KTVK5/ref=sxbs_sxwds-stvp?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2S335VL3VWB52&cv_ct_cx=arduino+uno&keywords=arduino+uno&pd_rd_i=B07H4KTVK5&pd_rd_r=d31aaf3a-0258-4866-b883-ee3cb37525ae&pd_rd_w=II02q&pd_rd_wg=kzB7i&pf_rd_p=e29507e3-7937-4495-82f4-55b5d5ca8047&pf_rd_r=SN5PWYGF5TQS3EX5XFVB&psc=1&qid=1584128141&s=diy&sprefix=Ard%2Cdiy%2C251)
¥699

## あると便利なもの
[ジャンパケーブル]
(https://www.amazon.co.jp/uxcell-%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%83%AF%E3%82%A4%E3%83%A4-XH2-54-40%E3%83%94%E3%83%B3%E3%83%AA%E3%83%9C%E3%83%B3%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%BC-%E3%82%AA%E3%82%B9/dp/B07H2ZPLLN/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%91%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB&qid=1587771174&s=diy&sr=1-2)¥762