cloudpack大阪オフィスのインターフォンが鳴らなくなりました。
なんともみすぼらしいので、なんとかしたい(; ´Д`)

20160119214139

こんなときにもAWSで解決するのがcloudpack!
うってつけのサービス、AWS IoTを使います。

システム構成はこんな感じです。
呼び鈴側のデバイスは、AWS IoT ボタンを使いました。
受け口側のデバイスは、固定電話を使います。LambdaからTwilioでコールします。

20160119205014

実現

AWS IoT
今回はAWS IoT ボタンを使いましたが、Rule以外のリソースはデフォルトのままで進めます。
ちなみに、AWS IoTには4種のリソースがあります。
それぞれの役割はかなりざっくりと言うと、以下のような感じです。(詳しくは別の機会に)
・Certificate … 証明書。PolicyとThingに紐付けます。
・Policy … アクセス許可の設定を行います。
・Rule … デバイスから受けたデータをどう処理するかを定義します。
・Thing … デバイスにあたります。

今回はピンポンダッシュ対策として、ボタンの長押し(LONG Click : 1.5sec以上)を拾うようにします。
Ruleはこんな感じになりました。

・Name
aws_iot_button_rule_long
・State
Enabled
・Description
aws_iot_button_rule_long
・Query string
SELECT * FROM 'iotbutton/+' WHERE clickType = "LONG"

actionには後述のLambdaファンクションを当てがいます。

Lambda

twilioを使ったお電話Lambda、以前のBlogではnode.jsを使ったので今回はPython版を例示します。

$ mkdir caller
$ cd caller/
$ pip install twilio -t .
$ vi lambda_function.py
$ zip -r upload.zip *

TwilioのサイトでPython版コードも例示してくれるので、lambda_function.pyは割愛します。

あとは、Lambdaにupload.zipをアップロードするだけ。

結果

あっという間に応急処置Done!!

20160119214108

AWS IoTもLambdaもTwilioも使い易い!
インターフォンの故障対応もcloudpackまで(嘘)

※ 本記事はフィクションです。AWS IoTボタンは日本国内では技適通っていないので使えません。  実現の際は技適の通ったデバイスをご使用ください。

元記事はこちら

AWS IoTでインターフォン【cloudpack大阪BLOG】