脈拍センサー&血中酸素センサー (MAX30100)

脈拍センサー&血中酸素センサー (MAX30100)です。


購入

eBay 等で購入できます (購入時価格: ¥552)。

理由は後述しますが、この製品は買わない方がいいです。血中酸素センサーが不要なら脈拍センサー (パルスセンサー)が安くてお手軽ですし、血中酸素センサーが必要なら後継の MAX30102 / MAX30105 が簡単です。



各部詳細

モジュールの型番は RCWL-0530 のようです。

See Also:



動作確認

さて、このモジュールの何が問題かと言うと、I2C の信号レベルが 1.8V なのです。つまり、このモジュールを使うにはレベル変換 IC の他に、レベル変換 IC のための 1.8V レギュレータも別途必要になります...もっと言うならレギュレータのためにコンデンサも必要です。この件については edy さんの記事を読むのが手っ取り早いと思います。

以下、「折角買ったんで、オモチャ程度に動かせないかな...?」 という方向けの記事です。

接続

Arduino UNO との接続は以下のようになります。

抵抗は 4.7KΩを使っていますが、10KΩとかでも大丈夫です。とにかく I2C をプルアップしないと正しく動作しません。例によってセンサーには薄い透明の板を被せて使う必要があります。簡易的にはセロテープや透明ビニールテープでも構いませんが、透明度の高いものがいいでしょう。100均でスマホ用画面保護フィルムを買ってきてもいいかもですね。

ライブラリ

ライブラリはライブラリマネージャで "MAX30100lib" を検索してみましょう。

出てきたライブラリをインストールしておきます。

スケッチ

テストスケッチは [ファイル | スケッチ例 | MAX30100lib] にある MAX30100_Minimal を使います。edy さんの記事にもあったように、スケッチを一部修正します。


    // The default current for the IR LED is 50mA and it could be changed
    //   by uncommenting the following line. Check MAX30100_Registers.h for all the
    //   available options.
    pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);

一行アンコメントすればそれなりに動作します。スケッチをコンパイル&転送し、シリアルモニタを開けば脈拍、血中酸素濃度、温度 (体温ではなさそう) が表示されます。値だと判りにくいのでシリアルプロッタに出したのが以下の図になります。

脈拍がたまに飛ぶようです。ちゃんとレベル変換してやれば改善するのでしょうかね?でもどのみち医療用としては使わないでしょうから、この程度の精度でいいのかもしれません。

ちなみに私、心筋梗塞やらかしてますから本当に脈拍がおかしいのかもしれませんwww

See Also:


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: