Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100

Komponenten und Materialien

Arduino UNO × 1
ProtoCentral Pulse Oximeter & Herzfrequenzsensor (MAX30100) × 1
USB-A auf Micro-USB Kabel × 1
Steckbrücken (Jumper Wires) × 1

Software & Online-Dienste

Projektbeschreibung

Dieses Projekt realisiert ein Herzfrequenz-Mess- und Überwachungssystem. Der Arduino liest die Rohdaten des MAX30100-Sensors (IR-Pulssensor) aus und sendet sie über die serielle Schnittstelle an einen Computer (PC, Mac, Raspberry Pi). Dort läuft ein Node.js-Skript, das die Daten per WebSocket an eine Webseite weiterleitet. Für den Zugriff über das Internet wird ein AWS EC2-Instanz als Relay-Server genutzt.

1. Arduino vorbereiten

Lade den Sketch IR_Pulsr.ino auf den Arduino. Öffne den Serial Monitor – du solltest nun kontinuierlich BPM-Werte (Schläge pro Minute) sehen.

Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100

2. Node.js installieren

3. Erforderliche Node.js-Pakete installieren

Führe im Terminal nacheinander aus:

npm install -g socket.io
npm install -g serialport
npm install -g johnny-five
npm install -g express

4. Skripte ausführen

  1. Arduino per USB anschließen und prüfen, ob Daten im Serial Monitor der Arduino IDE ankommen.
  2. Die Node.js-Skripte in der angegebenen Reihenfolge starten (z. B. node run.js).
  3. Sobald im Terminal „Communication is on!“ erscheint, die Datei page.html im Browser öffnen – die Herzfrequenz wird angezeigt.

Dies funktioniert zunächst nur lokal (localhost). Für den Internetzugriff wird AWS konfiguriert.

5. Amazon Web Services (AWS EC2) einrichten

  1. AWS-Konto erstellen oder anmelden.
  2. Zum EC2-Dashboard navigieren und „Launch Instance“ klicken.
  3. Ein beliebiges OS wählen (z. B. Ubuntu).
  4. „Review and Launch“ → „Launch“.
  5. Neues Schlüsselpaar erstellen, herunterladen und sicher aufbewahren (für späteren SSH-Zugriff).
  6. Instanz starten und im nächsten Schritt die Sicherheitsgruppen so konfigurieren, dass Port 3005 (Node.js) und Port 4000 (WebSocket-Relay) zugänglich sind.
  7. Mit dem heruntergeladenen Key per SSH verbinden: ssh -i key.pem ubuntu@ec2-xxx.compute.amazonaws.com.
  8. Auf der EC2-Instanz Node.js und die Pakete (Schritt 2 & 3) installieren.
  9. Die Skripte dort starten. Die öffentliche URL der EC2-Instanz (z. B. https://ec2-xxx.compute.amazonaws.com:3005) ermöglicht nun den weltweiten Zugriff auf die Herzfrequenzanzeige.
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100

Code

IR_Pulsr.ino (Arduino)

int UpperThreshold = 518;
int LowerThreshold = 490;
int reading = 0;
float BPM = 0.0;
bool IgnoreReading = false;
bool FirstPulseDetected = false;
unsigned long FirstPulseTime = 0;
unsigned long SecondPulseTime = 0;
unsigned long PulseInterval = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  reading = analogRead(0);
  if (reading > UpperThreshold && IgnoreReading == false) {
    if (FirstPulseDetected == false) {
      FirstPulseTime = millis();
      FirstPulseDetected = true;
    } else {
      SecondPulseTime = millis();
      PulseInterval = SecondPulseTime - FirstPulseTime;
      FirstPulseTime = SecondPulseTime;
    }
    IgnoreReading = true;
  }
  if (reading < LowerThreshold) {
    IgnoreReading = false;
  }
  BPM = (1.0 / PulseInterval) * 60.0 * 1000;
  Serial.print(BPM);
  Serial.println(" BPM");
  Serial.flush();
}

run.js (Node.js Server)

var SerialPort = require('serialport');
var Readline = SerialPort.parsers.Readline;
var express = require('express');
var socket = require('socket.io');

var app = express();
var server = app.listen(3005);
app.use(express.static('public'));

var io = socket(server);
io.on('connection', function(socket) {
  console.log(socket.id);
});

var serialPort = new SerialPort('/dev/tty.usbmodem1421', { baudRate: 9600 });
var parser = new Readline();
serialPort.pipe(parser);

parser.on('data', function(data) {
  io.sockets.emit('map', data);
});

serialPort.on('open', function() {
  console.log('Communication is on!');
});

Hinweis: Der serielle Port (/dev/tty.usbmodem1421) muss an dein System angepasst werden (Windows: z. B. COM3).

page.html (Web-Interface)

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script src='nerve.js'></script>
  <script src='speech.js'></script>
  <meta name="viewport" content="user-scalable=no,initial-scale=1,maximum-scale=1" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.0/socket.io.dev.js"></script>
  <title>Herzfrequenz-Monitor</title>
  <style>
    body { margin: 0; background-image: url('https://www.skipprichard.com/wp-content/uploads/2015/07/bigstock-Red-Heart-On-Wooden-Background-56485448.jpg'); }
    h1 { padding-top: 100px; font-family: monospace; text-align: center; font-size: 100px; }
  </style>
</head>
<body>
  <h1 id="hello"></h1>
  <script>
    var socket = io.connect("https://localhost:3005");
    var socket_1 = io.connect("https://ec2-18-220-142-52.us-east-2.compute.amazonaws.com:4000"); // AWS-URL anpassen!
    socket.on('map', function(data) {
      socket_1.emit('map', data);
      document.getElementById('hello').innerHTML = data;
    });
  </script>
</body>
</html>

Schaltplan

Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100

Herstellungsprozess

  1. Herzfrequenz mit Windows 10 IoT Core auf Raspberry Pi auslesen – Schritt-für-Schritt-Anleitung
  2. Fern-Herzfrequenz-Überwachung mit AWS IoT Alarmen
  3. Imkerei revolutionieren: IoT-Sensoren überwachen Bienenstockgesundheit und steigern Bestäubung
  4. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  5. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  6. Fernsteuerung eines Roboterarms per IoT: Eigenbau mit Arduino MKR1000
  7. DIY Infrarot-Herzschlag-Sensor mit Arduino: Schritt-für-Schritt-Anleitung
  8. Smart IoT-Glas bauen: Füllstand überwachen mit ESP8266, Arduino & Ultraschall
  9. TV per Alexa steuern mit Arduino IoT Cloud – Schritt-für-Schritt
  10. Integrierte Herzfrequenz-Sensoren in Smart Clothing: Zuverlässiges Wearable-Monitoring