3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

M5Stackに温度センサーDS18B20を繋げて気温(℃ および F)を取得する

Posted at

目的

先の記事(JAWS DAYS 2017 IoTハンズオン【後半】参加報告)で利用した気温センサーDS18B20をM5Stackに繋げて部屋の気温をパネルに表示させてみたので、その手順を示します。

準備

下記の道具を準備します。

手順

1. Hello World を確認します。

Windows ではじめるM5Stack などを参考に Hello World のサンプルを動作確認します。ちなみに Hello World としてサンプルのテトリスを動作させてみました。

D2KZqvEVYAA6I2Y.jpg (115.1 kB)

2. ライブラリ OneWire, DallasTemperature のインストール

Arduino IDE を起動し、ツール > ライブラリの管理を選択し、ライブラリマネージャの検索ウインドウからライブラリ OneWire, DallasTemperature の2つをインストールします。

a10000.PNG (24.8 kB) a10001.PNG (14.6 kB)

3. コード作成および書き込み

Arduino IDE を起動し、下記のコードをコピペし、マイコンボードに書き込みます。コード自体はこちらの サイト にありました。

temperature.ino
#include <M5Stack.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2 // DS18B20 on arduino pin2 corresponds to D4 on physical board

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

void setup() {
  M5.begin();
  M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);
  M5.Lcd.setTextSize(2);
}

void loop() {
  float celsius;
  float fahrenheit;

  DS18B20.begin();
  int count = DS18B20.getDS18Count();

  //M5.Lcd.clear();
  M5.Lcd.setCursor(0, 0);
  M5.Lcd.print("Devices found: ");
  M5.Lcd.println(count);

  if (count > 0) {

    DS18B20.requestTemperatures();

    for (int i = 0; i < count; i++) {
      celsius = DS18B20.getTempCByIndex(i);
      fahrenheit = celsius * 1.8 + 32.0;

      celsius = round(celsius);
      fahrenheit = round(fahrenheit);

      M5.Lcd.print("Device ");
      M5.Lcd.print(i);
      M5.Lcd.print(": ");
      M5.Lcd.print(celsius, 0);
      M5.Lcd.print( "C / ");
      M5.Lcd.print(fahrenheit, 0);
      M5.Lcd.println("F");
    }
  }
  delay(2000);
}

上記コンパイル時のエラーなければ書き込み成功です。

4. 温度センサーとM5Stackの接続

先の記事(JAWS DAYS 2017 IoTハンズオン【後半】参加報告)の次の回路図を参考に次のように接続します。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f38303339322f32303338396332652d363833612d626634612d313230302d6635356565393630346231302e706e67.png (170.2 kB)

写真のようにM5Stack を裏返して, M5Stack 右下の G を青色ジャンパワイヤ, 右の G2 を黄色ジャンパワイヤ, 右 3V3 を赤色ジャンパワイヤに接続します。

YXG6YSDB.jpg (366.7 kB)

M5Stack を裏返した図は下記:

m5_rear_no_s2.png (416.1 kB)

5. 実行

接続すると、温度センサーのデータが M5Stack に送信され、前面のパネルに温度(℃およびF)が表示されます。パネルの表示から部屋の温度が 21℃/70F であることがわかります。

D2LB9YCUkAEVH-j.jpg (130.5 kB)

今後の課題

  • センサーの時系列データをグラフ化したいので こちら を参考に Ambient というサイトにデータのアップロードを検討中(下記イメージ引用)

scsho1-768x490.jpg (39.8 kB)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?