Pendeteksi Detak Jantung (Heartbeat Detector)





1. Tujuan [kembali]


Alat yang dibuat adalah Pendeteksi Detak Jantung. Alat ini ditujukan untuk mengukur detak jantung manusia dengan satuan BPM (Beats per Minute).


2. Komponen [kembali]


a. Arduino UNO



Hasil gambar untuk uno arduino"


Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan pada prkatikum ini adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protocol yang berbeda-beda. Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya. Dalam memprogram arduino, kita bisa menggunakan serial komunikasi agar arduino dapat berhubungan dengan komputer ataupun aplikasi lain.

b. Sensor Detak Jantung


Hasil gambar untuk pulse sensor"
Sensor detak jantung memiliki dua komponen utama, yaitu LED super terang dan sebuah detektor. LED harus super terang agar cahaya yang melewati permukaan tubuh (semisal jari) dapat dideteksi oleh detektor. 



Ketika darah dipompa dari jantung, nadi akan menjadi lebih gelap dan cahaya yang sampai ke detektor lebih sedikit. Tiap denyut jantung akat diperkuat oleh amplifier sehingga menghasilkan tegangan output sebesar +5V.


c. Bluetooth Module HC-05





module komunikasi nirkabel via bluetooth yang dimana beroperasi pada frekuensi 2.4GHz dengan pilihan dua mode konektivitas.
Mode 1 berperan sebagai slave atau receiver data saja, mode 2 berperan sebagai master atau dapat bertindak sebagai transceiver.
Pengaplikasian komponen ini sangat cocok pada project elektronika dengan komunikasi nirkabel atau wireless.
Aplikasi yang dimaksud antara lain aplikasi sistem kendali, monitoring, maupun gabungan keduanya.


Antarmuka yang dipergunakan untuk mengakses module ini yaitu serial TXDRXDVCC serta GND. Serta terdapat LED (built in) sebagai indikator koneksi bluetooth terhadap perangkat lainnya seperti sesama module, dengan smartphone android, dan sebagainya.

d. Potentiometer 10k



Simbol-dan-Bentuk-Potensiometer



Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer.
Elemen Resistif pada Potensiometer umumnya terbuat dari bahan campuran Metal (logam) dan Keramik ataupun Bahan Karbon (Carbon).


Berdasarkan Track (jalur) elemen resistif-nya, Potensiometer dapat digolongkan menjadi 2 jenis yaitu Potensiometer Linear (Linear Potentiometer) dan Potensiometer Logaritmik (Logarithmic Potentiometer).

e. LCD 16x2






Pada aplikasi umumnya RW diberi logika rendah “0”. Bus data terdiri dari 4-bit atau 8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high “1” dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.

Saat jalur lainnya sudah siap, EN harus diset ke “0” dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke “0”. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.


Mode 8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data). Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir yang dibaca. 

f. Buzzer

Pengertian Piezoelectric Buzzer dan Cara Kerja Buzzer

Buzzer yang menggunakan efek Piezoelectric untuk menghasilkan suara atau bunyinya. Tegangan listrik yang diberikan ke bahan Piezoelectric akan menyebabkan gerakan mekanis, gerakan tersebut kemudian diubah menjadi suara atau bunyi yang dapat didengar oleh telinga manusia dengan menggunakan diafragma dan resonator.




3. Gambar Rangkaian [kembali]








Listing Program:


#define USE_ARDUINO_INTERRUPTS true    // Set-up low-level interrupts for most acurate BPM math.

#include <PulseSensorPlayground.h>     // Includes the PulseSensorPlayground Library.   
#include <LiquidCrystal.h>

// Variables

const int PulseWire = 0;       // PulseSensor PURPLE WIRE connected to ANALOG PIN 0
const int LED13 = 13;          // The on-board Arduino LED, close to PIN 13.
int Threshold = 550;           // Determine which Signal to "count as a beat" and which to ignore.
                               // Use the "Gettting Started Project" to fine-tune Threshold Value beyond default setting.
                               // Otherwise leave the default "550" value. 
