ちょっと話題の記事

AWS IoT Enterprise Button + LINE Notifyで介護用ナースコール的なものを作る

AWS IoT Enterprise Buttonを活用して、在宅介護をサポートするナースコール的な仕組みを作ってみました。
2018.08.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

自宅にて介護が必要な人を介助する場合、本人が介助を頼む家族に呼び出しを行う仕組み(ナースコール)があると便利です。

今回、AWS IoT Enterprise Button(以下、IoT Button)を使って簡易的にナースコール的な仕組みを作ってみました。
ボタンをクリックすると、LINEに通知を飛ばすだけのシンプルなものです。

構成

構成はざっくり以下のような感じです。

介助が必要な人がヘルプして欲しいときにIoT Buttonをクリックすると、連携されたLambdaを実行して介助を行う家族にLINEで通知します。

LINEは、特定のトークルームに通知ができれば良いので、今回はLINE Notifyを利用しました。

AWS IoT Enterprise Buttonの購入とデバイス登録

何はともあれ、まずはIoT Buttonを購入します。
現物を手に入れたら、以下のエントリを参考にデバイス登録まで行います。

【国内販売開始】AWS IoT Enterprise Button試してみたらホンマに簡単にLambda関数を実行できた

ホンマに簡単にできますね。

LINE Notifyの設定

LINE(トークルーム)に通知を行うために、LINE Notifyでトークルームのアクセストークンを発行します。
LINE Notifyの使い方に関しては、こちらのエントリが参考になります。

LINE Notifyをnode.jsで利用する

今回は複数人に通知を送りたいので、(介助を行う人を招待した)トークルームを指定します。
また、トークン名はメッセージに表示されるので、「お知らせ」などメッセージとして違和感の無いものに設定します。

トークン発行後、対象のトークルームにLINE Notifyアカウントを招待するのを忘れずに。
(LINE Notifyアカウントを招待しないと、対象のトークルームにメッセージが送信できません)

Lambdaコード

IoT Buttonがクリックされた際に実行させるLambda(LINEへのメッセージ送信)を作成します。
雑に書いたLambdaのコード(Node.js 8.10)を載せておきます。

'use strict';

const axios = require('axios');
const querystring = require('querystring');

const token = process.env.LINE_NOTIFY_TOKEN;
const message = "介助をお願いしたいです。";

exports.handler = async (event) => {
  console.log(JSON.stringify(event));
  await axios(
    {
      method: 'post',
      url: 'https://notify-api.line.me/api/notify',
      headers: {
        Authorization: `Bearer ${token}`,
        'Content-Type': 'application/x-www-form-urlencoded',
      },
      data: querystring.stringify({
        message: message,
      }),
    }
  )
    .then((res) => { console.log(res.data); })
    .catch((err) => { console.error(err); });
};

LINE Notifyで取得したトークンは、Lambdaの環境変数(LINE_NOTIFY_TOKEN)で設定しておきます。 なお、AWS IoT 1-ClickでIoT Buttonとの関連付けを行うので、Lambda側ではトリガーを設定する必要はありません。

AWS IoT 1-Clickの設定

Lambdaが書けたので、IoT Buttonと関連付けを行います。
こちらを参考に、プロジェクトとプレイスメントを作成します。

以上で準備は完了です!
IoT Buttonをクリックすると、LINEに通知されるナースコール的なものができました。

動作イメージ

機能設計について

IoT Buttionはクリックタイプを取得できるため、当初は以下のような仕様を考えていました。

  • シングルクリック -> よく行う介助1の依頼
  • ダブルクリック -> よく行う介助2の依頼
  • 長押し -> 緊急の呼び出し

…が、やめました。
複数の機能があると使う人は覚えるのが大変ですし、押し間違いも出てくるでしょう。
今回のケースで大事なことは、ユーザー(介護が必要な人)の「介助が必要なので来てほしい」という意志が介助をする人に伝わることなので、機能を複数設けることはやめ、

  • ボタンをクリックすると「介助が必要だ」というメッセージをLINEで通知する

というシンプルな仕様にしました。
これで、実際にボタンを押す人は新しいことを覚えなくてもよく、「AWSとか何かよーわからんけど、このボタンを押せば家族が来てくれるな」という感じで継続して使ってもらいやすくなります。

おわりに

AWS IoT Enterprise Buttonを使って、自宅介護をサポートするナースコール的な仕組みを作ってみました。
IoT Buttonをうまく活用することで、生活上の課題を気軽に解消することができそうです。

他にも何かユースケースを見つけて、積極的に活用していきたいですね。
それでは。