Slide 1

Slide 1 text

LINEとAWSでおうち制御 LPF REV UP 2020 2020年11月14日

Slide 2

Slide 2 text

自己紹介 • 氏名:藤田 義弘 • 所属:株式会社メイテック(派遣事業) 製造業のお客様先で派遣として勤務 • 組み込みソフトウェアエンジニア • Twitter:@YSFT_KOBE

Slide 3

Slide 3 text

帰宅時に玄関が真っ暗なのをなんとかしたい! 帰宅直前に電灯を点けたい! おうち制御したこと LINEとAWSを使って玄関の電灯を制御

Slide 4

Slide 4 text

おうち制御したこと Line Bot AWS マイコン

Slide 5

Slide 5 text

Line Bot Messaging APIという仕組みで、LINE BOTが簡単 に作成できる。 Line公式ドキュメントより:https://developers.line.biz/ja/docs/messaging-api/overview/

Slide 6

Slide 6 text

• 作成はLine Developerコンソールを利用 • 画面に従ってチャネルを作成し、その時作成される Line公式アカウントと友達登録するだけ。 Line Bot

Slide 7

Slide 7 text

Line Bot Messaging APIのチャネル作成を選択 必要事項の記述 QRコードからLine公式アカウントを友達登録

Slide 8

Slide 8 text

Line Bot バックエンド側との連携は、エンドポイントをWebhook に設定

Slide 9

Slide 9 text

Line Bot バックエンド側からのメッセージ送信も、APIを使って 簡単に実装可能。 from linebot import LineBotApi from linebot.models import TextSendMessage from linebot.exceptions import LineBotApiError line_bot_api = LineBotApi('') try: line_bot_api.push_message('', TextSendMessage(text='Hello World!')) except LineBotApiError as e: # error handle … ※channel access token, Line User IDはLine Developperコンソールから発行可能 python

Slide 10

Slide 10 text

バックエンド(AWS) AWSを利用してバックエンドを構築。 Amazon API Gateway AWS Lambda AWS IoT Core AWS IoT Events

Slide 11

Slide 11 text

バックエンド(AWS) • バックエンドのHTTPエンドポイントや、 RESTfulAPIを簡単に作成する事が可能なサービス。 • このサービスで作成したエンドポイントをWebhook に設定。 詳細は https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/welcome .html Amazon API Gateway

Slide 12

Slide 12 text

バックエンド(AWS) • いわゆるサーバレス(FaaS) • コンピューターリソースを管理することなく、関数 を実行する事が可能。 詳細は https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html AWS Lambda

Slide 13

Slide 13 text

バックエンド(AWS) • ネットに接続されたデバイス (センサーやマイコン 等) と AWS クラウドとのセキュアな双方向通信が 可能となるサービス。 • デバイスの状態を把握/管理し、デバイス、アプリ、 その他のクラウドサービスでデータを共有するため の信頼性の高いデータストアを提供。 詳細は https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/what-is-aws- iot.html AWS IoT Core

Slide 14

Slide 14 text

バックエンド(AWS) • デバイス等からのデータを継続的に監視し、イベン トが発生した時に、適切な対応をトリガー出来る。 • UMLの状態マシンに似た探知機モデルを作成し、状 態に応じたアクションが可能。 詳細は https://docs.aws.amazon.com/ja_jp/iotevents/latest/developerguide/what-is- iotevents.html AWS IoT Events

Slide 15

Slide 15 text

マイコン • プラットフォーム用に設定された FreeRTOS の バージョンをダウンロードし、実装する事が可能。 • クラウドとの通信をセキュアに行う事ができる。 詳細は https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/what-is- aws-iot.html Amazon FreeRTOS

Slide 16

Slide 16 text

構成 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway

Slide 17

Slide 17 text

動作概要 点灯/消灯動作

Slide 18

Slide 18 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 1. 点灯メッセージ送信

Slide 19

Slide 19 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 2. 点灯指示 1. 点灯メッセージ送信

Slide 20

Slide 20 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 3. 点灯通知 2. 点灯指示 1. 点灯メッセージ送信

Slide 21

Slide 21 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 3. 点灯通知 2. 点灯指示 4. メッセージ送信 1. 点灯メッセージ送信

Slide 22

Slide 22 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 3. 点灯通知 2. 点灯指示 4. メッセージ送信 5. 状態更新通知(点灯) 1. 点灯メッセージ送信

Slide 23

Slide 23 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 3. 点灯通知 2. 点灯指示 4. メッセージ送信 5. 状態更新通知(点灯) 6. 状態更新(PowerOFF→PowerON) タイマー起動 1. 点灯メッセージ送信

Slide 24

Slide 24 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 7. タイマータイムアウト発生 ※繰り返し行われる。

Slide 25

Slide 25 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 7. タイマータイムアウト発生 ※繰り返し行われる。 8. メッセージ送信

Slide 26

Slide 26 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 7. タイマータイムアウト発生 ※繰り返し行われる。 9. タイマーリセット 8. メッセージ送信

Slide 27

Slide 27 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 3. 消灯通知 2. 消灯指示 4. メッセージ送信 1. 消灯メッセージ送信

Slide 28

Slide 28 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 3. 消灯通知 2. 消灯指示 4. メッセージ送信 5. 更新通知(消灯) 6. タイマー削除 状態更新(PowerON→PowerOFF) 1. 消灯メッセージ送信

Slide 29

Slide 29 text

動作概要 状態確認動作

Slide 30

Slide 30 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 1. 状態確認メッセージ送信

Slide 31

Slide 31 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 2. デバイス情報取得 1. 状態確認メッセージ送信

Slide 32

Slide 32 text

動作概要 Amazon FreeRTOS AWS Cloud AWS IoT Core MQTT/MQTTS AWS IoT Events AWS Lambda AWS Lambda AWS Lambda Amazon API Gateway 2. デバイス情報取得 3. 応答メッセージ送信 1. 状態確認メッセージ送信

Slide 33

Slide 33 text

デモを実施します。

Slide 34

Slide 34 text

• LineのMessaging APIを利用するこで、BOT作 成やバックエンドとの連携が簡単に行えます ます。 • AWSでバックエンドも簡単に構築できます。 まとめ

Slide 35

Slide 35 text

ご静聴ありがとうございました。

Slide 36

Slide 36 text

No content