Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Monitor de frecuencia cardíaca MAX30102 con Arduino Nano y LCD 16x2

Componentes y suministros

Herramientas necesarias

Aplicaciones y servicios en línea

Sobre el proyecto

Este monitor de frecuencia cardíaca utiliza el sensor MAX30102 para medir pulsaciones por minuto (BPM) y mostrar los resultados en una pantalla LCD 16x2. La primera fila muestra el promedio de BPM y la segunda fila el valor de la señal infrarroja reflejada, que debe permanecer constante para lecturas precisas.

El algoritmo utilizado es el PBA (Penpheral Beat Amplitude) y se recomienda fijar el sensor al dedo con una goma elástica para mantener presión constante y evitar lecturas erráticas.

Conexiones de hardware

Código

/* Detección óptica de frecuencia cardíaca (Algoritmo PBA) con MAX30105
   By: Bennu @ MH-ET LIVE
   Fecha: 2 de octubre de 2017
   https://github.com/MHEtLive/MH-ET-LIVE-max30102
*/

#include <Wire.h>
#include "MAX30105.h"
#include <LiquidCrystal.h>
#include "heartRate.h"

MAX30105 particleSensor;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const byte RATE_SIZE = 4; // Aumentar para más promediado
byte rates[RATE_SIZE];
byte rateSpot = 0;
long lastBeat = 0;
float beatsPerMinute;
int beatAvg;

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  Serial.println("Inicializando...");

  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
    Serial.println("MAX30105 no encontrado. Verifique conexiones/alimentación.");
    while (1);
  }

  Serial.println("Coloque el dedo índice en el sensor con presión constante.");
  particleSensor.setup();
  particleSensor.setPulseAmplitudeRed(0x0A);
  particleSensor.setPulseAmplitudeGreen(0);
}

void loop() {
  long irValue = particleSensor.getIR();

  if (checkForBeat(irValue) == true) {
    long delta = millis() - lastBeat;
    lastBeat = millis();
    beatsPerMinute = 60 / (delta / 1000.0);

    if (beatsPerMinute < 255 && beatsPerMinute > 20) {
      rates[rateSpot++] = (byte)beatsPerMinute;
      rateSpot %= RATE_SIZE;
      beatAvg = 0;
      for (byte x = 0; x < RATE_SIZE; x++) beatAvg += rates[x];
      beatAvg /= RATE_SIZE;
    }
  }

  Serial.print("IR=");
  Serial.print(irValue);
  Serial.print(", BPM=");
  Serial.print(beatsPerMinute);
  Serial.print(", Avg BPM=");
  Serial.print(beatAvg);
  if (irValue < 50000) Serial.print(" ¿Sin dedo?");
  Serial.println();

  lcd.setCursor(0, 0);
  lcd.print("BPM: ");
  lcd.print(beatAvg);
  lcd.setCursor(0, 1);
  lcd.print(" IR: ");
  lcd.print(irValue);
}

Esquemáticos

Diagrama de conexiones disponible en el proyecto original.

Proceso de manufactura

  1. Sistema de Monitorización Remota de Frecuencia Cardíaca con Alertas AWS IoT
  2. Crea un Impresionante Sistema Ambilight para Monitor con Arduino
  3. Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
  4. Monitor de Frecuencia Cardíaca IoT en Tiempo Real con Arduino y MAX30100
  5. Construye un Monitor de Frecuencia Cardíaca Preciso con Fotoresistencia y Arduino
  6. Monitor de voltaje de termopar para piloto de calentador de agua: alertas seguras por email y SMS
  7. Sistema Avanzado de Monitorización Doméstica con Arduino Mega y Sensores IoT
  8. Construye una Estación Meteorológica Arduino Fiable con Sensores DHT
  9. Construye un Monitor de Energía Inteligente Fiable con Arduino UNO – Guía Paso a Paso
  10. Construye un Juego Arcade Clásico con Arduino LCD, Zumbador y Joystick
  11. Sensores de Frecuencia Cardíaca Integrados en Ropa Inteligente: Monitorización Fiable