const int pinBuzzer = 10;       //Deklarasi pin buzzer


                               

PulseSensorPlayground pulseSensor;  // Creates an instance of the PulseSensorPlayground object called "pulseSensor"

#define rs 9 

#define en 8 
#define d4 7 
#define d5 6  
#define d6 5 
#define d7 4 
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {   


  Serial.begin(9600);          // For Serial Monitor

  lcd.begin(16, 2);           // set up the LCD's number of columns and rows: 
  
  // Configure the PulseSensor object, by assigning our variables to it. 
  pulseSensor.analogInput(PulseWire);   
  pulseSensor.blinkOnPulse(LED13);       //auto-magically blink Arduino's LED with heartbeat.
  pulseSensor.setThreshold(Threshold);   
  pinMode(pinBuzzer, OUTPUT);
  
  // Double-check the "pulseSensor" object was created and "began" seeing a signal.   
   if (pulseSensor.begin()) {
    Serial.println("We created a pulseSensor Object !");  //This prints one time at Arduino power-up,  or on Arduino reset.  
    lcd.clear();
    lcd.print("BPM:"); // BEATS PER MINUTE
  }
}


void loop() {

  
 int myBPM = pulseSensor.getBeatsPerMinute();  // Calls function on our pulseSensor object that returns BPM as an "int".
                                               // "myBPM" hold this BPM value now. 

if (pulseSensor.sawStartOfBeat()) {            // Constantly test to see if "a beat happened". 

 Serial.println("♥  A HeartBeat Happened ! "); // If test is "true", print a message "a heartbeat happened".
 Serial.print("BPM: ");                        // Print phrase "BPM: " 
 Serial.println(myBPM);                        // Print the value inside of myBPM. 
    lcd.clear();  
  lcd.print("BPM:");
   lcd.setCursor(0,1);
  lcd.print(myBPM); }

if (myBPM>90) {

      digitalWrite(pinBuzzer, HIGH);
      delay(1000);
      digitalWrite(pinBuzzer, LOW);
      delay(200);}

else {

      digitalWrite(pinBuzzer, LOW);
      delay(1000);
  }      

delay(20);                    // considered best practice in a simple sketch.    


}


OUTPUT GRAFIK SENSOR




FLOWCHART





4. Video Simulasi [kembali]


Simulasi Proteus:




Simulasi Alat:








5. Prinsip Kerja & Analisis [kembali]


Prinsip Kerja
Pertama password di inputkan dari keypad. Jika password true, maka proses penghitungan detak jantung dapat dilanjutkan. Setelah terbuka, data analog dari sensor akan dikirim dari pulse sensor menuju arduino setelah dikuatkan dengan amplifier yang terdapat di pulse sensor. Sinyal DC tersebut akan diteruskan menuju LCD dan bluetooth HC-05 yang dapat nilainya dapat dibaca jika disinkronkan dengan ponsel. Ketika detak jantung berada diatas 90, maka buzzer akan berbunyi. Setelah itu pembacaan detak jantung akan dibaca kembali dan proses terus berulang.

  

Analisis:

Alat yang kami gunakan memiliki noise yang cukup besar. Seiring pemakaian, hasil pengukuran menjadi semakin tidak presisi. Hal ini dikarenakan beberapa faktor, seperti cara pemakaian dan kontak fisik pada sensor yang membuat sensor tidak bekerja dengan baik. 


6. Link Download [kembali]

1. Rangkaian : klik disini

2. Video: klik disini

3. Materi HTML: klik disini

4. Library Detak Jantung  & Bluetooth Module: klik disini

5. Datasheet Pulse sensor: klik disini.

6. Datasheet keypad: klik disini

7. Datasheet Bluetooth HC-05: klik disini

8. Datasheet Potentiometer: klik disini

9. Datasheet LCD: klik disini

10. Flowchart: klik disini



Tidak ada komentar:

Posting Komentar