AWS IoT エンタープライズボタンを試してみる

AWS IoT エンタープライズボタンは、AmazonのDashボタンの汎用のやつ。

f:id:nullpobug:20180904024122j:plain
IoTボタン

www.amazon.co.jp

ボタンを押した際にEメール送信、SMS送信、Lambda関数の実行などを設定できる。

ボタンの動作にはWifiネットワークが必須となっている。初期セットアップはスマートフォンのアプリから実行すると簡単でした。

バイスの管理画面

管理画面は結構シンプル。バッテリー残量もわかるので便利。

f:id:nullpobug:20180904024124p:plain
IoT 1-Clickの管理画面

開発の流れ

  1. バイスを登録
  2. Lambda関数を用意しておく
  3. AWS IoT 1-Clickプロジェクトを作成
    • 実行したいテンプレートを選択(Lambda関数の実行など)
    • プレイスメントを選択(プレイスメントに対し、デバイスを登録する)

サンプルコードを用意して試す

Lambda関数でSlackに投稿してみるサンプルコードを作成し、試してました。Chaliceを使おうと思ってたんですが、AWS IoT 1-Clickのイベントに対応していないようだったので、素のPythonハンドラで作成。

app.py:

import requests
import json
import os


def post_to_slack(event, context):
    env_dict = os.environ
    url = env_dict['ENDPOINT']
    payload = {
        'text': 'ボタンが押されました。',
    }
    requests.post(url, data=json.dumps(payload))
    return {'status': 'ok'}

ソースコード一式はbitbucketに置いてます。

https://bitbucket.org/tokibito/sample_nullpobug/src/dd6f851e43e4872875e8c3dc57dd217b52017811/python/iot_button/?at=default

zipパッケージを作ってLambdaにアップロードし、環境変数でSlack APIのENDPOINTを設定しておきます。

また、ボタンを押すとこの関数が実行されるように設定しておきます。

ボタンを押すと、Slackにメッセージが投稿されることを確認しました。

f:id:nullpobug:20180904024120p:plain
Slackにメッセージが投稿された

うまく組み合わせれば使い所ありそうかな。