Station de surveillance santé intelligente : Arduino, Bluetooth et capteurs
Composants et fournitures
| Arduino UNO | × | 1 |
| Fils de connexion (génériques) | × | 1 |
| Capteur de température et humidité DHT11 (3 broches) | × | 1 |
| Capteur de température | × | 1 |
| Résistance 10 kΩ | × | 2 |
| Module Bluetooth HC-05 | × | 1 |
| Capteur de fréquence cardiaque | × | 1 |
Applications et services en ligne
- MIT App Inventor 2
- Arduino IDE
À propos du projet
Ce système électronique câblé, combinant capteurs et application mobile, offre une méthode simple pour surveiller l'état de santé et les paramètres environnementaux.
Code
Code 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);
}
Code pour IDE Arduino : GitHub
Schémas
Plusieurs schémas de câblage sont disponibles dans le projet original.
Processus de fabrication
- Construire un enregistreur de température Raspberry Pi avec capteur I2C à 5 $
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Construire une station météo Raspberry Pi qui envoie les données météo quotidiennes par email
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Construire un système de surveillance température et lumière multi-capteurs avec Raspberry Pi et DS18B20
- Construire un moniteur de température domestique avec Raspberry Pi, MCP9808, InfluxDB et Grafana
- Nouveau module température A6630 enrichit le moniteur santé machines CSI 6500 avec insights vibration & température
- Capteur température palier de précision : détection et surveillance précises