Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Slimme Gezondheidsmonitoring Station: Arduino, Bluetooth en Sensoren

Onderdelen en benodigdheden

OnderdeelAantal
Arduino UNO1
Breadboard draden (generiek)1
DHT11 Temperatuur- & Vochtigheidssensor (3 pinnen)1
Temperatuursensor1
Weerstand 10k ohm2
HC-05 Bluetooth Module1
Hartslagsensor1

Apps en online diensten

  • MIT App Inventor 2
  • Arduino IDE

Over dit project

Dit project combineert bedrade elektronica met sensoren en een app om eenvoudig de gezondheidstoestand en omgevingsparameters te monitoren.

Code

De onderstaande Arduino-code leest de sensoren uit en verstuurt de data via Bluetooth en seriële poort.

#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);
}

Meer code en tutorial: GitHub repository

Schema's

Zie de bijgevoegde afbeeldingen voor de schakelschema's en aansluitschema's.

Productieproces

  1. Nieuwe A6630 Temperatuurmodule verbetert CSI 6500 Machinery Health Monitor met trilling & temperatuur inzichten
  2. Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
  3. Professionele temperatuurbewaking met Raspberry Pi en DS18B20
  4. Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
  5. Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
  6. Accurate temperatuurbewaking in een serverkast met Raspberry Pi
  7. Een Multi-sensor Temperatuur- & Lichtmonitoringssysteem Bouwen met Raspberry Pi & DS18B20
  8. Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana
  9. Precisie lager temperatuursensor – Nauwkeurige detectie & monitoring
  10. DS18B20 Temperatuursensor – Precieze 1-Wire Digitale Thermometer voor Industriëel & Consumptief Gebruik
  11. Geavanceerde zelfverwarende draagbare gassensor voor nauwkeurige gezondheids- en milieu monitoring