4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS IoT Enterprise Button を使ってみた

Last updated at Posted at 2018-06-21

AWS IoT Enterprise Button とは

  • ざっくり言うとカスタマイズ可能な Amazon Dash Button です。
  • 任意のLambda関数を AWS IoT Enterprise Button をクリックすることで実行できます。

今回やること

  • AWS IoT Enterprise Button のセットアップ
    • デバイスの登録
    • プロジェクトの作成
  • AWS IoT Enterprise Button からLambda関数の実行

前提条件

  • AWSアカウントは開設済み。
  • AWS IoT Enterprise Button は購入済み。
  • Wi-Fi環境有り。
  • スマホに AWS IoT 1-Clickアプリ(Android版) をインストール済み。
  • 東京リージョン(ap-northeast-1)を使用。
  • 実行するLambda関数は作成済み。
    • 今回はEC2を停止する関数を作成しました。
EC2Stop.py
import boto3

instanceIds = ['i-xxxxxxxxxxxxxxxxx']

def lambda_handler(event, context):
    print('EC2を停止します。')
    ec2 = boto3.client('ec2')
    ec2.stop_instances(InstanceIds=instanceIds)
    print('EC2を停止しました。')

手順

AWS IoT Enterprise Button のセットアップ

AWS IoT 1-Click アプリを起動してAWSアカウントにログインします。
  

デバイス(AWS IoT Enterprise Button)の登録

 [デバイスの登録]→[デバイスIDで登録]→デバイスIDのスキャン
 ※デバイスIDは箱についているバーコードをスキャンします。
  

 デバイスをスキャンできたら、画面の指示にしたがって青い光が点滅するまでボタンを押し続けます。
 ※途中でWi-Fiの設定画面が出てきたら、設定してください。
  

 デバイスが認識されたら、最後に1回ボタンをクリックします。
 ※処理が成功したら緑色の光が点灯します。
 

実行するプロジェクトの作成

 AWS IoT 1-Click アプリの[プロジェクト]から追加します。
   

 デバイステンプレートを設定します。
  [アクション]で『既存のLambda関数の選択』にすると、選択可能なLambda関数が表示されます。
    

   

 デバイスプレイスメント(=プロジェクトを実行するデバイス)を作成します。
    

    

 これでプロジェクトの登録が完了です。
  

実行してみる(動画は貼れないのでログで結果を確認)

 23:00:02にシングルクリック。
  

 23:00:03にLambda関数が実行され、EC2が停止。
  

感想

  • 思っていた以上に簡単に自前のLambda関数をAWS IoT Enterprise Buttonから実行することができました!
    アイディア次第では結構面白いことができるのではないかなという気がしています。
  • もう少し価格(2500円で約2,000回のクリックが可能)が下がってくれるとボタンを増やして遊べそうなのですが・・・。

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?