Translate

Monitor Suhu Tubuh + BPM + TENSIMETER via Bluetooth Android Sensor MAX30100 dan MLX90614


 Monitor Suhu Tubuh + BPM + TENSIMETER via Bluetooth Android Sensor MAX30100 dan MLX90614
 

             Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor suhu tubuh, bpm dan tensi via bluetooth android. alat ini memang sangat cocok untuk digunakan sebagai alat pengecekan karena mudah dibawa dan juga terdapat fitur bluetooth sehingga bisa dimonitor melalui HP Android. untuk lebih jelasnya berikut adalah daftar komponen dan programnya. 

 
 
a. Arduino Uno




b. MAX30100




c. MLX90614




d. Driver Pompa dan Solenoid




e. Bluetooth HC-05




f. LCD I2C




g. MPX5050GP


h. Koding Android

 


 

I. Program Arduino IDE

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_MLX90614.h>  
#include <MAX30100_PulseOximeter.h>
#define REPORTING_PERIOD_MS 5000
#include "MAX30100.h" //library sensor

LiquidCrystal_I2C lcd(0x27,16,2); //library lcd

MAX30100* pulseOxymeter;   //library

int cacah; //membuat variabel
int spo;
float bpm;
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

float TargetC;
int motor = 8;
int solenoid = 9;
int dataadc;
//int tombol = D4;
int tombolx;
int hitung;
float vol;
float mmhg;
float mmhgx;
int sistole;
int diastole;
int sistolex;
int diastolex;
int mark = 0;
int bttensi = 10;
int suhunya;
int bpmku;

PulseOximeter pox;

uint32_t tsLastReport = 0;
String hrData = "";
void onBeatDetected()
{
//    Serial.println("Beat!");
}

void setup() {
  Wire.begin();
  mlx.begin();
  Serial.begin(9600);
  lcd.begin();
  lcd.clear();
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  pinMode(motor,OUTPUT);
  pinMode(solenoid,OUTPUT);
  pinMode(bttensi,INPUT_PULLUP);

  digitalWrite(motor,LOW);
  digitalWrite(solenoid,LOW);

   //Serial.print("Initializing pulse oximeter..");
 
    if (!pox.begin()) {
        //Serial.println("FAILED");
        for(;;);
    } else {
        //Serial.println("SUCCESS");
    }
 
   pox.setIRLedCurrent(MAX30100_LED_CURR_11MA);
   pox.setOnBeatDetectedCallback(onBeatDetected);
 
}
   
void loop(){
 
   pox.update();
    
   if (millis() - tsLastReport > REPORTING_PERIOD_MS) {

       bpm = pox.getHeartRate();
       spo = pox.getSpO2();
       bpmku = bpm;
       
       lcd.setCursor(0,1);
       lcd.print("Bpm: ");
       lcd.print(pox.getHeartRate());
       lcd.print("     ");
       
    tsLastReport = millis();
}

mlx.begin();
TargetC = mlx.readObjectTempC();
suhunya = TargetC;

lcd.setCursor(0,0);
lcd.print("S=");
lcd.print(suhunya);
lcd.print("/");
lcd.print(sistole);
lcd.print("/");
lcd.print(diastole);
lcd.print("   ");

int bttensix = digitalRead(bttensi);

if(bttensix == 0){
 lcd.clear();
 delay(3000);
 mulai();
}

delay(1);

cacah++;

if(cacah >= 10){
cacah = 0;
 
/*
Serial.print("*");
Serial.print(suhunya);
Serial.print(",");
Serial.print(bpmku);
Serial.print(",");
Serial.print(sistole);
Serial.print(",");
Serial.print(diastole);
Serial.println("#");
*/

Serial.print("Suhu= ");
Serial.println(suhunya);
Serial.print("Bpm= ");
Serial.println(bpm);
Serial.print("Sistole= ");
Serial.println(sistole);
Serial.print("Diastole= ");
Serial.println(diastole);

}

}
 
void mulai(){ 
 dataadc = analogRead(A0);
 mmhg = (dataadc - 46.222) / 3.2;

if((mmhg >= mmhgx + 10)&&(mmhg > 100)&&(mark == 0)){
//digitalWrite(motor,LOW); 
Serial.println("SISTOLE"); 
sistole = mmhg;
mark = 2; 
digitalWrite(motor,LOW);
}

if((mmhg >= mmhgx + 5)&&(mmhg > 50)&&(mmhg < 90)&&(mark == 2)){
//digitalWrite(motor,LOW); 
Serial.println("DIASTOLE"); 
diastole = mmhg;
mark = 3;
}

 lcd.setCursor(0,1);
 lcd.print("S= ");
 lcd.print(mmhg);
 lcd.print("     ");

if(mmhg >= 150)
{
 digitalWrite(motor,LOW);   
}

mmhgx = mmhg;

Serial.println(mmhg);

if((mark == 3)&&(mmhg < 50)){
lcd.clear();
delay(1000);
mark = 0;
sistolex = sistole;
diastolex = diastole;
digitalWrite(solenoid,LOW);
return;  
}

delay(1);   
mulai();  
}


 
 
 j. VIDEO HASILNYA



 

No comments:

Post a Comment