是否可以通过Android从智能手表获取PPG(光电容积描记图像)数据?

时间:2015-02-14 06:37:42

标签: android wear-os sony-smartwatch

我想使用具有光学心率传感器的Android智能手表设备开发医疗保健应用程序。这类设备的例子有:三星gear live,Moto360,LG G手表等等。

为此,我需要来自这些设备的原始PPG信号数据,但我发现Android API仅支持BPM单元的心率数据。

是否有人知道原始信号数据是否可访问,如果可以,我该如何访问该数据?

3 个答案:

答案 0 :(得分:1)

是的,这是可能的(至少在三星移动设备上,如S5,S6等)。

请参阅此链接:http://developer.samsung.com/galaxy#sensor-extension

来自三星网站:

  

HRM传感器位于手机的后面板上。如果放置手指,测量开始。 光电容积描记图(PPG)信号表示从手指血管反射的IR / RED光的反射量。

使用三星的SDK,它会为您提供原始值(如果我没记错的话,值范围为0到~66400)。

答案 1 :(得分:0)

是的,可以这样做。我在这里回答了类似的问题:Android Wear: How to get raw PPG data?

基本上,请尝试执行以下步骤:

1-获取PPG传感器的传感器类型(用数字表示)(它是描述传感器的常数)。可以通过列出设备上所有可用的传感器来完成此操作:

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-然后,尝试找到PPG传感器的sensorType。在输出中,您会找到其中一个包含单词ppg的传感器之一。例如,这是我的Huawei watch 2的ppg传感器的外观:

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

3-使用您的ppg传感器的type_number注册您的侦听器,我的是65537,所以我会这样做:

sensorManager.registerListener(this,sensorManager.getDefaultSensor(65537),SensorManager.SENSOR_DELAY_NORMAL);

答案 2 :(得分:-1)

不,我已严格搜索提取原始值但未成功。 AsteroidOS(asteroidos.org/)是少数兼容手表的定制版,即使经过整个源代码,我也只能找到一个使用心率监视器的地方。

实施档案

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

我觉得为什么它不起作用的原因是因为听力率是由硬件内部计算的。

出于实验目的,您可以在外部构建自己的PPG传感器

www.sparkfun.com/products/11574

并将其连接到aurdino。

或者可以搜索一些无线PPG传感器并构建自己的PPG传感器。