Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Monitor Cardíaco ECG Sem Fio: Wearable com Arduino Nano e nRF24L01

Componentes e Materiais

Componente Quantidade
Dispositivo uECG (mede BPM, envia via nRF24) 1
Arduino Nano R3 1
Módulo nRF24L01 (genérico) 1
Anel NeoPixel WS2812 5050 RGB (16 LEDs) 1
Bateria LiPo 200+ mAh 1

Ferramentas Necessárias

Sobre o Projeto

Esta é a segunda iteração do meu monitor cardíaco. A primeira mostrava batimentos no peito, conectada ao uECG por fio — não era prático: fio atrapalhava o sensor ao correr, e você não via bem os LEDs.

Esta versão resolve tudo: é usada no pulso (visível enquanto corre), sem fio (sem distorção de leitura), e funciona durante exercício intenso.

1. Componentes

O uECG faz o trabalho pesado: mede ECG e calcula BPM onboard. No modo "direct link", envia dados (ECG alta resolução + BPM) via protocolo compatível com nRF24 genérico. O Arduino Nano tem tamanho ideal para caber sob o anel de LEDs.

2. Esquemático

Conexão do nRF24 requer 7 fios (SPI + CE + CSN + alimentação). Para tamanho compacto, remova headers e solde direto nos pads.

Lista de conexões:

Importante: MOSI/MISO/SCK devem ir nos pinos D11/D12/D13 (SPI hardware). Outros pinos podem ser alterados no código.

3. Programa

A complexidade está na configuração do canal RF. uECG e nRF24 usam ordem de bits diferente no endereço do pipe. Função swapbits() inverte a ordem dos bits de cada byte.

Lógica: lê pacotes → byte 5 = BPM → filtra (5 leituras consecutivas iguais, pois CRC desabilitado) → converte BPM em cor + nº de LEDs acesos.

Código Completo (bpm_watch.ino)

#include 
#ifdef __AVR__
#include 
#endif
#include 
#include 
#include 
#include 

int rf_cen = 9;
int rf_cs = 8;
RF24 rf(rf_cen, rf_cs);

uint8_t pipe_rx[8] = {0x0E, 0xE6, 0x0D, 0xA7, 0, 0, 0, 0};

#define PIN 5
#define NUMPIXELS 16
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

uint8_t swapbits(uint8_t a) {
  uint8_t v = 0;
  if(a & 0x80) v |= 0x01;
  if(a & 0x40) v |= 0x02;
  if(a & 0x20) v |= 0x04;
  if(a & 0x10) v |= 0x08;
  if(a & 0x08) v |= 0x10;
  if(a & 0x04) v |= 0x20;
  if(a & 0x02) v |= 0x40;
  if(a & 0x01) v |= 0x80;
  return v;
}

void setup() {
  pixels.begin();
  for(int i=0;i 0) rf_bpm = bb;
  }

  long ms = millis();
  if(ms - last_pix_upd > 10) {
    last_pix_upd = ms;
    int bpm = rf_bpm;
    int max_bright = 160;
    float dd = 25;
    float t1 = 90, t2 = t1+dd, t3 = t2+dd, t4 = t3+dd;
    int r, g, b;

    if(bpm < t1) { r=0; g=0; b=max_bright; }
    else if(bpm < t2) { r=0; g=max_bright*(bpm-t1)/dd; b=max_bright-g; }
    else if(bpm < t3) { r=max_bright*(bpm-t2)/dd; g=max_bright-r; b=r/4; }
    else if(bpm < t4) { r=max_bright; g=0; b=max_bright/2 - max_bright*(bpm-t3)/(2*dd); }
    else { r=max_bright; g=0; b=0; }

    int on_pixels = (bpm-80)/8; // Mostra só acima de 80 BPM (corrida)
    for(int i=0;i

4. Montagem da Pulseira

Usei cola térmica: Nano encaixa no anel externo, nRF24 no interno, bateria no meio. Costurei em uma pulseira de aterramento (sobra de estação de solda).

5. Testes

Corri com o dispositivo. Configurado para 192 BPM = todos LEDs acesos. Surpresa: excedi 192 BPM em minutos, sem perceber. O sensor mostrou desaceleração gradual ao parar — confiável. Descobri que meu limite cardíaco é alto devido a treino contínuo desde adolescência (tive problemas cardíacos que "sumiram"). Pergunta: meu BPM é alto por condição passada ou estou exagerando? Vou ajustar o limite no monitor ou treinar menos intensamente.

P.S. O uECG também funciona bem como sensor EMG — veja meu projeto "Robotic Hand Control".

Esquemático

Arquivo Fritzing: nrf24_led_ring_o2Gij5oigT.fzz

Processo de manufatura

  1. Renesas e Altran Lançam Primeiro Relógio de Pulso UWB de Baixa Taxa de Pulso para Distanciamento Social
  2. Construa uma Estação Meteorológica e de Qualidade do Ar com Raspberry Pi, InfluxDB e Grafana
  3. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  4. Monitore a Temperatura da Sua Casa com Dashboard no Raspberry Pi
  5. Sistema Remoto de Monitoramento de Frequência Cardíaca com Alertas AWS IoT
  6. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  7. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  8. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  9. Sensores de Frequência Cardíaca Integrados em Roupas Inteligentes: Monitoramento Vestível Confiável
  10. Usinagem CNC: Fabricação de Precisão de Materiais e Componentes