ENGINEER BLOG

ENGINEER BLOG

人感センサーを使ってテレワークでのちょっとしたもやもやを解消!

こんにちは。
イノベーション本部の平田です。

ここ最近はテレワークをしており、オフィスで働くことが少なくなっています。
特に不便なこともなく過ごしているのですが、
先日、用事があり出社したところ自分宛ての郵便が結構溜まっていました。。
今までは毎日出社していたので気に留めていなかったのですが
テレワークだと郵便が届いていても気付けないのですよね・・・うっかり・・・
毎回郵便届いてましたよーと連絡してもらうのも申し訳ないですし、
楽になんとかしたいなと思ったのでやってみました!

やりたいこと

弊社のオフィスでは部署ごとに郵便BOXがあり、そこにまとめて郵便が置かれます。
テレワークでオフィスにいなくても郵便物が届いたことが分かるように
郵便BOXに郵便物が届いたらGoogle chatで通知する、という仕組みにしてみます。
郵便物が届いたことを検知する部分は、今回はMESH™を使ってみたいと思います。

MESH™とは

MESH™は無線で繋ぐことができるIoTブロックのことです。
専用のアプリで直観的にプログラミングできたり、
IFTTTに対応しているので他のアプリケーションと連携することもできます。

MESH™はいくつか種類がありますが、今回は人感ブロックを使うことにします。
人感ブロックには人感センサーがついており、人の動きを検知することができます。

詳細はホームページへ

やってみよう

では、早速やってみましょう!

  1. MESH™の準備
  2. IFTTT連携の準備
  3. MESH™ブロックとGoogleスプレッドシートを連携
  4. Google Apps Script経由でGoogle chatへ通知

1. MESH™の準備

MESH™を動かすには専用のアプリが必要なので、
対応OS・端末でMESH™アプリをダウンロードします。

ダウンロードができたらMESH™の電源を入れ、MESH™アプリとMESH™ブロックをペアリングさせます。
ペアリングが完了すると、アプリ上にペアリングさせたブロックが表示されますので
ドラッグ&ドロップでキャンバス上に置いておきましょう。
図のような形になればOKです!

meshブロックペアリング済み

MESH™のホームページに動画で詳しく手順が載っているので
簡単にセットアップできました!

2. IFTTT連携の準備

IFTTTとは「特定のアクションが起こった時に特定のアクションを行う」ことができる仕組みです。
例えば「Instagramで写真を投稿したら、Twitterにも自動で写真を投稿する」など
webサービス同士を連携することができます。

IFTTT連携の準備もとても簡単です!
まずは、IFTTTのホームページでアカウントを作成し、ログインしておきます。

IFTTTアカウント作成

そのあとは、MESH™のホームページに載っている手順に沿って進めればOKです。

3.MESH™ブロックとGoogleスプレッドシートを連携

では、MESH™ブロックとGoogleスプレッドシートを連携させます。
MESH™アプリの「連携」から「追加」を選択し、
「連携ブロックの追加」の中から「Google Sheets」を選択します。

連携ブロック追加

すると、MESH™アプリの「連携」部分に「Google Sheets」のブロックが追加されているので
ドラッグ&ドロップでキャンバスに置きます。

googlesheetブロック追加

キャンバスに置いた「Google Sheets」のブロックを選択し、
「IFTTTアプレット設定」を選択します。

IFTTTアプレット設定2

IFTTTのサイトへ移動したら「Continue」および「Save」を選択した後、
データを記録するスプレッドシートを指定します。
以下の画面でスプレッドシート名とGoogleドライブのフォルダのパスをそれぞれ記入し
「Save」を選択します。

IFTTT連携

MESH™アプリキャンバス上にある人感ブロックの右側、グレーの部分を選択すると
線が表示されるので「Google Sheet」ブロックの左側につけてブロック同士を繋ぎます。

ブロック連携

最後にブロックの設定を行います。
今回は動きを感知したらGoogleスプレッドシートにデータを送りたいので
キャンバス上の人感ブロックを選択し「感知したら」を選んで「OK」を押します。

人感ブロックの設定

「Google Sheet」ブロック側は「スプレッドシートに行を追加」の「データを追加」を選択し「日時」を追加します。

googlesheetブロックの設定

これで、人感ブロックで人の動きを感知したら、
Googleスプレッドシートに感知した日時が自動で記録されるようになります。

4. Google Apps Script経由でGoogle chatへ通知

ここまできたらあと少しです!
通知を送りたいチャットルームを決めて、該当チャットルームのwebhook URLを取得しておきましょう。

該当チャットルームの「Webhookを管理」を選択し、
webhookの名前をつけて保存します。
その後表示されるものがwebhookのURLです。
あとで使うのでコピーしておきます。

webhook取得

では、Googleスプレッドシートが更新されたら指定のチャットルームへ通知を送るように
Google Apps Scriptでコードを書いていきます。

先程IFTTTのサイトで設定したGoogleスプレッドシートを開き、
「ツール」から「スクリプトエディタ」を選択します。

スクリプトエディタ起動

スクリプトエディタにコードを書きます。

function sendmessage(){

var Text = "郵便が届きました?"

//先程コピーしたGoogle ChatのチャットルームWebhook URLを貼ります
var post_url = "https://chat.googleapis.com/HOGEHOGEHOGE"

var message = {
"text": Text,
}

var options = {
"method":"POST",
"headers":{"Content-Type":"application/json; charset=UTF-8"},
"payload": JSON.stringify(message),
"muteHttpExceptions":true
}

//指定したチャットルームへ投稿する
var result = UrlFetchApp.fetch(post_url, options);
}

今回はMESH™と連携させたスプレッドシートが更新されたら通知を送るようにしたいので
起動トリガーを以下のように設定します。

トリガー設定

動かしてみる

完成したので実際に動かしてみます!
MESH™を置いた郵便BOXに郵便が届くと、

郵便

指定したチャットルームに通知が届きました!

通知

これでテレワークしていてもオフィスに郵便が届いたことを簡単に知ることができるようになりました!

まとめ

初めてMESH™を使ってみましたが、アプリ上での操作は感覚的で分かりやすく
IFTTTで様々なwebサービスと連携することができるので
組み合わせ次第でいろいろなことができそうです!
例えば、テレワーク中によくある「今話しかけて大丈夫かな…?」というもやもやを解消する仕組みとして、
ボタンブロックを押すだけでテレワーク中の自身の状況(忙しい・話しかけてOKなど)を
チームメンバーに簡単に連絡できる、というのも便利そうだな~と思っています。
ご興味ある方はぜひ試してみてください!