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

Alertas Instantâneos por Email e SMS para Frequência Cardíaca Anormal

Componentes e materiais

ComponenteQuantidade
Módulo Sensor de Batimento Cardíaco1
Arduino Mega 25601
Módulo WiFi Bolt IoT1
Fios jumper (genéricos)7

Aplicativos e serviços online

Sobre o projeto

Dispositivos de monitoramento de frequência cardíaca 24x7 como pulseiras fitness são comuns no mercado agora e você pode até ter um ou dois! E se você pudesse fazer um dispositivo similar mas que também envie SMS ou email ou ambos se uma anormalidade for detectada na sua frequência cardíaca? Animado? Este projeto é sobre como fazer isso da maneira mais fácil possível.

Passo 1: Conectando módulo sensor de frequência cardíaca ao Arduino

Usando fios jumper macho-fêmea, faça as seguintes conexões:

Passo 2: Programação no Arduino

Instale Arduino IDE em arduino.cc e escreva o seguinte código:

unsigned long highCounter = 0;
int pulse = 0;
int val = 0;
int lastPulse = LOW;
unsigned long oldMillis = 0;

void setup() {
  pinMode(2, INPUT);
  Serial.begin(9600);
}

void loop() {
  pulse = digitalRead(2);
  if (pulse != lastPulse) {
    lastPulse = pulse;
    if (pulse == HIGH) highCounter++;
  }
  // imprime e reseta highCounter a cada 10 segundos
  if (millis() - oldMillis >= 10000) {
    oldMillis = millis();
    val = highCounter * 6;
    if (highCounter > 1) Serial.println(val);
    highCounter = 0;
  }
}

Salve, Verifique e Carregue o código.

Este código irá:

Passo 3: Conectando módulo WiFi Bolt ao Arduino

Usando fios jumper macho-macho, faça as seguintes conexões:

Estas conexões alimentam o módulo Bolt WiFi e estabelecem comunicação serial entre o módulo Bolt WiFi e Arduino. Neste ponto, todas as conexões de hardware estão concluídas.

Passo 4: Configurando serviço de automação de email usando Mailgun

  1. Crie uma conta no Mailgun
  2. Após verificação do seu número de telefone, vá à seção Domains. Clique no botão Add Recipient.
  3. Clique no botão Invite New Recipient. Insira o Email do Destinatário.
  4. Após adicionar Email ID, um novo sandbox será gerado. Clique no ID do sandbox recém-gerado.
  5. A nova tela terá todas as credenciais necessárias para enviar email. Copie todas e salve no bloco de notas.

Passo 5: Configurando serviço SMS usando Twilio

  1. Acesse twilio.com e clique em Get a Free API Key para se cadastrar
  2. Preencha todos os detalhes necessários no formulário de cadastro
  3. Insira e verifique seu número de telefone
  4. Clique em "Products" e habilite serviços SMS marcando as caixas para Programmable SMS e Phone Numbers
  5. Clique em "Continue". Clique novamente em "Continue" após inserir nome do projeto
  6. Clique em "Skip this step" quando pedir para convidar um colega
  7. Clique em "Project Info" para ver as credenciais da conta (Account SID e Auth token)
  8. No menu dropdown, escolha "Programmable SMS". Clique em Get Started para gerar número de telefone
  9. Clique em Get a number. Então um popup aparecerá. Clique em Choose this number
  10. Então um popup aparecerá com o número final. Copie este número e guarde com segurança

Passo 6: Usando VPS DigitalOcean para rodar código de monitoramento de frequência cardíaca

Nota: Você também pode manter um computador Linux dedicado ou rodar Linux em máquina virtual em vez de usar VPS como DigitalOcean.

  1. Acesse digitalocean.com e cadastre-se
  2. Crie um projeto. Então crie um droplet rodando Ubuntu e acesse a máquina usando PuTTY
  3. Faça login no Ubuntu usando credenciais enviadas por email
  4. Execute os seguintes comandos:
# Atualizar pacotes no Ubuntu
sudo apt-get -y update

# Instalar python3 pip3
sudo apt install python3-pip

# Instalar biblioteca boltiot usando pip
sudo pip3 install boltiot

# Criar arquivo python chamado conf.py
sudo nano conf.py

Escreva o seguinte código com dados corretos em conf.py:

# Credenciais do Twilio
SID = 'Encontre SID no seu Dashboard Twilio'
AUTH_TOKEN = 'Encontre no seu Dashboard Twilio'
FROM_NUMBER = 'Número gerado pelo Twilio. Encontre no Dashboard'
TO_NUMBER = 'Seu número. Adicione +55 no início'

# Credenciais do Mailgun
MAILGUN_API_KEY = 'Chave API privada do Dashboard Mailgun'
SANDBOX_URL = 'Encontre no Dashboard Mailgun'
SENDER_EMAIL = 'Será test@seu_SANDBOX_URL'
RECIPIENT_EMAIL = 'Seu Email Aqui'

