obnizでFirebaseと連携するメモ

obnizでFirebaseと連携するメモです。

今回の仕組み

今回はobnizスイッチの、押す・左・右の操作をFirebaseに送ってみます。

image

Firebaseの設定

Firebaseの設定をメモしておきます。

image

サイトにログインして、

image

WEBアプリ用の設定を控えておきます。これがそのまま使えます。

ソースコード

obnizのスイッチに関するドキュメント と、Firebaseのデータの読み書きを参考にしながら実装しました。

<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>
  <script src="https://unpkg.com/obniz@1.10.0/obniz.js" crossorigin="anonymous"></script>
  
  <script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"></script>
  <script>
    // Initialize Firebase
    var config = {
      apiKey: "apiKey",
      authDomain: "authDomain",
      databaseURL: "databaseURL",
      projectId: "projectId",
      storageBucket: "storageBucket",
      messagingSenderId: "messagingSenderId"
    };
    firebase.initializeApp(config);
  </script>
  
</head>
<body>

  <h1>Firebase + obniz</h1>

<script>

var obniz = new Obniz("OBNIZ-DEVICE-ID");
obniz.onconnect = async function () {
  obniz.display.clear();
  obniz.display.print("switch start");
  // switch event
  obniz.switch.onchange = function(state) {
    if (state === "push") {
      obniz.display.clear();
      obniz.display.print("push");
    } else if (state === "right") {
      obniz.display.clear();
      obniz.display.print("right");
    } else if (state === "left") {
      obniz.display.clear();
      obniz.display.print("left");
    } else {
      obniz.display.clear();
      obniz.display.print("--");
    }
    // スイッチの状況 status を通知
    firebase.database().ref('obniz').set({
      state: state,
      timestamp:new Date().getTime()
    });
  }
}

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

変更する部分

ソースコードで変更する部分は以下です。

  <script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"></script>
  <script>
    // Initialize Firebase
    var config = {
      apiKey: "apiKey",
      authDomain: "authDomain",
      databaseURL: "databaseURL",
      projectId: "projectId",
      storageBucket: "storageBucket",
      messagingSenderId: "messagingSenderId"
    };
    firebase.initializeApp(config);
  </script>

ここは先ほどのFirebase設定で控えていたものを反映します。

var obniz = new Obniz("OBNIZ-DEVICE-ID");

OBNIZ-DEVICE-ID については、自分の動かしたいobnizデバイスのIDを使いましょう。→lessons_obnizjs_connection – obniz

動かしてみる

image

ということで、動かしてみます。

image

まず、obnizクラウド側で起動します。

image

Firebaseコンソール側も /obniz のパスを見れるようにしておいます。

image

obnizを動かしてみましょう。

image

Firebaseにstateとtimestampが送られて変化してます!

Firebaseはモバイルコンテンツでもよく使われ最近はIoTとの相性もよくなってきているので、いろいろと連携が思い浮かびますね!

それでは、よき Firebase & obniz Life を!