ラズパイその他工作

ラズパイとセンサで作る小型健康管理ウェアラブルデバイス!第1回

ラズパイ・ゼロとローム・センサメダルで健康管理をサポートするデバイスを作ろう!

こんにちは、ヨシケンです!

家で過ごす時間が増えている昨今、ついつい運動不足になってしまっていませんか?家の中だけだと、あまり動かなかったり、歩く距離も減ってついつい不健康な生活となってしまいがちです。

そんな不健康生活を改め、しっかりと運動をするためのデバイスを電子工作で作れたら面白く、健康にも役立って一石二鳥と思い、今回のデバイスを思いつきました。早速、小型のラズパイ・ゼロとロームのセンサで健康管理デバイスを作っていきたいと思います。

aspberrypi-wearable-healthcare-device-01_01

 

今回の記事の流れ

  1. ラズパイとセンサで健康管理
  2. ラズパイ・ゼロとセンサメダルを接続
  3. このデバイスに必要なものと制作で学べること
  4. まとめ

 

1. ラズパイとセンサで健康管理

今回の電子工作は、ラズパイとセンサを組み合わせて、健康管理の中でもおもに家の中での運動量を測ったり、外での軽い散歩やジョギングなどで使えるものを考えてみます。

センサで測れることと、それで分かることをいくつか挙げてみました。

番号 計測できること 運動に役立つ機能
1 加速度センサから簡易的に歩数をカウント 1日の歩数、消費カロリーなどを計算する
2 運動を自動判別する 歩く、走る、跳ぶなどを判別し、効率的な運動を目指す
3 心拍数を計測する 運動強度を計算。運動の多少を示す
4 室内外の温湿度を計測する 運動に最適な環境をお知らせ

これらを計測するために、以前ご紹介した「ラズパイとセンサで作る「快適空間自動生成装置」でも使用したロームのセンサメダル(SensorMedal-EVK-002)を使用します。

6種のセンサが内蔵されており、BLEで外部機器にも接続できます。小型でコイン電池駆動のモバイル型なので、家の中や運動中に持ち歩いても気になりません。

aspberrypi-wearable-healthcare-device-01_02

センサメダルのホームページより

 

センサメダルは、以下のような温湿度や照度、加速度など6つのセンサとBLEモジュールが一体化したセンサ評価キットです。ローパワーマイコンも備え、コイン電池一つで数ヶ月も駆動可能な設計になっています。

センサ種別 計測できること 用途など
加速度センサ x、y、z軸方向の加速度 歩数計
地磁気センサ 方向取得 移動している方角を示す
気圧センサ 1100hPaまでの気圧を取得 気圧、高度を表示
照度センサ 明るさに応じた値をデジタルに出力 明るさ、近くに来たかどうか
ホールIC 間欠動作を取得 自転車の車輪の回転数
温湿度センサ 温度、湿度を計測 室温、屋内湿度

 

今回は、センサメダルに加え、その計算、表示などのために、小型のラズパイ・ゼロも組み合わせて、健康管理のデバイスを作ろうと思います。ラズパイ・ゼロとセンサメダルをBluetooth接続して、さまざまな計測、表示、アクションなどを起こします。

aspberrypi-wearable-healthcare-device-01_03

ラズパイ・ゼロとローム・センサメダル

 

2. ラズパイ・ゼロとセンサメダルを接続

それでは早速、センサメダルを使い始めてみましょう。
スマホなどとの接続は、こちらの資料にまとまっています。センサメダルコイン電池のCR2450を入れ、スマホとBLE接続するだけです。

aspberrypi-wearable-healthcare-device-01_04

次に、データを受診する母艦としてラズパイ・ゼロを使います。ラズパイのBluetoothとセンサメダルを接続してみます。

ここは「ラズパイとセンサで作る「快適空間自動生成装置」」の第2回でおこなったbluepyというライブラリを、ラズパイ・ゼロにインストールする過程と同じです。

pi@raspizero:~ $ sudo pip3 install bluepy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting bluepy
  Downloading https://www.piwheels.org/simple/bluepy/bluepy-1.3.0-cp35-cp35m-linux_armv6l.whl (515kB)
    100% |████████████████████████████████| 522kB 912kB/s 
Installing collected packages: bluepy
Successfully installed bluepy-1.3.0