# Credenciais do Bolt
API_KEY = 'Sua chave API da conta Bolt Cloud'
DEVICE_ID = 'ID do seu dispositivo Bolt'

Salve conf.py. Crie arquivo python chamado heart_rate.py:

sudo nano heart_rate.py

Escreva o seguinte código em heart_rate.py:

import conf, json, time
from boltiot import Email, Bolt
from boltiot import Sms, Bolt

minimum_limit = 57  # limite mínimo de frequência cardíaca
maximum_limit = 100 # limite máximo de frequência cardíaca

mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
mailer = Email(conf.MAILGUN_API_KEY, conf.SANDBOX_URL, conf.SENDER_EMAIL, conf.RECIPIENT_EMAIL)
sms = Sms(conf.SSID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)

while True:
  response = mybolt.serialRead(2)
  data = json.loads(response)
  sensor_value = data['value']
  try:
    sensor_value = data['value']
    if sensor_value > maximum_limit or sensor_value < minimum_limit:
      response = mailer.send_email("Alert", "The Current Heart Rate is " + str(sensor_value))
      response = sms.send_sms("Alert! The Current Heart Rate is " + str(sensor_value))
  except Exception as e:
    print()
  time.sleep(10)

Salve heart_rate.py. Execute Heart_rate.py:

sudo python3 heart_rate.py

Quando a frequência cardíaca ficar anormal, um SMS e email serão enviados para seu telefone e email respectivamente.

Código

Código Arduino

unsigned long highCounter = 0;
int pulse = 0;
int val = 0;
int lastPulse = LOW;
unsigned long oldMillis = 0;

void setup() {
  pinMode(2, INPUT);
  Serial.begin(9600);
}

void loop() {
  pulse = digitalRead(2);
  if (pulse != lastPulse) {
    lastPulse = pulse;
    if (pulse == HIGH) highCounter++;
  }
  if (millis() - oldMillis >= 10000) {
    oldMillis = millis();
    val = highCounter * 6;
    if (highCounter > 1) Serial.println(val);
    highCounter = 0;
  }
}

conf.py (Python)

# Credenciais do Twilio
SID = 'Encontre SID no seu Dashboard Twilio'
AUTH_TOKEN = 'Encontre no seu Dashboard Twilio'
FROM_NUMBER = 'Número gerado pelo Twilio. Encontre no Dashboard'
TO_NUMBER = 'Seu número. Adicione +55 no início'

# Credenciais do Mailgun
MAILGUN_API_KEY = 'Chave API privada do Dashboard Mailgun'
SANDBOX_URL = 'Encontre no Dashboard Mailgun'
SENDER_EMAIL = 'Será test@seu_SANDBOX_URL'
RECIPIENT_EMAIL = 'Seu Email Aqui'

# Credenciais do Bolt
API_KEY = 'Sua chave API da conta Bolt Cloud'
DEVICE_ID = 'ID do seu dispositivo Bolt'

heart_rate.py (Python)

import conf, json, time
from boltiot import Email, Bolt
from boltiot import Sms, Bolt

minimum_limit = 57
maximum_limit = 100

mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
mailer = Email(conf.MAILGUN_API_KEY, conf.SANDBOX_URL, conf.SENDER_EMAIL, conf.RECIPIENT_EMAIL)
sms = Sms(conf.SSID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)

while True:
  response = mybolt.serialRead(2)
  data = json.loads(response)
  sensor_value = data['value']
  try:
    sensor_value = data['value']
    if sensor_value > maximum_limit or sensor_value < minimum_limit:
      response = mailer.send_email("Alert", "The Current Heart Rate is " + str(sensor_value))
      response = sms.send_sms("Alert! The Current Heart Rate is " + str(sensor_value))
  except Exception as e:
    print()
  time.sleep(10)

Esquemáticos

Faça as conexões conforme mostrado no esquemático do projeto original.

Processo de manufatura

  1. Como Usar Dados e Storytelling para Garantir Aprovação para Seus Projetos de Manutenção
  2. Nove Estratégias Comprovadas para Garantir Seu Emprego e Acelerar Crescimento na Carreira
  3. 5 Maneiras Como Lubrificantes Anti-Gripagem Economizam Tempo, Dinheiro e Evitam Dores de Cabeça na MRO
  4. Guia do Especialista: Mantendo Seu Alambique de Recuperação de Solventes para Desempenho Máximo
  5. Resposta Rápida: Como Resolvemos Parada Súbita em Impressora Offset Komori 28"
  6. Otimizando Pares Escavadeira-Caminhoneta para Máxima Eficiência e Lucro na Mineração
  7. 4 Fatores-Chave a Considerar ao Comprar Lâminas de Corte Industriais
  8. Escolhendo a Bomba Booster Automática Certa para sua Casa: Guia Prático
  9. Entendendo Tipos de Parafusos e Parafusos de Rosca para Montagem Ideal
  10. Parafuso vs. Parafuso de Rosca: Diferenças Principais, Tipos e Aplicações