Amazon自動注文ボタンをESP32で作ろうとしています。
前回の記事でAWS IoT Coreと自作ボタンを接続できたので、本記事では自作ボタンをクリックしたらAWS IoT CoreからLambda関数を実行できるようにします。
目次
はじめに
本記事は「ESP32でAmazon自動注文ボタン」の作成手順をまとめた連載記事の1つです。
前の手順
【ESP32でAmazon自動注文ボタン】AWS IoT Coreと自作ボタンを接続する
Amazon自動注文ボタンをESP32で作ろうとしています。
本記事はAWS IoT Coreと自作ボタンを接続する手順をまとめました。
次の手順
【ESP32でAmazon自動注文ボタン】自動購入スクリプトを作成する(ローカル環境で)
Amazon自動注文ボタンをESP32で作ろうとしています。
本記事はローカル環境で自動購入スクリプトを作成する手順をまとめました。
手順全体や関連情報まとめ
Lambda関数を作成する
まずは、AWS IoT Coreから実行されるLambda関数を作成します。
Lambda関数を作成する手順を以下に記載します。
- AWSマネージメントコンソールにログインする。
- 「AWS Lambda」にアクセスする。
- 左側のメニューから「関数」を選択し、「関数の作成」をクリックする。
- 「関数の作成」の画面で、「一から作成」のラジオボタンをクリックする。
- 「基本的な情報」を以下のように入力したら、右下の「関数の作成」をクリックする。
- 関数名: 任意の関数名
- ランタイム: Python 3.7
- ※この後の手順で出てくるchromedriverが動作実績あるPythonバージョンに固定するため、あえて古いバージョンのものを選択しています。
- アーキテクチャ: x86_64
- [アクセス権限 > デフォルトの実行ロールの変更 > 実行ロール]: 「AWSポリシーテンプレートから新しいロールを作成」
- [アクセス権限 > デフォルトの実行ロールの変更 > ロール名]: 任意のロール名
- [アクセス権限 > デフォルトの実行ロールの変更 > ポリシーテンプレート - オプション]: 空欄
- Lambda関数のコードソースやテストが実行できる画面が開くので、以下記載のコードソースをコピペし、「Deploy」をクリックする。
【コードソース サンプル】
import json
def lambda_handler(event, context):
print(event)
- 「関数xxxを正常に作成しました。」と表示されればOK。
AWS IoT CoreでLambda関数を紐づける
AWS IoT Coreで特定のトピックを受信したら、Lambda関数を実行するようにします。
手順を以下に記載します。
- 「AWS IoT Core」にアクセスする。
- 左側のメニューから[ACT > ルール]をクリックし、「ルールの作成」をクリックする。
- 「ルールの作成」画面が開いたら、以下の情報を入力する。
- 名前: 任意のルール名(例: pushButtonActionRule)
- 説明: 任意の説明文
- [ルールクエリステートメント > SQLバージョン]: 2016-03-23(変更なし)
- [ルールクエリステートメント > ルールクエリステートメント]: 「
SELECT * FROM '<ESP32がPublishするトピック名>'
」(例: 「SELECT * FROM 'esp32/pub'
」)
- 「1つ以上のアクションを設定する」の「アクションを追加」ボタンをリックする。
- 「アクションを選択してください」画面が開くので、「メッセージデータを渡すLambda関数を呼び出す」を選択し、「アクションの設定」ボタンをクリックする。
- 「アクションの設定」画面が開くので、「Lambda関数を作成する」で作成したLambda関数を選択して、「アクションの設定」をクリックする。
- 「ルールの作成」画面に戻るので、下部にある「ルールの作成」ボタンをクリックする。
- 「ルールは正常に作成されました。」と表示されればOK。
自作ボタンをクリックしたらLambda関数が実行されるか? 検証する
すでに前記事「【ESP32でAmazon自動注文ボタン】AWS IoT Coreと自作ボタンを接続する」で自作ボタンクリック⇒AWS IoT Coreで検知までは確認できているので、
ここではそのままLambda関数が実行されるかを確認します。
動作検証の手順は以下です。
- PCから自作ボタンにUSB接続し、Teraterm等でシリアル通信接続する。
- 自作ボタンの電源ONし、Teratermに「AWS IoT Connected!」と表示されるまで待つ。
- 自作ボタンをクリックする。(Teratermに「Button ON!!!」と表示されるはず)
- 「AWS CloudWatch」にアクセスする。
- 左のメニューから[ログ > ロググループ]を選択し、「ロググループ」内にある「/aws/lambda/関数名」のログループをクリックする。
- ログストリーム内にクリックした時刻付近のものがあるはずなので、それをクリックする。
- 自作ボタンからPublishされたデータが表示されていればOK!
もしうまく動作しなかった場合、、、
以下についてご確認ください。
- Lambda関数のコードソースに誤りがないか?
- AWS IoT Coreのルールクエリステートメントに誤りがないか?
- ボタンクリックして、AWS IoT CoreではPublishが検出できているか?
さいごに
「ESP32でAmazon自動注文ボタン」に向けて、AWS IoT CoreからLambda関数が実行できるように設定しました。
引き続き、「ESP32でAmazon自動注文ボタン」の作成手順をまとめています。
前の手順
【ESP32でAmazon自動注文ボタン】AWS IoT Coreと自作ボタンを接続する
Amazon自動注文ボタンをESP32で作ろうとしています。
本記事はAWS IoT Coreと自作ボタンを接続する手順をまとめました。
次の手順
【ESP32でAmazon自動注文ボタン】自動購入スクリプトを作成する(ローカル環境で)
Amazon自動注文ボタンをESP32で作ろうとしています。
本記事はローカル環境で自動購入スクリプトを作成する手順をまとめました。
手順全体や関連情報まとめ
参考情報
以上!
コメント