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

Estação Inteligente de Monitoramento de Saúde: Arduino, Bluetooth e Sensores

Componentes e Materiais

ComponenteQuantidade
Arduino UNO1
Fios jumpers (genéricos)1
Sensor de Temperatura e Umidade DHT11 (3 pinos)1
Sensor de Temperatura (genérico)1
Resistor 10k ohm2
Módulo Bluetooth HC-051
Sensor de frequência cardíaca1

Aplicativos e Serviços Online

Sobre o Projeto

Esta estação de monitoramento de saúde utiliza sensores conectados a um Arduino UNO e comunicação Bluetooth para fornecer uma maneira fácil de controlar parâmetros de saúde e ambientais. O sistema mede temperatura corporal, temperatura ambiente, umidade e frequência cardíaca, transmitindo os dados em tempo real para um aplicativo móvel desenvolvido com MIT App Inventor.

Código

Código Principal (C/C++)

#include <SoftwareSerial.h>
#include <cactus_io_AM2302.h>
#define AM2302_PIN 7
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
AM2302 dht(AM2302_PIN);
SoftwareSerial Bluetooth(10, 9);
String Data;
int pulsePin = 0;
int blinkPin = 13;
volatile int BPM;
volatile int Signal;
volatile int IBI = 600;
volatile boolean Pulse = false;
volatile boolean QS = false;
volatile int rate[10];
volatile unsigned long sampleCounter = 0;
volatile unsigned long lastBeatTime = 0;
volatile int P = 512;
volatile int T = 512;
volatile int thresh = 512;
volatile int amp = 100;
volatile boolean firstBeat = true;
volatile boolean secondBeat = false;

void interruptSetup() {
  TCCR2A = 0x02;
  TCCR2B = 0x06;
  OCR2A = 0X7C;
  TIMSK2 = 0x02;
  sei();
}

ISR(TIMER2_COMPA_vect) {
  cli();
  Signal = analogRead(pulsePin);
  sampleCounter += 2;
  int N = sampleCounter - lastBeatTime;
  if (Signal < thresh && N > (IBI / 5) * 3) {
    if (Signal < T) { T = Signal; }
  }
  if (Signal > thresh && Signal > P) { P = Signal; }
  if (N > 250) {
    if ((Signal > thresh) && (Pulse == false) && (N > (IBI / 5) * 3)) {
      Pulse = true;
      digitalWrite(blinkPin, HIGH);
      IBI = sampleCounter - lastBeatTime;
      lastBeatTime = sampleCounter;
      if (secondBeat) {
        secondBeat = false;
        for (int i = 0; i <= 9; i++) { rate[i] = IBI; }
      }
      if (firstBeat) {
        firstBeat = false;
        secondBeat = true;
        sei();
        return;
      }
      word runningTotal = 0;
      for (int i = 0; i <= 8; i++) {
        rate[i] = rate[i + 1];
        runningTotal += rate[i];
      }
      rate[9] = IBI;
      runningTotal += rate[9];
      runningTotal /= 10;
      BPM = 60000 / runningTotal;
      QS = true;
    }
  }
  if (Signal < thresh && Pulse == true) {
    digitalWrite(blinkPin, LOW);
    Pulse = false;
    amp = P - T;
    thresh = amp / 2 + T;
    P = thresh;
    T = thresh;
  }
  if (N > 2500) {
    thresh = 512;
    P = 512;
    T = 512;
    lastBeatTime = sampleCounter;
    firstBeat = true;
    secondBeat = false;
  }
  sei();
}

void setup() {
  Bluetooth.begin(9600);
  Serial.begin(9600);
  dht.begin();
  sensors.begin();
  interruptSetup();
}

void loop() {
  sensors.requestTemperatures();
  dht.readHumidity();
  dht.readTemperature();
  if (isnan(dht.humidity) || isnan(dht.temperature_C)) { return; }
  if (QS == true) {
    Serial.print(sensors.getTempCByIndex(0));
    Serial.print(" ");
    Serial.print(dht.temperature_C);
    Serial.print(" ");
    Serial.print(dht.humidity);
    Serial.print(" ");
    Serial.println(BPM);
    Bluetooth.print(sensors.getTempCByIndex(0));
    Bluetooth.print(" ");
    Bluetooth.print(dht.temperature_C);
    Bluetooth.print(" ");
    Bluetooth.print(dht.humidity);
    Bluetooth.print(" ");
    Bluetooth.println(BPM);
    QS = false;
  }
  delay(1500);
}

Esquemáticos

Os diagramas de conexão estão disponíveis nos arquivos do projeto. O circuito conecta os sensores ao Arduino UNO e o módulo HC-05 para comunicação Bluetooth com o aplicativo móvel.

Recursos Adicionais

Processo de manufatura

  1. Construa um Registrador de Temperatura com Raspberry Pi e Sensor I2C de $5
  2. Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
  3. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  4. Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
  5. Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
  6. Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
  7. Construa Monitor de Temperatura Doméstico com Raspberry Pi, MCP9808, InfluxDB e Grafana
  8. Novo Módulo de Temperatura A6630 Aprimora Monitor CSI 6500 com Insights de Vibração e Temperatura
  9. Sensor de Temperatura de Mancal de Precisão – Detecção e Monitoramento Precisos
  10. Sensor de Gás Vestível com Autoaquecimento Avançado para Monitoramento Preciso de Saúde e Ambiente