Estação Inteligente de Monitoramento de Saúde: Arduino, Bluetooth e Sensores
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Fios jumpers (genéricos) | 1 |
| Sensor de Temperatura e Umidade DHT11 (3 pinos) | 1 |
| Sensor de Temperatura (genérico) | 1 |
| Resistor 10k ohm | 2 |
| Módulo Bluetooth HC-05 | 1 |
| Sensor de frequência cardíaca | 1 |
Aplicativos e Serviços Online
- MIT App Inventor 2 - Para desenvolvimento do aplicativo Android
- Arduino IDE - Para programação do microcontrolador
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
- Construa um Registrador de Temperatura com Raspberry Pi e Sensor I2C de $5
- Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
- Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
- Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
- Construa Monitor de Temperatura Doméstico com Raspberry Pi, MCP9808, InfluxDB e Grafana
- Novo Módulo de Temperatura A6630 Aprimora Monitor CSI 6500 com Insights de Vibração e Temperatura
- Sensor de Temperatura de Mancal de Precisão – Detecção e Monitoramento Precisos
- Sensor de Gás Vestível com Autoaquecimento Avançado para Monitoramento Preciso de Saúde e Ambiente