Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Moniteur de fréquence cardiaque MAX30102 avec Arduino Nano et écran LCD 16x2

Composants nécessaires

Outils

Principe de fonctionnement

Le MAX30102 est un capteur optique qui mesure le rythme cardiaque par photopléthysmographie (PPG). Il émet une lumière verte/rouge et détecte les variations d'absorption sanguine au niveau du doigt. L'Arduino Nano lit les données via I²C (broches A4/SDA, A5/SCL), calcule les battements par minute (BPM) grâce à un algorithme de détection de pics (PBA), et affiche la moyenne sur 4 mesures sur la première ligne du LCD. La deuxième ligne affiche la valeur brute du signal infrarouge (IR), qui doit rester stable pour une mesure fiable.

Câblage

Code Arduino

#include 
#include "MAX30105.h"
#include 
#include "heartRate.h"

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

const byte RATE_SIZE = 4;
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("Initialisation...");

  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
    Serial.println("MAX30105 non trouvé. Vérifiez le câblage.");
    while (1);
  }
  Serial.println("Placez l'index sur le capteur avec une pression constante.");
  particleSensor.setup();
  particleSensor.setPulseAmplitudeRed(0x0A);
  particleSensor.setPulseAmplitudeGreen(0);
}

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

  if (checkForBeat(irValue)) {
    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(" Doigt absent?");
  Serial.println();

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

Bibliothèques requises

Conseils pour une mesure précise

Processus de fabrication

  1. Système de surveillance cardiaque à distance avec alertes AWS IoT
  2. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  3. Créer des animations et jeux sur LCD avec Arduino UNO
  4. Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
  5. Construire un Moniteur de Fréquence Cardiaque Précis avec une Photorésistance et Arduino
  6. Sécurisez votre chauffe-eau : Moniteur de tension thermocouple pour veilleuse pilote
  7. Système de Surveillance Domestique Avancé avec Arduino Mega et Capteurs IoT
  8. Construire une Station Météo Arduino Fiable avec Capteurs DHT
  9. Capteurs de fréquence cardiaque intégrés dans les vêtements intelligents : surveillance portable fiable