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
- Descarregue o ficheiro da biblioteca JUXI_HeartRate_SPO2.zip
- 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/
- 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.
#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


| Pino do sensor | Arduino |
|---|---|
| VCC | 5V/3.3V |
| GND | GND |
| SDA | SDA/A4 |
| SCL | SCL/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:
- Abra Arduino - Ferramentas - Monitor Série
Defina o débito em bauds para 9600

- 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

Descrição da API
| Função | Descriçã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
- 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
- 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
- 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 SpO2 | Descrição |
|---|---|
| 95% - 100% | Normal |
| 90% - 94% | Hipóxia ligeira |
| < 90% | Hipóxia; recomenda-se procurar assistência médica |
| Faixa de frequência cardíaca | Descrição |
|---|---|
| 60 - 100 batimentos/min | Faixa normal em adultos |
| < 60 batimentos/min | Bradicardia |
| > 100 batimentos/min | Taquicardia |
Perguntas frequentes
P1: o que fazer se a inicialização do sensor falhar?
R:
- Verifique se a cablagem está correta (SDA em GPIO2/A4, SCL em GPIO3/A5)
- Confirme se a alimentação está normal (3.3V ou 5V)
- Utilize o comando
i2cdetect -y 1para detetar o dispositivo - Confirme se a chave seletora do sensor está na posição IIC
P2: o que fazer se os dados continuarem a apresentar -1?
R:
- Confirme se o dedo está corretamente colocado sobre o sensor
- Aguarde alguns segundos para os dados estabilizarem
- Verifique se
sensorStartCollect()foi chamado para iniciar a recolha - Confirme se o LED indicador do sensor está aceso
P3: o que fazer se os dados estiverem imprecisos?
R:
- Certifique-se de que o dedo cobre completamente a área ótica do sensor
- Mantenha o dedo imóvel, sem se mover
- Aguarde mais de 30 segundos para os dados estabilizarem
- 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
JUXI_HeartRate_SPO2/
└── examples/
└── gainHeartbeatSPO2/
└── gainHeartbeatSPO2.ino
