Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

MAX30102 hartslagmonitor bouwen met Arduino Nano en 16x2 LCD

Onderdelen en benodigdheden

  • 1× Arduino Nano R3
  • 1× MAX30102 hartslagsensor
  • 1× Adafruit RGB Backlight LCD 16x2
  • 1× Draaipotentiometer (algemeen)

Nodige tools en machines

  • Soldeerbout (algemeen)

Apps en online services

  • Arduino IDE

Over dit project

Deze eenvoudige hartslagmonitor gebruikt de MAX30102-sensormodule. De code is gebaseerd op Arduino-bibliotheken en toont de waarden op een 16x2 LCD-scherm. De eerste regel geeft de gemiddelde hartslag per minuut (BPM), de tweede regel de waarde van de gereflecteerde infrarode straal. Deze waarde moet constant blijven voor nauwkeurige metingen.

Code

/* Optische hartslagdetectie (PBA-algoritme) met MAX30105 Breakout
   Door: Bennu @ MH-ET LIVE
   Datum: 2 oktober 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; // Verhoog voor meer gemiddeling
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("Initialiseren...");
  
  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
    Serial.println("MAX30105 niet gevonden. Controleer bedrading/voeding.");
    while (1);
  }
  Serial.println("Plaats je vingertop op de sensor met constante druk.");
  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(" Geen vinger?");
  Serial.println();
  
  lcd.setCursor(0, 0);
  lcd.print("BPM: ");
  lcd.print(beatAvg);
  lcd.setCursor(0, 1);
  lcd.print(" IR: ");
  lcd.print(irValue);
}

Schema

MAX30102 hartslagmonitor bouwen met Arduino Nano en 16x2 LCD

Productieproces

  1. Remote Hartslagmonitoringssysteem met AWS IoT-waarschuwingen
  2. Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
  3. Bouw Boeiende LCD Animaties & Games met Arduino UNO
  4. Real-time IoT hartslagmonitor met Arduino en MAX30100
  5. Bouw een nauwkeurige hartslagmonitor met een fotoweerstand en Arduino
  6. Veilige CV-ketelbewaking: Thermocouple-spanningsmonitor voor pilootvlammen
  7. Geavanceerd thuismonitoringssysteem met Arduino Mega en IoT-sensoren
  8. Bouw een betrouwbare Arduino-weerstation met DHT-sensoren
  9. Bouw een Betrouwbare Slimme Energiemonitor met Arduino UNO – Stapsgewijze Handleiding
  10. Bouw een Klassieke Arduino LCD Arcade Game met Buzzer en Joystick
  11. Geïntegreerde hartslagsensoren in slimme kleding: betrouwbare draagbare monitoring