心拍数と血中酸素濃度(SpO2)を手軽に測りたいと思い、作りました。
必要なものはM5StickCと脈拍センサーの2つのみで、UIFlowというものを使うのでプログラミングも不要で作れます。
作業時間はノートラブルで30分ほどです。

注意:この記事で作成したものは医療機器として認められたものではありません。あくまで日常的に自分の健康状態を把握することを目的としています。
正確な値を取得する必要がある場合は、医療機器を購入ください。

1. 必要なもの
・Windows 10 64bitが動作するパソコン(スペック不問)
※2020年7月現在、M5Burnerは64bit版のみ提供されており、32bit版は無いようです。

 https://www.switch-science.com/catalog/5695/

ということで、しめて3000円ちょっとでできるお手軽工作です。

 2. 大まかな手順
①PCにUSBシリアルドライバのダウンロードとインストール
②M5StickCをUSBでPCと接続
③M5Burnerをダウンロード
④.NetFramework 3.5インストール
⑤M5BurnerでUIFlowのファームウェアを書き込み
⑥M5StickCをWiFiに接続
⑦M5StickCに表示されるAPI KEYをメモしておく
⑧PCのブラウザでUIFlowにアクセス
⑨UIFlowにAPI KEYをセット
⑩UIFlow用の定義ファイルをダウンロード
⑪UIFlow用の定義ファイルを開く
⑫(オプション)M5Stack用の画像作成
⑬(オプション)M5Stack用の画像アップロード
⑭M5StackCへアプリケーション書き込み

3. 手順
①PCにUSBシリアルドライバインストール
https://m5stack.com/pages/download
にアクセスし、CP2104 DriverのWindows版をダウンロードし、解凍します。
CP210xVCPInstaller_x64_vx.x.y.y.exe
をダブルクリックし、インストールします。

②M5StickCをUSBでPCと接続
ここで、M5StickCと心拍センサーを付属のケーブルで接続しておきます。
M5StickCが正しく認識された場合は、デバイスマネージャのポート(COMとLPT)にUSB Serial Port(COMX)と表示されます。
デバマネ


③M5Burnerをダウンロード
https://m5stack.com/pages/download
に再度アクセスし、M5BurnerのWindows版をダウンロードし、解凍します。

④.NetFramework 3.5インストール
③で解凍した、M5Burner.exeをダブルクリックします。
警告が出た場合は、[実行]をクリックしてください。
m5warning

M5Burnerは前提として.NetFramework 3.5が必要ですが、未インストールの場合、Windows 10であればここで自動的にインストールが行われます。

⑤M5BurnerでUIFlowのファームウェアを書き込み
COM番号を②で確認した番号と同じものを指定し、[STICKC]を選択。[Download]をクリックするとインターネットから自動的にソフトウェアのダウンロードが始まります。
m5burn1

ダウンロードが終わると、以下のようにボタンが変化するので、[Burn]をクリックします。
書き込みには数分かかります。
m5burn2


⑥M5StickCをWiFiに接続
正常に書き込みが終わると、M5StickCが再起動され、WiFi設定のモードに入ります。
お持ちのiPhoneやAndroidスマートフォンなどで、WiFiの接続先をM5SXXから始まるアクセスポイントに接続してください。
m5wifi


左:iPhoneの場合 右:Androidの場合
m5wifiapplem5wifidroid













次に、接続したスマートフォンでブラウザを立ち上げ、アドレスバーに[192.168.4.1]と入力します。
するとWiFi接続用のページに遷移しますので、インターネットに接続可能なWiFiアクセスポイントを選択し、パスワードを入力してください。
Screenshot_2020-07-16-15-42-42-238_com.android.chrome


設定が成功すると、M5StickCが自動的に再起動され、UIFlowに接続されます。


⑦M5StickCに表示されるAPIキーをメモしておく
正しく接続されると、M5StickCにAPIキーが表示されますので、メモしてください。

⑧PCのブラウザでUIFlowにアクセス
PCのブラウザでhttp://flow.m5stack.com/にアクセスします。
バージョンは2020年7月現在、心拍センサユニットに対応したばかりなので[Beta]を選びます。
uiflowversion


⑨UIFlowにAPI KEYをセット
⑦でメモした[API KEY]を入力し、[Language]を[日本語]に、[Device]を[Stick-C]にして、OKをクリックします。
uiflowconfig


⑩UIFlow用の定義ファイルをダウンロード
ダウンロード
上記リンクからダウンロードし、解凍しておきます。

⑪UIFlow用の定義ファイルを開く
UIFlowの画面に戻り、[開いた]をクリックします。
uiflowopen


⑩でダウンロードしたフォルダの、[src]フォルダの中にuiflow_hr_spo2_stickc.m5fがあるので、開きます。
uiflowopenfile

以下のような画面になります。
example


⑫(オプション)M5Stack用の画像作成
心臓の鼓動を表示する画像をインターネットで検索し、ダウンロードします。
画像は50x50ピクセルを目安にリサイズしておきましょう。
なお、UIFlowで画像を扱う場合のファイル条件は、サイズ: 25KB以下、フォーマット: jpgまたはbmpです。
今回は、ファイル名を、[heart.jpg]としてください。

⑬(オプション)M5Stack用の画像アップロード
作成した画像をアップロードします。
UIFlowで以下のアイコンをクリックします。
photoupload

[Add Image]をクリックして、作成した画像をアップロードします。
M5StickCと直接通信して書き込みに行きますので、ここで手順⑥で実施したようにM5StickCがUIFlowに接続されている必要があります。
アップロードが終わったら[Reload]をクリックします。
正しくアップロードが終われば、追加した画像のファイル名がここに表示されます。
photoupload2


⑭M5StackCへアプリケーション書き込み
最後に、[RUN]ボタンをクリックすれば自動的にアプリケーションが書き込まれ、実行されます。
uiflowrun



4. 使い方
心拍光センサユニットの赤い光が出ているところに人差し指を覆い被せ、つまむように持ちます。
測定には10秒ほどかかります。
結果が表示されない場合は、指の位置を少しずつずらしながら測定結果がでるまで静かに待ってみてください。
heart