#LTE-M buttton と AWS サービスを連携させる方法
#########
AWS lambdaを動かすには、いくつかのパターンがある
https://dev.soracom.io/jp/design_patterns/soracom_aws/
FUNCを使うのが一番楽ですが、lambda以外を使うこともあるので
FUNNELで検討。
※ powered by AWS の場合は、ほぼAWS側で設定が完了する。
★FUNNELを利用してlambda(S3、SNS)と連携する構成
LTE-M buttton → SORACOM(FUNNEL) → AWS (IoT Core) →AWS(ルールに登録したリソース)
ルール
a) S3に格納
b) SNS通知
c) lambda実行
★設定方法
①【SORACOM】SIM設定(登録、グループ)
SIMの初期登録 SIMに名前をつける (例) mycard
グループ作成 グループに名前をつける (例) AWS_IOT
※SIMに直接設定をすることは出来ない。グループに対して、設定を行います。
②【AWS】
a) S3バケットを作成する
b) SNSトピックを作成し、サブスクライブ先を登録
c) lambda関数を作成する。
③【AWS】 Iot ルール設定
・名前をつける:分かりやすい名前
・ルールクエリステートメントを設定する: SELECT * FROM 'button_topic/#'
※button_topic はLTE BUTTONの識別子(固定)
Iotキューには様々なデバイスからのメッセージが入るので
LTE BUTTONのメッセージが来たことを、上記SQLで判定する。
・アクション
a) S3バケットを指定する
b) SNSトピックを指定する (RAW指定) ※JSONだとうまく通知されませんでした。
c) lambda関数を指定する。
④【AWS】 IAMの設定
“AWSIoTDataAccess” ポリシーを付与した、新規IAMユーザを作成する
APIアクセスにチェックをいれて、アクセスKEY、アクセスIDを取得する。
⑤【SORACOM】SORACOM Air for Cellularの設定
・[バイナリパーサー設定] を ON
・フォーマット: @button
⑥【SORACOM】FUNNNELの設定
・[バイナリパーサー設定] を ON”
・転送先サービス: AWS IoT
・転送先 URL:
https://AWS IoT Core の設定でメモしたカスタムエンドポイント/button_topic/data
・認証情報
ID: 分かりやすい名前をつける
AWS Access Key ID、AWS Secret Access Key を登録する。
★動作確認
⑦【SORACOM】LTEbuttonのクリック
⑧【AWS】 CloudWatchログの確認
a) S3バケットの中身を確認
b) SNSトピックのサブスクライブを確認
c) lambdaログ(CloudWatch)を確認する。
#番外編 簡易GPS機能
Harvest というサービスを使います。
①SIM管理コンソール
当該デバイスのグループをクリックして、グループ設定 harvest Data をONにsave
設定はこれだけです。
②ボタンをクリック
③当該デバイスにチェックをいれて、Action→HarvestData をクリック
一番右のGoogleMapぽいアイコンをクリックすると、自分(ボタン)の位置が地図上に表示されます。
メッセージの中には、常に位置情報が含まれていますが、HarvestDataを利用すると
グラフィカルな状態で確認できます。
精度はイマイチですが、十分楽しめます。
製品マニュアル
https://dev.soracom.io/jp/air_cellular/what-is-air-for-cellular/