cloudpack大阪オフィスのインターフォンが鳴らなくなりました。
なんともみすぼらしいので、なんとかしたい(; ´Д`)
こんなときにもAWSで解決するのがcloudpack!
うってつけのサービス、AWS IoTを使います。
システム構成はこんな感じです。
呼び鈴側のデバイスは、AWS IoT ボタンを使いました。
受け口側のデバイスは、固定電話を使います。LambdaからTwilioでコールします。
実現
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!!
AWS IoTもLambdaもTwilioも使い易い!
インターフォンの故障対応もcloudpackまで(嘘)
※ 本記事はフィクションです。AWS IoTボタンは日本国内では技適通っていないので使えません。 実現の際は技適の通ったデバイスをご使用ください。