BLEによるSlack通知

今回やること

BLEによって「家についた!」や「でかけた!」をSlackに通知します。

 

用意するもの

  • obniz Board
  • モバイルバッテリーなど
  • Slackのアカウント
  • BLEのadvertisementを出すスマートフォンアプリ

組み立て方

obniz Boardにバッテリーを繋げます。部品は何も取り付けなくて大丈夫です。

プログラム

まず、Slackにメッセージを送るためのWebhook URLを取得します。こちらのページから取得できます。

投稿するチャンネルを選んで、 Incoming Webhook インテグレーションの追加 をクリックしてください。

クリックするとWebhook URLが表示されるので、これをプログラムに書き加えます。

完成したプログラム 45行目〜の WEBHOOK_URL_HERE のところを、表示されたURLに書き換えてください。 さらに、 CHANNEL_NAME_HERE のところを、投稿したいチャンネル名に書き換えてください。このとき 「#」 を忘れないようにしましょう。

let url = 'WEBHOOK_URL_HERE';
let data = {
  "channel": 'CHANNEL_NAME_HERE',
  "username": 'obniz-bot',
  "text": msg
};

次に、スマートフォンにBLEのadvertisementを出すアプリを入れます。 LightBlue Explorer などのアプリが対応しています。

<LightBlue Explorer>

スマートフォンアプリからBLEのadvertisementを出しプログラムを実行すると、帰宅時と外出時にSlackに通知が届きます。

BLEのadvertisementは、完成したプログラム 5行目〜の以下の部分で監視して、家にいるかいないかを判定しています。 UUID_HERE の部分を、スマートフォンアプリから発したBLEのUUIDに変更してください。

obniz.ble.scan.onfinish = ((results) => {
  let find = "Leaving";
    for (key in results){
      let beacon = results[key].iBeacon();
      if (beacon){
        if (beacon.uuid === "UUID_HERE"){
          find = "In home now";
        }
      }
    }...

obniz BoardのBLEについて、詳しくは BLE – obniz Docs をご覧ください。

完成したプログラム