LoginSignup
2
0

More than 3 years have passed since last update.

心拍のリアルタイムデータを取得し外部サーバーへ転送する方法を考察

Last updated at Posted at 2020-09-23

リアルタイムで心拍数を取得しその値を元にフィードバックする方法を考察する機会があったので、実現ができる可能性がありそうな方法をメモ

転送頻度など実際に使ってみないと不明な箇所があります、追加調査すればわかるかもですが。。。
まずは方法をリストアップしています

懸念事項

  • データを外部サーバに転送する頻度を高めた場合のバッテリー持ち時間
  • 外部サーバーに毎分転送は厳しいと感じる、異常値のみの場合は転送などであれば、まだよさそう

方法案1 ウェアラブルデバイスがリアルタイム計測値を外部サーバへ送信

Cellular モデルがある場合、Watch 用の APP を開発することで、ウェアラブルデバイス単体でリアルタイム計測値を外部サーバーへ送信することができそう。

データやり取り構造案

image01.drawio.png

Apple Watch の Cellular モデルの利用

測定データ Watch 用の APP なので直接参照
データ頻度 Apple Watch は通常 10 分おき、ワークアウト時は常時らしい、参考サイト(「Apple Watch」で心拍数を計測する)より
転送頻度 WatchAPP の仕様に準拠なので最短は不明、外部サーバなどへのアクセスが可能かも調査必要

https://support.apple.com/ja-jp/HT207578
https://developer.apple.com/jp/watchos/

Cellular モデルがあるようなので、Watch 用の APP を開発することで、ウェアラブルデバイス単体でリアルタイム計測値を外部サーバーへ送信することができそう。
スマホに companion な APP なしで動作するようなので、単体動作によさそうですね

方法案2 ウェアラブルデバイスでリアルタイム計測値を判定し異常の場合に外部サーバーへ送信

Watch 用の APP ではリアルタイム計測値が参照できるはずなので、その APP で異常値を設定し、以上が合った場合にスマホを介して外部サーバーにデータを送信することができそう。

データやり取り構造案

image02.drawio.png

Fitbit Ionic に APP 開発

Fitbit の公式 APP にコミュニケーション用の companion を開発しウェアラブルデバイスにも APP を開発することで外部サーバにデータ送信できる可能性ありそう
異常値が合った場合など送信頻度が少ないと良さそうと感じる
リアルタイム送信は、どこまで対応するか作ってみないと不明

測定データ Watch 用の APP なので DeviceAPI から直接参照
データ頻度 Fitbit Ionic は WebAPI 上では 1 分おきデータだったので 1 分おきと思われる
転送頻度 companionAPP 準拠になるので最短は不明

Apple Watch に APP 開発

上記の Fitibit と同じ用に companionApp をスマホに追加し、ウェアラブルデバイスにも APP を開発する方式
リアルタイム送信は、どこまで対応するか作ってみないと不明

測定データ Watch 用の APP なので直接参照
データ頻度 Apple Watch は通常 10 分おき、ワークアウト時は常時らしい、参考サイト(「Apple Watch」で心拍数を計測する)より
転送頻度 companionAPP 準拠になるので最短は不明

方法案3 ウェアラブルデバイスのリアルタイム計測値をスマホから外部サーバへ送信

スマホにウェアラブルデバイスと通信する APP を導入しスマホから外部サーバーへデータを送信する

データやり取り構造案

image03.drawio.png

BLE 通信する自作 APP の開発

ウェアラブルデバイスの通信仕様が公開されている場合、それに則った APP を開発することで、ある程度自由にリアルタイム転送などが可能そう

通信仕様が公開されていると思われるウェアラブルデバイス

SDK for Polar sensors
https://github.com/polarofficial/polar-ble-sdk

測定データ BLE を利用して参照
データ頻度 ウェアラブルデバイス由来
転送頻度 独自 APP なので毎分が可能そう

Device Web API Manager の利用

この APP が対応しているウェアラブルデバイスである必要があることと、心拍数のみの取得のようなので、歩数などのデータが取得できない可能性がある

測定データ BLE を利用して参照(心拍数のみ)
データ頻度 ウェアラブルデバイス由来
転送頻度 独自 APP なので毎分が可能そう
動作確認済みのウェアラブルデバイス

Garmin は認識しないでした

セイコーエプソン PULSENSE https://go-wellness.epson.com/sensing/pulsense/
Wahoo Fitness Blue HR https://www.amazon.co.jp/dp/B009LVPJAA/ref=cm_sw_em_r_mt_dp_NSXyFbH8MPQ1Z
POLAR H7 https://support.polar.com/ja/support/h7
Physical Enterprises Inc. MIO Alpha https://www.amazon.co.jp/dp/B00DU4EB4E/ref=cm_sw_em_r_mt_dp_0VXyFb4ZV8BT4

方法案4  ウェアラブルデバイスのデータサーバーに外部サーバから参照

ウェアラブルデバイスと公式の APP が独自のサーバーにデータを保持する仕組みを構築する場合、外部サーバーからデータを参照

データやり取り構造案

image04.drawio.png

Fitbit API

ウェブ API が公開されているので開発者登録すればアクセストークン利用して参照が可能
外部サーバから参照する際に、独自サーバーにアップロードされるまで遅延があるようなので、リアルタイム性は低くなるのが懸念事項

測定データ BLE を利用して参照している
データ頻度 ウェアラブルデバイス由来
転送頻度 ウェアラブルデバイスメーカーの APP に準拠

各デバイスのデータ頻度などまとめ(調査不足。。)

Apple Watch

心拍 行動量 睡眠
測定データ 心拍数 歩数 睡眠レベル
元データ LED 反射光量 加速度かな 不明
データ頻度 通常 10 分、ワークアウト常時 不明 不明
転送頻度 3分で何回かと参考サイトより 不明 不明

Fitbit Charge 4

Fitbit Charge 4 でのデータ頻度が1分だったので、Ionic も同じかなと。。

心拍 行動量 睡眠
測定データ 心拍数 歩数 睡眠レベル
元データ LED 反射光量 加速度かな 不明
データ頻度 1分 1分 1分
転送頻度 3分で何回かと参考サイトより 不明 不明

Fitbit Ionic

Fitbit Charge 4 でのデータ頻度が1分だったので、Ionic も同じかなと。。

心拍 行動量 睡眠
測定データ 心拍数 歩数 睡眠レベル
元データ LED 反射光量 加速度かな 不明
データ頻度 1分 1分 1分
転送頻度 3分で何回かと参考サイトより 不明 不明

参考サイト

Apple Watchで心拍計を表示するアプリを開発してみた
https://www.tdi.co.jp/miso/apple-watch

「Apple Watch」で心拍数を計測する
https://link-man.net/tips/59706/#:~:text=%E5%B9%B3%E5%B8%B8%E6%99%82%E3%81%AF10%E5%88%86,%E7%B7%91%E3%81%AB%E5%85%89%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

Intraday Access Requests
https://dev.fitbit.com/build/reference/web-api/intraday-requests/

Rate Limits
1時間あたり150のAPIリクエスト
https://dev.fitbit.com/build/reference/web-api/basics/#rate-limits

Accessing the Fitbit API
https://dev.fitbit.com/build/reference/web-api/oauth2/

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0