Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Wio LTEで始める生体信号計測

1,959 views

Published on

下記イベントで発表した資料です。
https://soracom.connpass.com/event/68427/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Wio LTEで始める生体信号計測

  1. 1. Wio LTEで始める生体信号計測 ABEJA Inc. Hiroyuki Ootaguro (2017/12/04)
  2. 2. Wio LTEを使って何か作りたい!! ・てっとっりばやく計測データをすぐクラウドに挙げられる時代がきた ・身の回りのもので何か面白いもの… Motivation 2 「なにか生体情報を計測してクラウドに蓄積・分析・異常検知する!」
  3. 3. Motivation 3 パルスオキシメーター 転載元:http://www.nihonkohden.co.jp/manufacturing/technology/topics.html
  4. 4. 全体構成 4 可視化&異常検知 Lambda FuncKinesis Firehorse Amazon S3 パルスオキシメーター + 計測回路 (省略可能)
  5. 5. 全体構成 5 可視化&異常検知 Lambda FuncKinesis Firehorse Amazon S3 パルスオキシメーター + 計測回路 (省略可能) クラウド側デバイス側
  6. 6. 可視化&異常検知 信号処理系Kinesis Firehorse Amazon S3(省略可能) 全体構成 6 プローブ + 計測回路 人体(指)に光を当て、 吸光応答を出力する
  7. 7. 可視化&異常検知 信号処理系Kinesis Firehorse Amazon S3 プローブ
 + 計測回路 (省略可能) 全体構成 7 計測回路からの出力を取り込み、クラウド側へ データ送信をする (主役)
  8. 8. 可視化&異常検知 信号処理系Kinesis Firehorse Amazon S3 プローブ + 計測回路 (省略可能) 全体構成 8 WioLTEからのデータを受取り、 整形し後段(Kinesis)への架け橋となる Fluentd (Open Source Data Collector) ※構成次第では不要(後述)
  9. 9. 可視化&異常検知 信号処理系 プローブ + 計測回路 (省略可能) 全体構成 9 受け取ったストリームデータを処理し、 「Zero Administration(ゼロ管理)」で「ダイレクト」に ストレージへデータ格納 Kinesis Firehorse Amazon S3 ※ Kinesis = フルマネージド型リアルタイム大規模ストリーミングサービス ※ Amazon S3 = クラウドストレージ(オブジェクトストレージ)
  10. 10. 可視化&異常検知 Kinesis Firehorse Amazon S3 プローブ + 計測回路 (省略可能) 全体構成 10 計測データから血中酸素飽和度の算出を行う。 算出結果を後段(Datadog)へ転送する 信号処理系 Hb→ヘモグロビン HbO2→酸素化ヘモグロビン ※デバイス側で計算しても良い。(理想) 計算に関していろいろ試行錯誤したいので ロジックは一旦クラウド側に持つようにした
  11. 11. 信号処理系Kinesis Firehorse Amazon S3 プローブ + 計測回路 (省略可能) 全体構成 11 データを監視し、可視化及び異常があればアラートをする 可視化&異常検知 Datadog社が提供する インフラ監視を想定した監視SaaS MLベースの異常検知機能あり ※CPU・メモリ使用率等のメトリクスの 代わりに、計算した「血中酸素飽和度」を 入れる
  12. 12. Wio LTEの開発環境セットアップ / HelloWorldする ↓ プローブ+計測回路を用意し、結合。WioLTE側にA/D変換・データ送信ロジック記述 ↓ Fluentd側の構築 (デバイスとの結合用HTTPエンドポイント用意) ↓ AWS上のリソース(Kinesis Firehorse/S3/Lambda)の構築 ※Terraformを利用 ↓ Fluentd側の設定追加(デバイスからきた情報をKinesis Firehorseに転送) ↓ Datadogの設定 実装ステップ 12
  13. 13. WioLTEの初期化 13 ← LTEモジュールに電源供給をする ← LTEモジュールの初期化 ← APN(Access Point Name)の設定
  14. 14. WioLTE (データ転送) 14 ←HTTP POST
  15. 15. WioLTE (Tips) 15 ←RSSI (電波強度)の取得 ←NTP時刻同期 (ntp.nict.jp) ←時間取得(RTCから..?)
  16. 16. 回路設計 16 非反転増幅 501倍 BPF(バンドパスフィルタ) 0.33〜15.9 [Hz] ※出力オフセット ※学生時代にサクッと設計した回路です。 使うプローブ等によってゲイン等の調整が必要です。
  17. 17. 回路実装 17 プローブ端子 増幅回路+BPF
  18. 18. 完成 18 ANT Wio LTE本体 プローブ 計測回路
  19. 19. Fluentd側の用意 19 ← HTTP Port8888でLISTEN PayloadはJSONを仮定 ←KinesisFirehorseへ転送する
  20. 20. Fluentd側の用意 20 Dockerを活用すると秒で立てられます
  21. 21. WioLTE + Fluentdの結合 21 計測データ(Sample) 時間→ 出力電圧(mV) さくっとネット越しにデータがとれました!
  22. 22. AWS上のサービス用意 22 IoTデバイスからのデータ集積・分析を考えると、 アーキテクチャが似てくる (結構同じになってくる場合も) 仕事でも趣味でも同じ or 似たようなアーキテクチャ をもう一度作りそうだな… Infrastructure as Code(IaC)の導入
  23. 23. TerraformによるIaCの例 23 例)tf-test-bucket-taguroというS3バケットを作成しなさい。 ついでに、Object作成時にLambda関数も呼び出しなさい
  24. 24. Terraformingのご紹介 (既に作ったAWSリソースからTFコードを生成する) 24 既に作ったリソースからTerraform用コードを 自動生成するツール
  25. 25. ここまでのコードは後日AdventCalenderの時に まとめます。
  26. 26. DATADOGでHR(Heartrate)がでるようになった 26
  27. 27. 登壇前の緊張がバレル 27
  28. 28. 28
  29. 29. 運動したり緊張したり プローブが外れると メールがくるようになった!!!
  30. 30. ・Wio LTE予想以上に簡単だった ・Datadog, サーバーメトリクス監視用だが、普通に使える・・・笑 ・Docker + Terraformの活用により、インフラ(サービス側)も手軽に用意できるようになった ・WioLTE + AWSのマネージドサービス+その他SaaS等の活用で、「やりたいこと」を叶える一 連のデータフロー・ロジックを楽に実装できるようになった ・IoTを活用したソリューションがサクッと作れようになった。 ・SORACOM Funnelを活用すれば、Fluentdいらなかったかも・・・(勉強不足ですみませ ん…><) 気づき 30

×