渋滞にひっかかってしまったことを知らせるボタンを作ってみた!

SORACOM Advent Calendar 2019の23日目の記事です。 

 

休日、趣味でIoTやAIを勉強しています。初学者でまだまだ至らないところもありますが、少しずつですが手を動かしながら色々作ってみたいなと思います。よろしくお願い致します。

 

概要

友達と待ち合わせしてるのに、不運にも渋滞にひっかかってしまった。運転中のため携帯操作(メールやLINE、電話など)が出来ない状況である。そんなとき、遅れそうなことを待ち合わせ相手に知らせ、もう少しだけ待っていて欲しいことを伝えるためのボタンを作ってみました。

f:id:yoyoda:20191211200917j:plain

作ろうと思ったきっかけ

香川で開催されたハンズオンイベント"JAWS-UGうどん県xSORACOM四国 勉強会2019夏"に参加し、そのときLTE-MButtonをはじめて使いました。すごく面白い!、めっちゃ便利!って思いました。

私も何か作ってみたい、日常で困った出来事をこのLTE-MButtonを使って解決できないかなって考え、今回、SOSボタンの記事を参考に、渋滞にひっかかってしまったことを知らせるボタンを作ってみました。

 

参考にした記事

dev.classmethod.jp

 

必要なもの

soracom.jp

aws.amazon.com

 

各種設定

Amazon Connectの準備

 a) 電話番号の取得ボタンを押す

f:id:yoyoda:20191212202100p:plain

  b) 好きな電話番号を選択し、保存して電話番号を取得する。

f:id:yoyoda:20191212154931p:plain
      c) 問い合わせフローの作成ボタンを押す。

f:id:yoyoda:20191212171532p:plain

   d) 問合せフローを作成する。

f:id:yoyoda:20191212203141p:plain

     ちなみに、"プロンプトの再生"に入力したテキストが、電話で流れることになります。

f:id:yoyoda:20191212204202p:plain

   e) 問い合わせフロー作成後、”保存して公開” ボタンを押す。

 

AWS lambdaの実装

 (a) 各項目を入力しlambda関数の作成ボタンを押し、基本的な情報を入力する。 

f:id:yoyoda:20191214110106p:plain

f:id:yoyoda:20191214132505p:plain

 (b) ロールの表示で、インラインポリシーの追加をクリックし、サービスにConnect、書き込みにStartOutboundVoiceContactを選択後、ポリシーの確認ボタンを押す。

f:id:yoyoda:20191214140435p:plain

 

 (b) AmazonConnect-SOSをクリックし、index.jsを書き換える。

f:id:yoyoda:20191214112949p:plain

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'use strict';
 
const AWS = require('aws-sdk');
AWS.config.update({
  region: 'ap-northeast-1'
});
const connect = new AWS.Connect();
 
const params = {
  ContactFlowId: process.env.CONNECT_CONTACT_FLOW_ID,
  DestinationPhoneNumber: process.env.DEST_PHONE_NUMBER,
  InstanceId: process.env.CONNECT_INSTANCE_ID,
  SourcePhoneNumber: process.env.SOURCE_PHONE_NUMBER
};
 
exports.handler = async (event) => {
  console.log(JSON.stringify(event));
  try {
    const res = await connect.startOutboundVoiceContact(params).promise();
    console.log(res);
  } catch(err) {
    console.error(err);
  }
};

 (c) 書換後の画面

f:id:yoyoda:20191214120609p:plain


(d) 環境変数を設定する。

f:id:yoyoda:20191214120921p:plain

CONNECT_CONTACT_FLOW IDはAmazonConnectの問い合わせフローに記載されています。

f:id:yoyoda:20191214130807p:plain

 CONNECT_INSTANCE_IDは以下から取得できます。

f:id:yoyoda:20191214131920p:plain

 

AWS loT 1-Click デバイスの設定

   a) AWSのサービスからIoT 1-Clickを選択する。

f:id:yoyoda:20191212215131p:plain

 

 b) デバイスを登録する。

f:id:yoyoda:20191212233214p:plain

 

 c) プロジェクトの作成ボタンを押す。

f:id:yoyoda:20191212215802p:plain

 

 d) プロジェクト名を入力する

f:id:yoyoda:20191212222254p:plain

   

 e) Lambda関数を呼び出すを選択し、入力後、プロジェクトの作成ボタンを押す。

f:id:yoyoda:20191212223603p:plain

 

 f) 適当なプレイスメント名を入力し、デバイステンプレートを選択後、プレイスメントを作成する。

f:id:yoyoda:20191212232713p:plain

 

動作確認

無事、動きました! 

 

作ってみた感想

  機械で一方通行的に謝られるのって正直なところどうなの?ボタンの押し方変えたりすることで別の登録先も入れといたほうがいいのでは?とか、色々と議論・改良の余地があって実用には至っておりませんがとりあえず動くものができました。

 色々な人の意見を聞き、役に立つものを作っていければなと思います。