LoginSignup
5

More than 1 year has passed since last update.

obnizでオムロンの非接触温度センサを使ってみた

Last updated at Posted at 2019-02-17

前置き

オムロンが個人向けにオープンプラットフォームでの利用をサポートしたセンサを販売を開始しています。その中の非接触温度センサを手に入れたので早速遊んでみました。

センサを販売しているスイッチサイエンスに作例が載っていたのでこちらを参考にさせてもらいました。作例ではarduinoを使っていますが、今回は最近流行りのobnizで動かしてみます。

使ったもの

  • オムロン MEMS非接触温度センサ D6T-44L-06
  • オムロン D6T変換基板 TECHNOALTA-D6T-44L-GC
    • D6TをGroveコネクタで接続できるようにする基板です
  • Grove→2.54mmピッチ変換基板
  • obniz

接続方法

以下のような順番で接続しています。
温度センサ - Grove変換基板 - Grove→2.54mmピッチ変換基板 - obniz
IMG_1352.JPG

センサとobnizのピン配置は以下の通りです。

obniz側 センサ側
0 SCL I2C(5V) クロック
1 SDA I2C(5V) データ
2 VCC VCC 電源端子(5V ±10%)
3 GND GND 電源端子

I2Cでデータ取得

これで物理的には接続ができたので、次はデータの取得です。
オムロンが用意しているユーザーズマニュアルが参考になります。

このセンサでは温度データは以下のように4x4のマトリックスで16個が取得できます。

スクリーンショット 2019-01-31 17.59.07.png
(オムロンのマニュアルから引用)

obnizの実装

温度データを1秒ごとに取得し4x4に並べてobnizのディスプレイに表示するようにしました。コードは以下の通りです。

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
  <script src="https://unpkg.com/obniz@2.0.0/obniz.js" crossorigin="anonymous"></script>
</head>
<body>

<script>
var obniz = new Obniz("OBNIZ-ID");
obniz.onconnect = async function () {

  var i2c = obniz.getFreeI2C();
  obniz.io2.output(true);
  obniz.io3.output(false);
  i2c.start({mode:"master", sda:1, scl:0, clock:100000});

  obniz.repeat(async function(){

    await obniz.wait(100);    
    i2c.write(0x0A, [0x4C]);
    await obniz.wait(160);
    var data = await i2c.readWait(0x0A, 35);
    var t = [];

    for(var i=2; i<34; i++){
      t[i] = ((data[i]+(data[i+1]<<8))*0.1).toFixed(1);
      console.log(t[i]);
      i++
    }
    obniz.display.clear();
    obniz.display.font(null,14);
    obniz.display.print(t[2] +" "+t[4] +" "+t[6] +" "+t[8]);
    obniz.display.print(t[10]+" "+t[12]+" "+t[14]+" "+t[16]);
    obniz.display.print(t[18]+" "+t[20]+" "+t[22]+" "+t[24]);
    obniz.display.print(t[26]+" "+t[28]+" "+t[30]+" "+t[32]);

  }, 1000)
}

</script>
</body>
</html>

テスト

では実際に温度が取れているか試してみましょう。
左に温かい缶コーヒー、右に冷たい缶コーヒーを置いて計測してみました。
obnizのディスプレイに表示された温度が左端中央が43.2度、右端中央が9.2度を示していて、左右の温度差を計測できている事がわかります。

IMG_1361.JPG

Youtubeにもテストした際の動画をアップロードしています。

今後の活用

データを取得するのはとても簡単にできました。次は

  • 温度が数字だと直感的に分かりづらいのでビジュアル化
  • 通常の温度センサと異なる「非接触」「4x4でデータ取得」という特徴を活用
  • 温度をトリガーに何かのアクションを起こす

という観点で何か作ってみようと思います。(続く)

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
5