我想使用具有光学心率传感器的Android智能手表设备开发医疗保健应用程序。这类设备的例子有:三星gear live,Moto360,LG G手表R等。
为此,我需要来自这些设备的原始PPG信号数据,但我发现Android API仅支持BPM单元的心率数据。
有谁知道原始信号数据是否可访问,如果可以,我如何访问该数据?
是的,它是可能的(至少在三星移动设备上,如S5,S6等)。
看到这个链接:http://developer.samsung.com/galaxy#sensor-extension
来自三星网站:
HRM传感器位于手机的后面板上。如果放置手指,测量开始。光电容积描记图(PPG)信号表示从手指中的血管反射的IR / RED光的量。
使用三星的SDK,它会给你原始值(如果我没记错的话,值范围从0到~66400)。
是的,有可能这样做。我在这里回答了类似的问题: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的传感器。比如这里是华为手表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);
不,我已严格搜索提取原始值但未成功。 AsteroidOS(asteroidos.org/)是一款适用于少数兼容手表的定制ROM,即使经过整个源代码,我也只能找到一个使用心率监测器的地方。
实施档案
我觉得为什么它不起作用的原因是因为心率是由硬件内部计算的。
出于实验目的,您可以在外部构建自己的PPG传感器
呜呜呜.spark fun.com/products/11574
并将其连接到arduino。
或者可以搜索一些无线PPG传感器并构建自己的PPG传感器。