LoginSignup
0
1

More than 3 years have passed since last update.

玄関2ロックのセサミをAWS IoTボタン1回押しで解錠できるようにしてみた

Posted at

背景など

本記事の位置づけ

以前にここで玄関2ロックのセサミを1ボタンで解錠するIFTTTボタンを作ってみた(AWS Lambda経由)という記事を書いたのですが、そのときに作ったLambda関数を応用して、こんなこともできるようにした、という感じの記事です。

先行事例

セサミの発売元であるCandyhosueさんが2018年に記事を出しており、筆者もこれを一度ハンズオンしてみました(AWS IoTボタンはその際に買ったもの)。しかしこの記事の手法だとセサミを1台しか解錠できないというものだったので、ボタン1発で2つのセサミを解錠したいなあ、と思ってこの記事の手法を作りました。

AWS IoTボタンってなに

こんなやつです。ボタン一つ押してやればAWS上にあるIoT 1-ClickとLambdaを刺激できるというボタンですね。

やったこと

1. AWS IoTボタンの登録とネットワーク接続

公式記事

  • 2. AWS lot 1 clickのアプリを設定する

の手順を踏むだけでOK。

2. APIキーと2台ぶんのセサミIDの取得

以下の記事の 1. の記述の要領で、APIキーとセサミIDを得ておく。

3. Lambda関数の準備

3-1. 関数の立ち上げと pysesame2 のアップロード

以下の記事の 2-1.2-2. 記述の要領で、AWS Lambdaから関数を立ち上げて外部モジュール pysesame2 を上げておく。

3-2. Pythonコードの記述

次のようなコードを記述。なおPythonのバージョンですが3.8でよいかと。

lambda_function.py
from uuid import UUID
from pysesame2 import Sesame
import os

device_id_1 = UUID(os.environ['DEVICE_ID_1'])
device_id_2 = UUID(os.environ['DEVICE_ID_2'])
APIKey = os.environ['APIKEY']
sesame_1 = Sesame(device_id_1, APIKey)
sesame_2 = Sesame(device_id_2, APIKey)

def lambda_handler(event, context):
    sesame_1.async_unlock()
    sesame_2.async_unlock()

コードが書けたらその下の「環境変数」に、手順 1. で得たAPIキーと2台のセサミIDを1つずつ書いて保存する。
image.png

3-3. テスト

以上までできたら画面右上の「テスト」から、関数のテストを実行する。流し込むJSONはhello worldでもなんでもOK。セサミ2台が解錠すれば成功。

4. IoT 1-Clickプロジェクトの作成と、ボタンとLambda関数の関連付け

公式記事

  • 4. AWSでプロジェクトを作成する
  • 5. AWS IoT ボタンをリンクさせる

の手順を踏んで、IoTボタンとLambda関数の関連付けを行う。ボタンを押してセサミ2台が解錠すれば成功!!!:grin:

0
1
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
0
1