Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100

Componentes e Materiais

Arduino UNO 1
Sensor de Oximetria de Pulso e Frequência Cardíaca MAX30100 (ProtoCentral) 1
Cabo USB-A para Micro-USB 1
Jumpers (genéricos) 1 conjunto

Aplicativos e Serviços Online

Arduino IDE
Node.js
Amazon Web Services (AWS) EC2

Sobre o Projeto

Neste projeto, vamos criar um Sistema de Detecção e Monitoramento de Batimentos Cardíacos usando Arduino que detectará os batimentos usando o Sensor de Pulso e mostrará as leituras em BPM (Batimentos Por Minuto).

1) Preparação do Arduino

Carregue o sketch fornecido no Arduino e certifique-se de que está recebendo dados no Monitor Serial:

Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100

2) Instalar Node.js

Instale o Node.js no seu PC / Mac / Linux / Raspberry Pi:

3) Instalar Pacotes Necessários para Node.js

Execute os seguintes comandos no terminal para instalar os pacotes:

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

4) Executar os Scripts

node run.js

Para visualizar pela internet, você precisa configurar o AMAZON WEB SERVICES (AWS).

5) Configurar o Amazon Web Services (AWS)

  1. Crie uma conta ou faça login na sua conta AWS
  2. Vá para o módulo EC2
  3. Clique em "Launch Instance"
  4. Selecione qualquer sistema operacional
  5. Clique em "Review and Launch"
  6. Clique em "Launch" na próxima página e crie um novo par de chaves e faça o download (este arquivo será usado para acessar o módulo AWS no futuro)
  7. Após a criação, clique em "Launch Instance"
  8. Escolha os serviços mostrados e clique em "Connect"
  9. Uma URL junto com um link SSH será mostrada
  10. Vá para a localização do arquivo onde você baixou a chave de segurança, abra o terminal nessa pasta, cole e execute o link SSH
  11. Agora repita os passos 2, 3 e 4 aqui no servidor AWS
  12. Após tudo terminar, feche o terminal
  13. Escolha os serviços anteriores e clique em "Connect" novamente
  14. Use a URL fornecida para visualizar a saída pela internet.
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100

6) O Vídeo

Fim!

Código

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;
  // Descomente estas linhas caso queira ver os vários valores no console...
  /*
  Serial.print(reading);
  Serial.print("\t");
  Serial.print(PulseInterval);
  Serial.print("\t");
  */
  Serial.print(BPM);
  Serial.println(" BPM");
  Serial.flush();
}

run.js (JavaScript/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) {
  //console.log('data received: ' + data)
  io.sockets.emit('map', data);
})
serialPort.on('open', function () {
  console.log('Communication is on!')
})

page.html (HTML)

<!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></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') } 
  #speech { overflow: auto; } 
  .sender { border-bottom-right-radius: 5px; border-top-right-radius: 5px; border-top-left-radius: 5px; text-align: left; background-color: yellow; } 
  .receiver { border-bottom-left-radius: 5px; border-top-right-radius: 5px; border-top-left-radius: 5px; text-align: right; background-color: white; } 
  .bub { border: 1px solid #000; padding: 5px; margin-right: auto; margin-left: auto; width: 90%; max-width: 500px; } 
  #name { font-family: arial; font-size: 20px; color: black; white-space: nowrap; font-weight: 600; } 
  #rank { font-family: arial; font-size: 15px; color: black; white-space: nowrap; } 
  .bubble { font-family: arial; font-size: 20px; font-weight: 400; } 
  .dot { width: 10px; height: 10px; margin-left: auto; border-radius: 5px; } 
  .read { border: 1px solid red; } 
  .red { background-color: red; } 
  .yellow { background-color: gold; } 
  .green { background-color: green; } 
  #stat { padding: 10px; margin-right: auto; margin-left: auto; width: 90%; max-width: 500px; } 
  #nav { border-bottom: 1px solid #000; width: 100%; text-align: left; background-color: white; padding-bottom: 3px; } 
  #photo { position: relative; top: 4px; left: 5px; border-radius: 40px; height: 80px; float: left; } 
  .time { font-weight: 400; font-family: arial; } 
  #online { color: green; } 
  #offline { color: red; } 
  #foot { border-top: 1px solid #000; width: 100%; position: fixed; bottom: 0; background-color: white; padding: 10px; } 
  #box { border: none; resize: none; width: 75%; font-weight: 400; font-size: 20px; font-family: arial; overflow: hidden; } 
  #enter { border:0; background-color: white; color: #0BB5FF; font-size: 20px; } 
  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"); // forneça o link gerado pelo AWS após ligar para vincular código com internet...
  socket.on('map', function(data){
    //console.log(data);
    socket_1.emit('map', data);
    document.getElementById('hello').innerHTML = data;
  });
</script> 
</body> 
</html>

Esquemáticos

Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100

Processo de manufatura

  1. Leia Pulso de Frequência Cardíaca com Windows 10 IoT Core no Raspberry Pi – Guia Passo a Passo
  2. Sistema Remoto de Monitoramento de Frequência Cardíaca com Alertas AWS IoT
  3. Revolucionando a Apicultura: Sensores IoT Monitoram Saúde da Colmeia e Impulsionam Polinização de Culturas
  4. Crie um Sistema Ambilight Impressionante para Monitor com Arduino
  5. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  6. Controle IoT Remoto de Braço Robótico Personalizado
  7. Construa um Sensor de Batimento Cardíaco Infravermelho Confiável com Arduino: Guia Passo a Passo
  8. Construa um Pote Inteligente IoT com ESP8266, Arduino e Sensor Ultrassônico – Monitoramento em Tempo Real
  9. Controle sua TV com Alexa via Arduino IoT Cloud – Guia Passo a Passo
  10. Sensores de Frequência Cardíaca Integrados em Roupas Inteligentes: Monitoramento Vestível Confiável