心拍センサーを使って kintone Hospital
さて IoT 企画の第 2 弾ということで、今回も「Raspberry Pi」を使った連携サンプルを紹介したいと思います。
はじめに
面倒で健康診断を放置して、年を過ごしてしまうことがよくあります。
もっと気楽に病院での検診ができれば…。
あ!病院に行かなくてもクラウドでできたらいいな!という妄想を今回は小さく形にしてみました。
今回のテーマは、kintone Hospital。
なんか大風呂敷を広げている感がありますが、kintone × 医療のキッカケになればと思います。
さて、今回は以下のようなイメージで作成していきます。
- センサーを使って Raspberry Pi で心拍数を取得する。
- 1 分間あたりの心拍数を測定する。
- kintone へ登録する。
環境準備
Raspberry Pi
Raspberry Pi Model B Revision 2
心拍センサー
心拍を取得するための
パルスセンサー
です。
通電するとハートの中に埋め込まれた LED が光っていい感じ。
ちなみに、今回はこのまま使っていますが、基盤部分が汗でショートすることもあるためラバーなどを被せて保護したほうがいいです。
アナログデジタルコンバータ(MCP3002)
Raspberry Pi がデジタル入力のみ対応のためアナログ出力の心拍センサーを取得するための変換機として間につなぎます。
kintone アプリ
計測結果を登録するためのアプリを用意します。
フィールド名 | フィールドコード | フィールドタイプ |
---|---|---|
測定日時 | createdate | 日時 (作成日時) |
心拍 | pulse | 数値 |
Raspberry Piの配線を組んでみる
配線図はこんな感じにしてみました。
ハートマークからでている紫の線がセンサーで、この出力データが AD コンバータを通して Raspberry Pi に送られます。
実際に配線を組んだものがこちらになります。
プログラムを組んでみる
測定のプログラムは Python で作成します。
今回 Raspberry Pi から kintone に登録するのに
kintone SDK for Python
を使用しました。
なんと 5 行あれば kintone に POST、PUT、GET ができる超便利 SDK です。
シンプル操作でお手軽に利用できるのでおすすめです。
ソースコード
pulse.py のファイル名で以下コードを保存します。
|
|
処理の流れはこちら。
- kintone の接続処理をする。
- センサーデータ入出力用の SPI モジュールを準備する。
- 1 秒ごとにセンサーからの情報を取得し、これをループ処理で 300 回行う。
計測時間は 0.1 秒 × 300 回で 30 秒とする。 - 測定値が 8 V 以上の値をカウントする。
だいたい脈ありのときに 2.8 V 以上になったのでそれを基準値としています。
また、センサーのしくみ上連続して 2.8 V を超える時があるのでそのような時はカウントせずにスキップしています。 - 計測処理が完了したらカウントした心拍数を kintone に登録する。
計測時間は 30 秒なので kintone に登録する際は 2 倍して 1 分間の心拍数とする。
動作確認
実際に動作させてみるとコンソールにログが出力され、0.1 秒ごとの計測値と心拍カウントが確認できます。
実行コマンド
|
|
アプリ側には以下のように測定結果が表示されます。
あとはこんな感じに月や週ごとの集計グラフ作ったりしてもいいですね。
おわりに
IoT 企画第 2 弾お楽しみいただけたでしょうか。
本当は脈拍だけではなく血圧も測りたいなーと思っていたのですが、ハードウェア的な問題で今回は見送らせていただきました(涙)
また機会があれば挑戦したいと思います。
ちなみに私は普段コードばかり書いているのですが、今回の企画ではメンバの皆でワイワイと夏休みの工作をしている感じで楽しく作業させていただきました。
興味がある方はぜひ息抜きにやってみるといいかなと思います!
さて、このシリーズは全 6 回の予定となっています。
まだまだいろんなネタが出てきますのでお楽しみに!