Is it possible to get PPG(Photoplethysmogram) data from a smart watch via android?

后端 未结 3 1589
醉话见心
醉话见心 2021-01-03 01:41

I want to develop a health care app using Android smart watch devices that have an optical heart rate sensor. Examples of such devices are: Samsung gear live, Moto360, LG G

相关标签:
3条回答
  • 2021-01-03 01:43

    Yes, it is possible (at least on a Samsung mobile device such as the S5, S6 etc.).

    See this link: http://developer.samsung.com/galaxy#sensor-extension

    From the Samsung website:

    The HRM Sensor is located on the rear panel of the phone. If you place your finger, measurement starts. The photoplethysmogram(PPG) signal means the amount back of IR / RED light that reflected from blood vessel in the finger.

    Use Samsung's SDK and it will give you the raw values (values range from 0 to ~64600 if I remember correctly).

    0 讨论(0)
  • 2021-01-03 01:48

    Yes, It is possible to do that. I have answered a similar question here :Android Wear: How to get raw PPG data?

    Basically, try to follow these steps:

    1- Get the sensor type (represented by a number) of your PPG sensor (it is a constant that describes the sensor). This can be done by listing all the available sensors on your device:

    List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
            for (Sensor currentSensor : sensorList) {
                Log.d("List sensors", "Name: "+currentSensor.getName() + " /Type_String: " +currentSensor.getStringType()+ " /Type_number: "+currentSensor.getType());
            }
    

    2- Then, try to find the sensorType of your PPG sensor. In your output, you will find one of the sensors containing the word ppg in it's type. For instance here is what the ppg sensor of my Huawei watch 2 looks like:

    Name: AFE4405 light Sensor /Type_String:  com.huawei.watch.ppg /Type_Number: 65537
    

    3-Register your listener using the the type_number of your ppg sensor, mine is 65537 so I would do this:

    sensorManager.registerListener(this,sensorManager.getDefaultSensor(65537),SensorManager.SENSOR_DELAY_NORMAL);
    
    0 讨论(0)
  • 2021-01-03 01:48

    No, I have searched rigorously to extract the raw values but wasn't successful. AsteroidOS (asteroidos.org/) is a custom rom for few compatible watches, even after going through the entire source code, I could only find a single place where the Heart Rate Monitor was used.

    Implementation File

    https://github.com/AsteroidOS/android_frameworks_native/blob/e88bdd18c91c313b2102445eb5eb6213814bc124/libs/gui/Sensor.cpp

    The reason I feel why It wouln't work because the Hear Rate is computed by the Hard Ware internally.

    For experimental purposes you could build your own PPG sensor externally

    www.sparkfun.com/products/11574

    and connect it to aurdino.

    Or could search for some wireless PPG sensor and build one of your own.

    0 讨论(0)
提交回复
热议问题