산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터

부품 및 소모품

부품 수량
아두이노 우노 (Arduino UNO) 1
MAX30100 기반 펄스 옥시미터/심박 센서 (ProtoCentral) 1
USB-A to 마이크로 USB 케이블 1
점퍼 와이어 (제네릭) 1세트

앱 및 온라인 서비스

프로젝트 개요

펄스 센서를 사용해 심박수를 감지하고 BPM(분당 박동수)으로 표시하는 심박 감지 및 모니터링 시스템을 아두이노로 구축합니다. Node.js를 활용해 시리얼 데이터를 웹으로 전송하고, AWS EC2를 통해 인터넷 어디서든 모니터링할 수 있습니다.

1단계: 아두이노 준비

제공된 스케치를 아두이노에 업로드하고 시리얼 모니터에서 데이터 수신 확인:

아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터

2단계: Node.js 설치

3단계: Node.js 필수 패키지 설치

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

4단계: 스크립트 실행

  1. 아두이노를 PC/라즈베리파이에 연결하고 시리얼 모니터에서 데이터 확인
  2. 터미널에서 node run.js 실행
  3. "Communication is on!" 메시지 확인 후 page.html을 브라우저에서 열기
  4. 로컬호스트에서 심박수 데이터 표시 확인

인터넷을 통해 원격 모니터링하려면 AWS EC2 설정이 필요합니다.

5단계: AWS EC2 설정

  1. AWS 계정 생성/로그인 후 EC2 콘솔 이동
  2. "인스턴스 시작" 클릭
  3. 원하는 OS 선택 (예: Ubuntu)
  4. "검토 및 시작" → "시작" 클릭
  5. 새 키 페어 생성 후 다운로드 (향후 SSH 접속용)
  6. 인스턴스 시작 완료 후 보안 그룹에서 HTTP(80), 사용자 지정 포트(3005 등) 허용
  7. SSH로 접속: ssh -i your-key.pem ubuntu@ec2-xxx.compute.amazonaws.com
  8. EC2 인스턴스 내에서 2~4단계 반복 (Node.js 설치, 패키지 설치, 스크립트 실행)
  9. EC2 퍼블릭 IP/도메인으로 웹 페이지 접속해 원격 모니터링
아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터
아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터
아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터

코드

IR_Pulsr.ino (아두이노)

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 서버)

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!');
});

page.html (웹 페이지)

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.0/socket.io.dev.js"></script>
  <title>Heart Rate Monitor</title>
  <style>
    body { margin: 0; background-image: url('heart_bg.jpg'); text-align: center; }
    h1 { padding-top: 100px; font-family: monospace; font-size: 100px; }
  </style>
</head>
<body>
  <h1 id="hello"></h1>
  <script>
    var socket = io.connect("https://localhost:3005");
    // AWS 배포 시 아래 주석 해제 및 EC2 주소로 변경
    // var socket_1 = io.connect("https://your-ec2-address:4000");
    
    socket.on('map', function(data) {
      // socket_1.emit('map', data);  // AWS 연동 시 활성화
      document.getElementById('hello').innerHTML = data;
    });
  </script>
</body>
</html>

회로도

아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터

제조공정

  1. 윈도우 10 IoT 코어 라즈베리 파이로 심박수 펄스 읽기 – 단계별 가이드
  2. AWS IoT 알림으로 원격 심박수 모니터링 시스템 구축
  3. 양봉 혁신: IoT 센서로 벌통 건강 모니터링하고 작물 수분 증진
  4. 아두이노로 모니터 앰비라이트(Ambilight) 시스템 직접 만들기
  5. 아두이노와 MAX30100으로 만드는 실시간 IoT 심박수 모니터
  6. 원격 IoT 제어 커스텀 로봇 팔: 아두이노 MKR1000과 심링크(Simulink) 활용
  7. 아두이노로 만드는 신뢰도 높은 적외선 심박 센서: 단계별 가이드
  8. 스마트 IoT 자 제작: ESP8266, 아두이노 & 초음파 센서로 실시간 모니터링
  9. 아두이노 IoT 클라우드로 알렉사와 TV 제어하기: 단계별 가이드
  10. 스마트 의류 통합 심박 센서, 신뢰도 높은 착용형 모니터링 구현