我想使用具有光学心率传感器的Android智能手表设备开发医疗保健应用程序。这类设备的例子有:三星gear live,Moto360,LG G手表等等。
为此,我需要来自这些设备的原始PPG信号数据,但我发现Android API仅支持BPM单元的心率数据。
是否有人知道原始信号数据是否可访问,如果可以,我该如何访问该数据?
答案 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/)是少数兼容手表的定制版,即使经过整个源代码,我也只能找到一个使用心率监视器的地方。
实施档案
我觉得为什么它不起作用的原因是因为听力率是由硬件内部计算的。
出于实验目的,您可以在外部构建自己的PPG传感器
www.sparkfun.com/products/11574
并将其连接到aurdino。
或者可以搜索一些无线PPG传感器并构建自己的PPG传感器。