(SKU:SEN0203)心率传感器heart rate sensor

来自DFRobot Product Wiki
跳转至: 导航搜索
心率传感器

目录

简介

DFRobot正式推出超小型心率传感器,采用光电容积脉搏波描记法(PhotoPlethysmoGraphy,PPG),通过测量血液中血红蛋白随心脏跳动而对氧气吸收的变化量来测量人体心率参数。该方法拥有响应性快,性能稳定,适应性强等特点。模块拥有方波和脉搏波两种信号输出模式,可以通过板载开关去自由切换输出信号。脉搏波将输出一个连续的心率波形,而方波将根据心率的变化输出对应的方波。
新款心率传感器体积只有拇指大小,可以佩戴于手指、手腕、耳垂等皮肤裸露处。另外,板载的Gravity 3-Pin接口也可直接兼容Arduino I/O扩展板,使用简单,平台兼容性好,可广泛应用于手环,腕带等可穿戴饰品的DIY制作。

Warning yellow.png

注意:
1.此为静态心率传感器,测量时请勿随意移动,也勿按压过紧。
2.本品并非专业医疗仪器,不能作为辅助配件参与诊断和治疗。


产品参数

  • 供电电压:3.3 - 6V,推荐5V
  • 输出电压:模拟量(0 - VCC)/ 数字量(0 / VCC)
  • 工作电流:< 10mA
  • 尺寸:28mm x 24mm


引脚说明

心率传感器引脚图

模式开关
“A”:脉搏波:模块将根据心率变化输出连续的脉搏波
“D”:方波:根据心率的变化输出对应的方波信号


使用教程

安装方式

模块可以安放在手指,手腕,耳垂等皮肤直接接触处:


接线图

心率传感器连线图


教程1

使用Arduino板测试血氧饱和度值,输出心率值。可以把传感器直接放在手指、手腕等地方。

注:此例程需要把传感器上的开关拨向“D”档


准备


样例代码

点击下载库文件DFRobot_Heartrate(GitHub), 选择样例代码 DFRobot_Heartrate_Digital_Mode



/*!
* @file DFRobot_Heartrate.h
* @brief DFRobot_Heartrate.h detailed description for Heartrate.cpp 
*
*  This is written for the heart rate sensor the company library. Mainly used for real 
*  time measurement of blood oxygen saturation, based on measured values calculate heart rate values.
* 
* @author linfeng(Musk.lin@dfrobot.com)
* @version  V1.1
* @date  2016-8-16
* @version  V1.0
* @date  2015-12-24
*/
#define heartratePin A1
#include "DFRobot_Heartrate.h"

DFRobot_Heartrate heartrate(DIGITAL_MODE); ///< ANALOG_MODE or DIGITAL_MODE

void setup() {
  Serial.begin(115200);
}

void loop() {
  uint8_t rateValue;
  heartrate.getValue(heartratePin); ///< A1 foot sampled values
  rateValue = heartrate.getRate(); ///< Get heart rate value 
  if(rateValue)  {
    Serial.println(rateValue);
  }
  delay(20);
}

/******************************************************************************
  Copyright (C) <2015>  <linfeng>
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  Contact: Musk.lin@dfrobot.com
 ******************************************************************************/


结果

通过串口打印心率值。
心率值.png


教程2

使用Arduino板测试血氧饱和度值,打印心率波形。可以把传感器直接放在手指、手腕等地方。选择样例代码 DFRobot_Heartrate_Analog_Mode

注:此例程需要把传感器上的开关拨向“A”档


准备

  • 硬件
    • UNO x1
    • 心率传感器 x1
    • 杜邦线 若干
  • 软件



样例代码


/*!
* @file HeartMap.ino
* @brief Print heart rate value
*
*  This is Print heart rate value
* @author linfeng(Musk.lin@dfrobot.com)
* @version  V1.0
* @date  2016-8-16
*/
#define heartPin A1
void setup() {
  Serial.begin(115200);
}
void loop() {
  int heartValue = analogRead(heartPin);
  Serial.println(heartValue);
  delay(20);
}     
/******************************************************************************
  Copyright (C) <2015>  <linfeng>
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  Contact: Musk.lin@dfrobot.com
 ******************************************************************************/
                        


结果

使用Arduino1.6.5以上版本,菜单栏中选择 Tools-> Serial Plotter,通过串口绘图器观察,可以看到血氧波形。
串口打印心率值.png
扩展阅读:心电图

教程3

使用Arduino板测试血氧饱和度值,在LCD上输出心率波形。可以把传感器直接放在手指、手腕等地方。 选择样例代码 DFRobot_Heartrate_LCD_Display

注:此例程需要把传感器上的开关拨向“A”档

准备


效果视频

在LCD上显示血氧波形以及心率值


样例代码

点击下载库文件DFRobot_Heartrate.hLcd12864Shield.h


/*!
* @file HeartrateDisplay
* @brief  Waves of blood oxygen saturation and heart rate value is displayed on the LCD
*
* @brief  Waves of blood oxygen saturation and heart rate value is displayed on the LCD
* 
* @author linfeng(Musk.lin@dfrobot.com)
* @version  V1.1
* @date  2016-8-16
* @version  V1.0
* @date  2015-12-24
*/

#define heartratePin A1
#include "DFRobot_Heartrate.h"
#include "Lcd12864Shield.h"

uint16_t heartrateValue=0,heartrateValueLast=0;
uint8_t count;

Lcd12864Shield lcddisplay(10,9,8,13,11);
DFRobot_Heartrate heartrate(DIGITAL_MODE); ///< ANALOG_MODE or DIGITAL_MODE

char wordDisplay[]=  ///< word
{
0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,
0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,
0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xC0,0x80,
0xC0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,///< ♥
};
char letterDisplay[]= ///< character
{
	
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,///< 0
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,///< 1
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,
0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,///< 2
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,
0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,///< 3
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,///< 4
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,
0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,///< 5
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,
0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,///< 6
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,
0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,///< 7
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,///< 8
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,///< 9
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,///< =
};



void lcdBegin(void)
{
  lcddisplay.initialLcd(); ///< Enable LCD
  lcddisplay.clearScreen(); ///< Clear LCD
  lcddisplay.drawXLine(48); ///< Draw a horizontal line
  lcddisplay.drawYLine(7); ///< Draw a vertical line
  lcddisplay.drawWord(7,10,0,wordDisplay); ///< Displays a word
  lcddisplay.drawLetter(7,30,10,letterDisplay); ///< Displays a character
}

void setup() {
  Serial.begin(115200);
  lcdBegin();
}

void loop() {
  unsigned char rateValue;  
  heartrateValueLast = heartrateValue;
  heartrateValue = heartrate.getValue(heartratePin);  ///< A1 foot sampled values
  count = heartrate.getCnt();
  if(count)
  {
    lcddisplay.drawYLine(count+8,heartrateValue/24,heartrateValueLast/24); ///< Draw a vertical line,Step 24
  }
  else
  {
    lcddisplay.drawYLine(count+8,heartrateValue/24,heartrateValueLast/24);
  }
 
  rateValue = heartrate.getRate(); ///< Get heart rate value   
  if(rateValue)
  {
    lcddisplay.drawLetter(7,50,3,rateValue,letterDisplay);  ///< Display values
    Serial.println(rateValue);
  }  
  delay(20);  
}

/******************************************************************************
  Copyright (C) <2015>  <linfeng>
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  Contact: Musk.lin@dfrobot.com
 ******************************************************************************/
 
                            


结果

显示血氧波形,以及心率值。


常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!


更多

原理图
元件布局图
SON1303 Datasheet
SON3130 Datasheet


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