blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Aplicações
  • Descrição do projeto
  • Considerações finais
  • Sobre o Autor
Componentes Eletronicos

Medidor de frequência cardíaca KY039 com datalogger

Eletrogate 24 de outubro de 2017Atualizado em: 15 abr 202210 min

Introdução

Neste artigo vamos aprender a usar o sensor de batimentos cardíacos e montar um circuito com datalogger para armazenar séries históricas de frequência cardíaca. O datalogger foi assunto deste post, e no texto a seguir vamos focar no sensor e na medição da frequência cardíaca.

O sensor KY-039 não é o mais preciso e estável do mercado. Pode ser desafiador montar um medidor com ele que seja fiável. Neste artigo mostramos como ele funciona e um exemplo de como interfaceá-lo com Arduino e um datalogger. Outros sensores podem ser usados no lugar do KY-039 para salvar os dados no datalogger com pequenas alterações no código.

Atenção: Este artigo é para fins didáticos apenas. Para aplicações reais, deve ser utilizar um medidor homologado e certificado. O presente post tem por objetivo explicar o funcionamento e mostrar um exemplo de como esse tipo de sensor pode ser interfaceado com o Arduino, mas não se trata de um projeto para aplicações reais.

O sensor de frequência cardíaca é baseado em um emissor e um receptor de infravermelho. O princípio de funcionamento é o seguinte: Quando o coração bate, a pressão sanguínea e, consequentemente o volume de sangue nas veias, aumenta momentaneamente. A cada batida, é como se uma pequena variação de volume e pressão acontecesse. O sensor funciona emitindo um feixe infravermelho que atravessa o dedo do usuário. Quando a pressão do sangue aumenta, a quantidade de luz infravermelha que chega ao receptor (fototransistor) atravessando o dedo é diferente de quando a pressão/volume do sangue está mais baixa. Essa diferença é traduzida em variações no sinal de saída do fototransistor.

O sensor é mostrado na figura abaixo:

Medidor de batimentos cardíacos com arduino

Medidor de batimentos cardíacos com arduino

Especificações:

  • Tensão de trabalho: 5V;
  • Dimensões: 25mm x 22mm x 17mm;
  • Tipo de sensor: Reflexivo infravermelho (IR)

Uma observação importante é não deixar luz artificial (de lâmpadas incandescentes ou fluorescentes) incidir diretamente sobre o sensor, pois a oscilação (No Brasil 60Hz) pode interferir no valor lido pelo receptor infravermelho.

Nos projetos disponíveis na internet, em geral os desenvolvedores tiveram dificuldades para trabalhar com esse sensor, devido à variação de saída ser muito pequena e instável(sujeita a variações nas condições ambientes, no posicionamento do sensor/receptor e na forma com que o dedo segura o sensor).

Como firmware e montagem base em questão, é possível medir as variações na saída do sensor, mas ter uma medição precisa pode ser desafiador. Ao final do artigo, damos algumas dicas para que você incremente e possa melhorar o projeto. Damos também indicações de outros sensores que podem ser avaliados para se obter maior precisão.

Datalogger para armazenar os dados

 

Vamos usar um cartão microSD para armazenar os dados de frequência cardíaca durante o tempo em que o sistema estiver ligado. Assim, mesmo após desligarmos, teremos uma base dados que pode ser usada para plotar gráficos e fazer análises. O datalogger já foi tema aqui do blog, caso você tenha perdido, acesse aqui o artigo original e aprende a como gravar e ler dados de um cartão microSD com arduino.

Recapitulando bem resumidamente, vamos utilizar um módulo microSD que possui uma entrada para cartões Micro SD e 6 pinos de interface disponibilizados para comunicação com Arduino. A inteface utilizada pelo módulo é o protocolo SPI(protocolo de comunicação usado para ler e escrever dados na memória Flash do cartão). Assim, podemos ligar o Arduino e enviar informações para serem armazenadas e também é possível fazer procedimentos de leitura para apresentar os dados gravados em mostradores como displays ou na interface serial.


