エレクトロニクス

AWS IoTボタンとLambdaでスマートロックSESAME4を1ボタン解錠する

はじめに

必要なもの

環境

記事作成時での動作環境は以下の通りです。

  • Lambda Python 3.9.6

作業の流れ

  1. AWSの登録
  2. SESAME4 API Keyの取得
  3. Lambdaの準備
  4. Lambdaデプロイパッケージのアップロード
  5. AWS IoT 1-Clickの設定
  6. 動作テスト

1.AWSの登録

最初にAWSのアカウントを作成します。登録手順は検索すると多くの記事が見つかると思うので、ここでは詳細は割愛します。

AWS公式でアカウント作成の手順が用意されているので参考にしてください。

https://aws.amazon.com/jp/register-flow/

2.SESAME4 API Keyの取得

下記のcandy house(SESAMEの開発元)のログインページにアクセスします。

https://partners.candyhouse.co/login

フォームにメールアドレスを4桁の数字(ワンタイムトークン)が書かれたメールが届くので入力します。

ログインに成功すると画面上部に api key が表示されるのでメモします。

Device UUIDとSecret Keyを取得

次にSESAME4のスマホアプリからQRコードを表示し、PCに転送して上記ページにアップロードします。

SESAMEのスマホアプリを起動し、登録してあるSESAMEのタイトル名あたりをタップします。

画面右上の をタップ。

このセサミの鍵をシェアの右にあるQRマークの四角形アイコンをタップ

オーナー鍵を選択

QRコードが表示されるので、右上にある共有ボタンをタップしてPCに転送します。

SESAMEのPC画面に戻り、QRコードアイコンをクリックしてQRコードをアップロードします。

Device UUIDDevice Secret Keyが表示されるのでメモします。

3. Lambdaの準備

AWSのコンソールにログインし、Lambda関数の作成をクリックします。

一から作成を選択、基本的な情報内は下記のように設定します。

  • 関数名 : 任意の名前
  • ランタイム : Python 3.9
  • アーキテクチャ : x86_64
  • 実行ロール : 基本的なLambdaアクセス権限で新しいロールを作成

上記を設定したら 関数を作成ボタンをクリックして関数を作成します。

以上でLambdaの準備は終わりです。

4.Lambdaデプロイパッケージのアップロード

Lambdaの関数を自分で作成しても良いですが、ここでは予め筆者が用意した関数をアップロードして使用します。

下記からlambda_function.zipというファイルをダウンロードします。

https://drive.google.com/file/d/12Lj-gMi41LDRt76svvxKclMqlVqDlUKg/view?usp=sharing

さらに lambda_function.zipをAWSにアップロードします。

アップロード元ボタンをクリック。.zipファイルを選択して、lambda_function.zipをアップロードします。

関数 xxxx が正常に更新されました。と表示されることを確認してください。

環境変数の設定

アップロードした関数を使用するためには環境変数を設定する必要があります。下記のようにLambda関数に4つの環境変数を設定します。

設定 > 環境変数をクリックし、 編集ボタンを押して下記の4つの環境変数を設定します。

  • APIKEY : 手順2で取得した api keyを設定
  • COMMAND : toggle
  • DEVICE_ID : 手順2で取得したDevice UUIDを設定
  • SECRET_KEY : 手順2で取得した Device Secret Keyを設定

Lambda関数のテスト

ここまでで、Lambda関数を実行することができます。

テスト を選択しテストボタンをクリックします。

テストが成功すると左画面のような状態になります。(失敗すると実行結果:失敗と赤く表示されます)

また、この際にSESAMIが解錠もしくは施錠されることを確認してください。

5.AWS IoT 1-Clickの設定

AWS IoT 1-Clickでは登録するボタンデバイスのデバイスIDが必要になります。ここではAWS IoT エンタープライズボタンを例にして解説します。

Device の登録

AWS IoT 1-Clickというアプリをインストールして上記で登録したAWSアカウントでログインします。

https://apps.apple.com/jp/app/aws-iot-1-click/id1315204832

Wi-Fiを設定をタップします。

スマホのカメラからボタンを撮影してデバイスIDのスキャンを行います。

登録が成功すると、デバイスタブに登録されたボタンが表示されます。

モザイク部分がデバイスIDになります。

PCブラウザに戻り AWS IoT 1-Clickから、管理 > デバイス をたどると先程登録したデバイスIDが確認できます。

次にプロジェクトを作成します。管理 > プロジェクトに移動し、 作成ボタンをクリックしてください。

任意のプロジェクト名を設定して次へをクリックします。

デバイステンプレートでは各項目を下記のように設定します。

  • デバイステンプレート名 : 任意の文字列
  • アクション : Lambda関数の選択
  • AWS リージョン : アジアパシフィック(東京)
  • Lambda関数 : 手順3で作成したLambda関数を選択

プレイスメントの属性は空欄のままプロジェクトを作成してください。

6.動作テスト

ここまでの設定が完了すると、AWS IoTボタンを押した際にLambda関数が起動し、SESAME APIへリクエストが送信され、SESAMEが解錠もしくは施錠するという動作になります。

もしうまく動作しない場合は、LambdaやCloudWatchのログを確認してエラーの原因を探ってみてください。

おわりに

SESAMEはApple Watchからでも操作できるので便利なのですが、両手がふさがっているときなどはボタンで操作できると更に便利だなと思って今回設定してみました。

ちなみに、それほど高額になることは無さそうですがAWS IoT 1-Clickはデバイスごとの課金+Lambda関数の課金でコストがかかります。

https://aws.amazon.com/jp/iot-1-click/pricing/

  • この記事を書いた人

たけぞう

熊谷に住みながら都内のIT企業でエンジニアをしています。ガジェットやアウトドア用品についてレビューをしていきます。 趣味はスポーツジムでトレーニングやジョギングをすることです。

-エレクトロニクス