🧪 Novos tutoriais em andamento — do braço robótico ao sensor
Ir para o conteúdo
Compre este produtoLoja oficialSite oficial

Tutorial de utilização com Arduino ​

Introdução ao sensor ​

JUXI_HeartRate_SPO2 é um módulo sensor de frequência cardíaca e SpO2 baseado no chip MAX30102, com algoritmo integrado que emite diretamente os valores de frequência cardíaca e saturação de oxigénio no sangue.

Principais funções:

  • Medição da saturação de oxigénio no sangue (SpO2)
  • Medição da frequência cardíaca (batimentos/minuto)
  • Medição da temperatura da placa
  • Suporte ao modo de comunicação I2C

Tutorial de utilização com Arduino ​

Preparação de hardware ​

Materiais necessários
Placa de desenvolvimento Arduino (Uno/ESP32, etc.)
Sensor JUXI_HeartRate_SPO2
Vários cabos jumper
Cabo USB (liga o Arduino ao computador)

Instalação da biblioteca ​

  1. Descarregue o ficheiro da biblioteca JUXI_HeartRate_SPO2.zip
  2. Descompacte o ficheiro e copie-o para o diretório de bibliotecas do Arduino:
  • Windows: C:\Users\<utilizador>\Documents\Arduino\libraries\
  • Mac: ~/Documents/Arduino/libraries/
  • Linux: ~/Arduino/libraries/
  1. Reinicie o Arduino IDE

Envio do código de exemplo ​

Atenção: ao enviar o código, ligue apenas o Arduino ao computador; não ligue o módulo de monitorização de frequência cardíaca e SpO2 ao Arduino!

Opção 1: exemplo no modo UART ​

Comente o #define I2C_COMMUNICATION e envie o código para o Arduino.

cpp
#include "JUXI_HeartRate_SPO2.h"

// I2C 地址
#define I2C_ADDRESS 0x57

// 创建传感器对象,I2C模式
JUXI_HeartRate_SPO2_I2C sensor(&Wire, I2C_ADDRESS);

void setup() {
  Serial.begin(9600);

  // 初始化传感器
  while (!sensor.begin()) {
    Serial.println("传感器初始化失败,请检查连接!");
    delay(1000);
  }
  Serial.println("传感器初始化成功!");

  // 启动数据采集
  sensor.sensorStartCollect();
}

void loop() {
  // 读取心率和血氧数据
  sensor.getHeartbeatSPO2();

  // 输出血氧饱和度
  Serial.print("血氧饱和度: ");
  Serial.print(sensor._sHeartbeatSPO2.SPO2);
  Serial.println(" %");

  // 输出心率
  Serial.print("心率: ");
  Serial.print(sensor._sHeartbeatSPO2.Heartbeat);
  Serial.println(" 次/分钟");

  // 读取并输出温度
  Serial.print("板载温度: ");
  Serial.print(sensor.getTemperature_C());
  Serial.println(" ℃");

  Serial.println("------------------------");

  // 传感器每4秒更新一次数据
  delay(4000);
}
Ligação de hardware ​

Comunicação I2C

Diagrama

Diagrama

Pino do sensorArduino
VCC5V/3.3V
GNDGND
SDASDA/A4
SCLSCL/A5
  • Coloque a chave seletora do módulo de monitorização de frequência cardíaca e SpO2 na posição IIC!!!
  • Utilize um cabo de dados para ligar o Arduino ao computador

Resultado da execução: ​

  1. Abra Arduino - Ferramentas - Monitor Série

Defina o débito em bauds para 9600

Diagrama

  1. Abra o assistente de depuração de porta série

Assistente de depuração de porta série uartassist5.15.zip

Selecione a porta série

Defina o débito em bauds para 9600

Bits de dados 8, bit de paragem 1, paridade NONE, controlo de fluxo NONE

Nas configurações de receção e de envio, selecione ASCII

Diagrama

Descrição da API ​

FunçãoDescrição
begin()Inicializa o sensor; devolve true/false
getHeartbeatSPO2()Lê os dados de frequência cardíaca e SpO2 e armazena-os na estrutura _sHeartbeatSPO2
getTemperature_C()Lê a temperatura da placa (graus Celsius)
sensorStartCollect()Inicia a recolha de dados (o sensor acende)
sensorEndCollect()Para a recolha de dados (o sensor apaga)

Descrição dos dados ​

  • SPO2 (saturação de oxigénio no sangue): faixa normal 95% - 100%; o valor -1 indica inválido
  • Heartbeat (frequência cardíaca): faixa normal 60 - 100 batimentos/minuto; o valor -1 indica inválido
  • Causa dos valores inválidos: dedo mal colocado ou dados ainda não estabilizados

Precauções de utilização ​

Técnicas de medição ​

  1. Coloque o dedo corretamente
  • Apoie o dedo levemente sobre o sensor, cobrindo os dois LEDs
  • Não pressione com força, para não afetar a circulação sanguínea
  • Mantenha o dedo estável, sem se mover
  1. Aguarde a estabilização dos dados
  • No início da medição, os valores podem ficar instáveis
  • Recomenda-se aguardar 10-30 segundos, até os dados estabilizarem, antes de ler
  • O sensor atualiza os dados a cada 4 segundos
  1. Requisitos de ambiente
  • Evite luz forte a incidir diretamente sobre o sensor
  • Mantenha a temperatura ambiente adequada
  • Mantenha o ambiente tranquilo durante a medição

Interpretação dos dados ​

Faixa de SpO2Descrição
95% - 100%Normal
90% - 94%Hipóxia ligeira
< 90%Hipóxia; recomenda-se procurar assistência médica
Faixa de frequência cardíacaDescrição
60 - 100 batimentos/minFaixa normal em adultos
< 60 batimentos/minBradicardia
> 100 batimentos/minTaquicardia

Perguntas frequentes ​

P1: o que fazer se a inicialização do sensor falhar? ​

R:

  1. Verifique se a cablagem está correta (SDA em GPIO2/A4, SCL em GPIO3/A5)
  2. Confirme se a alimentação está normal (3.3V ou 5V)
  3. Utilize o comando i2cdetect -y 1 para detetar o dispositivo
  4. Confirme se a chave seletora do sensor está na posição IIC

P2: o que fazer se os dados continuarem a apresentar -1? ​

R:

  1. Confirme se o dedo está corretamente colocado sobre o sensor
  2. Aguarde alguns segundos para os dados estabilizarem
  3. Verifique se sensorStartCollect() foi chamado para iniciar a recolha
  4. Confirme se o LED indicador do sensor está aceso

P3: o que fazer se os dados estiverem imprecisos? ​

R:

  1. Certifique-se de que o dedo cobre completamente a área ótica do sensor
  2. Mantenha o dedo imóvel, sem se mover
  3. Aguarde mais de 30 segundos para os dados estabilizarem
  4. Faça várias medições e calcule a média

P4: quais são as placas Arduino suportadas pelo sensor? ​

R: Compatíveis:

  • Arduino Uno/Mega
  • ESP8266
  • ESP32
  • Outras placas de desenvolvimento compatíveis com o ambiente Arduino

Localização dos ficheiros de exemplo ​

Exemplo para Arduino ​

text
JUXI_HeartRate_SPO2/
└── examples/
    └── gainHeartbeatSPO2/
        └── gainHeartbeatSPO2.ino