次に、センサメダルをBluetooth経由でラズパイにつなぐため、こちらのGithubにある便利なプログラムを使用させてもらいます。

aspberrypi-wearable-healthcare-device-01_05

Github:http://github.com/bokunimowakaru/SensorMedal2

 

git cloneでプログラムをダウンロードし、サンプルプログラムを実行します。

pi@raspizero:~ $ sudo git clone http://github.com/bokunimowakaru/SensorMedal2
Cloning into 'SensorMedal2'...
warning: redirecting to https://github.com/bokunimowakaru/SensorMedal2/
remote: Enumerating objects: 78, done.
remote: Counting objects: 100% (78/78), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 78 (delta 54), reused 44 (delta 23), pack-reused 0
Unpacking objects: 100% (78/78), done.

pi@raspizero:~ $ cd SensorMedal2/
pi@raspizero:~/SensorMedal2 $ ls

LICENSE                             ble_logger_SensorMedal2_basic.py
README.md                           ble_logger_SensorMedal2_save.py
ble_logger_SensorMedal2.py          ble_logger_SensorMedal2_udp_tx.py
ble_logger_SensorMedal2_ambient.py

Python3でsudo権限を付けて実行すると、ラズパイ・ゼロでも以下のように数値を取得できます。

  • Temperature: 温度(℃)
  • Humidity: 湿度(%)
  • Pressure: 気圧(hPa)
  • Illuminance: 明るさ(lx)
  • Accelerometer: 加速度(x軸、y軸、z軸)(g)
  • Geomagnetic: ジャイロセンサ値(x軸、y軸、z軸)(uT)
  • Magnetic: ホールセンサ値(もし磁石が近くを通ったら1、そうでない場合0)
  • Steps: 歩数(歩)
  • Battery Level: バッテリの残量
pi@raspizero:~/SensorMedal2 $ sudo python3 ble_logger_SensorMedal2.py
...
Device c5:xx:yy:zz::d0 (random), RSSI=-65 dB
  Short Local Name = ROHMMedal2_0107_01.00
  Flags = 06
  Incomplete 16b Services = 0000180a-0000
  Manufacturer = 0100c86abcdef
    ID            = 0x1
    SEQ           = 188
    Temperature   = 27.99 ℃
    Humidity      = 71.52 %
    Pressure      = 998.578 hPa
    Illuminance   = 93.3 lx
    Accelerometer = 1.453 g ( 0.062 0.844 1.181 g)
    Geomagnetic   = 92.6 uT ( -15.8 -58.0 -70.4 uT)
    Magnetic      = 0x3
    Steps         = 8 歩
    Battery Level = 90 %
    RSSI          = -65 dB

ラズパイ・ゼロでもセンサメダルからのデータを簡単に取得できることが分かったと思います。

 

3. このデバイスに必要なものと制作で学べること

では改めて、このデバイス作りで必要なものを列挙します。今回は、以下のような部品を使って健康管理デバイスを制作していきます。

番号 必要なもの 購入できるところ
1 ラズパイ・ゼロ Raspberry Pi Zero W
2 ロームセンサメダル SensorMedal-EVK-002
3 OLEDディスプレイ I2C Display
4 脈拍センサ 脈拍パルスセンサモジュール
5 小型バッテリ LiPoバッテリ(860mAh)
6 外装 100円均一など

 

このデバイスを作ることによってセンサ、ハードウェアに関して学べるのは、以下のようなことです。

番号 学べること
1 センサメダルとBLEでラズパイ・ゼロと接続する方法
2 万歩計の仕組みと使い方
3 心拍数を取得する方法
4 インターネットと連動して情報を連携

 

4. まとめ

リモートワークや移動制限の影響で、ついつい運動不足になって体重が増えてしまっている人は多いのではないでしょうか?普段の生活の中で、どれくらい歩いているのかな?とか、1日の消費カロリーはどれくらいだろう?というのを計測するだけでも、健康に気持ちを向けることができるのではないかと思います。

今回は、運動量を測ったり心拍数を計測したりできる健康管理デバイスを、センサメダルとラズパイ・ゼロで作っていきます。

両方とも小型のセンサとコンピュータですので、ウェアラブルなものが作れます。それでは次回以降、実際のデバイス作りを紹介していきたいと思います!

お楽しみに!

電子工作マニュアル Vol.3
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net