Aplicações

Basicamente, o medidor de frequência é usada para construir pequenos dispositivos para medir a frequência cardíaca. Dependendo de como você implementar, pode ser um equipamento para usar durante caminhadas/corridas, por exemplo, ou qualquer outro tipo de variação.


Descrição do projeto

Nesse projeto, vamos perseguir o seguinte objetivo:

Desenvolver e montar um medidor de frequência cardíaca que salva o histórico de frequência cardíaca em um log no cartão SD.

 

Aspectos de Hardware

 

Como dito no início, nosso circuito consiste em duas partes: O circuito para o datalogger e o circuito para o sensor de frequência cardíaca em si. O circuito do datalogger está bem apresentado e estudado neste artigo. No diagrama abaixo, mostramos o datalogger integrado com o sensor de frequência cardíaca:

Medidor de frequencia cardiaca com KY039

Medidor de frequência cardiaca com KY039

Chamamos a atenção para os três divisores de tensão que são necessários para conectar  os pinos do cartão SD com o Arduino (um conversor de nível lógico também pode ser usado).

As ligações do sensor Ky039 são bem simples. Os pinos de alimentação podem ser ligados no 5V e GND do Arduino. O pino S, deve ser ligado no A0, que será usado em nosso programa para fazer as leituras.

A lista de materiais é a seguinte:

  • Arduino UNO;
  • Sensor de frequência cardíaca KY039;
  • Cartão SD;
  • Módulo Micro SD Card;
  • 3 Resistores de 3K3;
  • 3 Resistores de 2k2;

Uma dica importante. Para funcionamento efetivo, é preciso que o raio infravermelho esteja bem alinhado com o receptor, como mostrado na figura abaixo:

Posicionamento do KY039

Posicionamento do KY039. Créditos: uttereducation.com

Aspectos de Software

 

O nosso software será o seguinte:

#include <SPI.h>
#include <SD.h>
#include <stdlib.h>

//Variaveis para cartao SD
const int CS = 4;
char dataString[7];
int sensorPin = 0;
int period = 200;

int HearHate_porSegundo=0;
int HearHate_porMin = 0;
int count = 0;
int countBeat=0;
const int Calibration_Value = 10;

float oldValue = 0;
float rawValue = 0;

File meuArquivo;

void setup()
{
 
  pinMode(CS, OUTPUT);
  Serial.begin(9600);
  delay(100);
  
  Serial.print("Inicializando cartao SD...");
  if (!SD.begin(CS)) 
  {
    Serial.println("Falha na Inicializacao!");
    return;
  }
  Serial.println("Inicializacao terminada");
  delay(100);
  
}


void loop()
{
   rawValue = analogRead (sensorPin);

   if( abs(rawValue - oldValue) >= Calibration_Value)
   {
      countBeat++;
   }
   count++;

   //cada 1 segundo faz essa conta
   if(count == 10)
   {
      HearHate_porSegundo = countBeat;
      HearHate_porMin =60*countBeat;
      Serial.print("HearHate_porSegundo");
      Serial.println(HearHate_porSegundo);
      Serial.print("HearHate_porMin");
      Serial.println(HearHate_porMin);
      count=0;
      countBeat=0;
      salvaDadosLogger(HearHate_porMin);
   }
   
  oldValue = rawValue;
  delay(period);
}

bool salvaDadosLogger(int HearHate_porMin)
{
  dtostrf(HearHate_porMin,5,2,dataString);
  
  if (meuArquivo = SD.open("log.txt",FILE_WRITE)) 
  {
    
    //Escreve no cartao SD por meio do objeto meuArquivo 
    meuArquivo.println(dataString);
    meuArquivo.close();
  } 
  else 
  {
    // se o arquivo nao abrir, mostra msg de erro
    Serial.println("Erro ao abrir log.txt");
  }
}

 

