Slide 1

Slide 1 text

AWS IoTを使ってデータロギング ogurabread

Slide 2

Slide 2 text

• Thingサイド • サーバサイド 1. AWS EC2編 2. AWS IoT編 概要

Slide 3

Slide 3 text

• MCU – stm32f103c8t6 356円 • WiFi – ESP8266 650円 • Sensor – SHT31 温湿度計 596円 – TSL2561 照度計 560円 • Display – OLED SSD3306 750円 Thing

Slide 4

Slide 4 text

時間 全体構成 WiFi センサーデータ センサー NTPサーバー 時間同期 Thing サーバー MCU スマートフォン センサーデータ

Slide 5

Slide 5 text

• AWSで管理 • WiFi接続に変更 マイコン+WiFi+AWS 空調制御 照明制御 グラフ表示 温湿度計測 Arduino、サーバー間で直接やりとり

Slide 6

Slide 6 text

照明制御 空調制御 • AWSで管理 データロギング ver.1.0 (2016/08) 温湿度計測 MySQL Unicorn 静的ファイル グラフ表示 EC2

Slide 7

Slide 7 text

• 時間単位の従量課金 – 通信はほとんどしていないのに常時起動しておく必要がある – 月額918円相当(1年目は無料枠有り) EC2 IoT機器からサーバへのデータアップロードは一瞬で完了 スマートフォンからサーバへのデータリクエストは1日1回? でも、サーバはいつ通信が発生するかわからないので常時稼働

Slide 8

Slide 8 text

• サーバーレスとは? – サーバーレスとは、一定のサーバー容量に依存することなく、 稼働に必要なリソースを動的に設定し、マネージドサービスを 利用する事でシステム構築をする運用方法 サーバーレス https://www.skyarch.net/iot/serverless.html

Slide 9

Slide 9 text

1.2. store deta sendor data 4.4. download 4.1. request data Thing 1.1. send data(mqtt) data buffer 1.データアップロード(Thing) 4. データダウンロード(スマートフォン) 2. データ整形 2.1 convert 4.3. download データロギング ver.2.0 (2019/03)

Slide 10

Slide 10 text

• Thing(IoT端末)との通信を管理 – クライント証明書を用いた認証 • なりすましを防止 – MQTTというプロトコルを使用 – 別のサービスへと中継 AWS IoT

Slide 11

Slide 11 text

• Message Queuing Telemetry Transport • 通信帯域、消費電力が少ない – HTTPSの10倍以上オーバーヘッドが低い – TCP/IP上で動く • Publish/Subscribeメッセージモデル – publish • データ送信 – subscribe • プッシュ通知によるデータ受信 MQTT

Slide 12

Slide 12 text

• client_id, データ保存期限、アップロードデータが保存 – データ保存期限を過ぎると削除 アップロードされたデータ 1.2. store deta Thing 1.1. send data(mqtt) data buffer 1.データアップロード(Thing)

Slide 13

Slide 13 text

1.2. store deta sendor data Thing 1.1. send data(mqtt) data buffer 1.データアップロード(Thing) 2. データ整形 2.1 convert DBからファイルサーバーにコピー

Slide 14

Slide 14 text

• CSV形式で日付、データのフォーマットで保存 整形されたセンサーデータファイル

Slide 15

Slide 15 text

1.2. store deta sendor data 4.4. download 4.1. request data Thing 1.1. send data(mqtt) data buffer 1.データアップロード(Thing) 4. データダウンロード(スマートフォン) 2. データ整形 2.1 convert 4.3. download ファイルサーバーのデータを閲覧

Slide 16

Slide 16 text

• 2019/07/30(木) – 17:00:室温35℃ 部屋にいないだろうと予測できる – 18:30 エアコンがタイマーでOn 室温が下がり始める – 21:00 照度が0→200 帰宅したことがわかる ロギングされたデータ センサーデータは個人情報の塊

Slide 17

Slide 17 text

• ログインしていないとグラフは表示できないように • Oauth認証を利用 Fitbitでログイン

Slide 18

Slide 18 text

Oauth認証 1.2. download 1.1. request data 2.1. login (https://www.fitbit.com/...?redirect...ogurabread...) 2.2. return code(https://ogurabread.com?code=123456) 3.3. send code session id 3.4. request token 3.5. return token 3.6. add token token 2. Oauth認証 1. データダウンロード 1.3. request session id html/js 1.4. add session id 1.5. return session id session id Fitbit

Slide 19

Slide 19 text

ログイン後の画面

Slide 20

Slide 20 text

4.2. check token 1.2. store deta sendor data 4.4. download 4.1. request data Thing 1.1. send data(mqtt) 3.1. login Oauth 3.2. return code 3.3. send code data buffer 3.4. request token 3.5. return token 3.6. add token token for smartphone 1.データアップロード(Thing) 3. Oauth認証(スマートフォン) 4. データダウンロード(スマートフォン) 2. データ整形 2.1 convert 4.3. download データロギング ver.2.0 (2019/03)

Slide 21

Slide 21 text

One more ”Thing”

Slide 22

Slide 22 text

• Message Queuing Telemetry Transport • TCP/IP上で動く • Publish/Subscribeメッセージモデル – publish • データ送信 – subscribe • プッシュ通知によるデータ受信 • 通信帯域、消費電力が少ない – HTTPSの10倍以上オーバーヘッドが低い MQTT

Slide 23

Slide 23 text

時間 Subscribeを使うと… WiFi センサーデータ センサー NTPサーバー 時間同期 Thing サーバー MCU スマートフォン センサーデータ

Slide 24

Slide 24 text

Subscribeを使うと… WiFi センサーデータ センサー NTPサーバー 時間同期 Thing サーバー スマートフォン 時間 制御命令 パルス制御 照明 エアコン テレビ 家電 IR LED MCU センサーデータ 制御命令

Slide 25

Slide 25 text

• 赤外線リモコン – 38kHz – duty比 1/3 • 9ms発光 • 18ms停止 赤外線リモコンの信号 1/38khz = 26.3ms 9 18

Slide 26

Slide 26 text

• サーバーからの命令を受信して、照明OFF • レイテンシ1秒未満 実行動画 サーバーから照明制御命令送信前 サーバーから照明制御命令送信後

Slide 27

Slide 27 text

• Thingの紹介 • データロギング1.0(AWS EC2) – 月額1000円 • データロギング2.0(サーバレス) – AWS IoT MQTT – 月額200円 • データの確認 – Oauth認証 • 番外:家電制御 まとめ