Na função void Setup() nós inicializamos o cartão SD e a porta serial. O código consiste nas funções void loop(), em que constantemente lemos o valor de saída do sensor e tentamos identificar variações. Experimentalmente observamos que cada batimento cardíaco provoca uma variação em torno de 10 no valor lido na porta analógica. Esse foi o valor considerado como limiar para identificar que houve um batimento ou não.

A cada segundo, chamamos a função salvaDadosLogger(HearHate_porMin), passando como parâmetro o valor calculado de frequência por minuto. Essa função salvo a informação no cartão SD e o software volta ao void Loop para continuar a identificar variações na frequência de batimentos.

Essa simples montagem e firmware identifica as variações do sensor e salva os dados no SD, mas para conseguir medições estáveis e mais precisa, melhorias são necessárias. Em geral, outros projetos na internet também apresentam medições com muitas variações. Caso você realmente decida por usar esse sensor, algumas possibilidades são:

  • Usar um amplificador para aumentar o sinal de saída do sensor;
  • Implementar uma função de calibração automática para atualizar o limiar de medição(no nosso caso, usamos o valor 10 observado experimentalmente por simplicidade);
  • Trocar o fototransistor ou LED infravermelho por outros componentes de maior sensibilidade. A maior parte da luz emitida pelo led infravermelho é absorvida pelo dedo. Assim, um receptor mais sensível ou um transmissor com maior potência podem ajudar a deixar as medições melhores;

Alguns outros projetos interessantes são(o segundo link é ótimo para observar como variações nas condições de iluminação ambiente alteram o comportamento do sensor):

  • Finger Heartbeat Detection Sensor Module (KY-039);
  • Arduino RYW-039 Heart Rate Monitor;
  • Finger Measuring Heartbeat Module;
  • Outra opção de sensor;
  • Sensor de pulso caseiro;

 


Considerações finais

Esperamos que o artigo tenha ajudado a ensinar novos conteúdos. Embora o KY-039 não seja muito preciso e não haja exemplos de projetos realmente funcionais com ele, trata-se de um sensor bem didático em relação ao seu funcionamento e também bem simples em relação ao seu circuito.

Recomendamos a leitura das demais referências e projetos que indicamos para saber as dificuldades e soluções que outros desenvolvedores encontraram. Se tiver alguma dica ou exemplo adicional, compartilhe conosco!

Referências:

  • Sensor infravermelho 1;
  • Sensor infravermelho 2;
  • Sensor infravermelho 3;
  • Sobre como usar o KY039;

Sobre o Autor


Vitor Vidal

Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.


Eletrogate

24 de outubro de 2017 Atualizado em: 15 abr 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Módulos Wifi

Placa de Desenvolvimento Arduino Uno WiFi

Eletrogate24 de maio de 2022

Neste post, você conhecerá uma placa que une o melhor das baseadas em ESP8266 com o melhor da família de placas baseadas no ATmega328p: a Uno WiFi.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Radar/Sonar Ultrassônico para seus Projetos

Eletrogate19 de maio de 2022

Neste projeto, iremos construir um Radar (‘Radio Detection And Ranging’) ultrassônico com a Arduino e o software Processing. Iremos usar o conhecimento em programação com o sensor ultrassônico no Arduino obtido no post “Sensor Ultrassônico HC-SR04 com Arduino”.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Projetos

Levitação Ultrassônica com Arduino

Eletrogate17 de maio de 2022

Não é nenhuma varinha mágica ou encantamento como “Wingardium Leviosa” que você vai precisar para esse projeto. Com um Arduino, um driver de motor ponte H e um sensor de distância ultrassônico HC-SR04 você consegue criar uma máquina capaz de fazer objetos levitarem.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Modelagem 3D

Conheça o Tinkercad

Eletrogate12 de maio de 2022

Se você já pensou em criar um projeto eletrônico, mas não tinha os componentes necessários e queria fazer um teste antes, este post foi feito pra você! Neste post, iremos conhecer a plataforma Tinkercad. Através dela, você poderá testar projetos, circuitos eletrônicos, códigos, criar designs 3D e muito mais.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2022 - Todos os direitos reservados. Termos de uso e Política de privacidade.