laporan uas penghitungan denyut jantung menggunakan grove

advertisement
LAPORAN UAS
PENGHITUNGAN DENYUT JANTUNG MENGGUNAKAN
GROVE CHEST STRAP HEART RATE SENSOR DENGAN
ARDUINO UNO
DISUSUN OLEH :
Fitria Agista Santi
(1110091000035)
Eka Risky Firmansyah (1110091000043)
Teknik Informatika 2010
Fakultas Sains dan Teknologi
Universitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta
2013
KATA PENGANTAR
Puji syukur kami ucapkan kepada Allah SWT, karena dengan rahmat – Nya
penyusun telah dapat menyelesaikan makalah yang berjudul “PENGHITUNGAN
DENYUT JANTUNG MENGGUNAKAN GROVE CHEST STRAP HEART RATE SENSOR
DENGAN ARDUINO UNO”. Tidak lupa kami ucapkan shalawat dan salam kepada
junjungan kita Nabi besar Muhammad SAW.
Penyusun menyampaikan ucapan terima kasih yang tak terhingga kepada pihakpihak yang membantu dalam menyelesaikan makalah ini, khususnya kepada Ibu Neni
selaku dosen matakuliah Embedded System, teman – teman, dan semua pihak yang tidak
dapat disebutkan satu persatu.
Dalam penyusunan makalah ini, penyusun merasa masih banyak kekurangankekurangan baik pada teknis penulisan maupun materi, mengingat akan kemampuan
yang dimiliki penyusun. Untuk itu kritik dan saran dari semua pihak sangat penyusun
harapkan demi penyempurnaan pembuatan makalah ini. Semoga makalah ini dapat
bermanfaat bagi kita semua.
Ciputat, 15 Januari 2013
Penyusun
2
DAFTAR ISI
KATA PENGANTAR ................................................................................................................ 2
DAFTAR ISI ............................................................................................................................ 3
BAB 1 PENDAHULUAN .......................................................................................................... 4
1.1.
1.2.
1.3.
1.4.
LATAR BELAKANG......................................................................................................... 4
TUJUAN ..................................................................................................................... 4
RUMUSAN MASALAH .................................................................................................... 5
BATASAN MASALAH ..................................................................................................... 5
BAB 2 LANDASAN TEORI ....................................................................................................... 6
2.1. DENYUT NADI ................................................................................................................. 6
2.2. EMBEDDED SYSTEM .......................................................................................................... 7
2.2.1. Pengertian ............................................................................................................ 7
2.2.2. Karakteristik ......................................................................................................... 7
2.2.3. Contoh Penggunaan ............................................................................................. 7
2.3. GRAPH INTERFACE............................................................................................................ 8
2.4. TEORI KOMPONEN........................................................................................................... 8
2.4.1. Komponen Utama ................................................................................................ 8
2.4.2. Komponen Tambahan ........................................................................................ 12
BAB 3 PEMBAHASAN .......................................................................................................... 14
3.1. KOMPONEN UTAMA DAN TAMBAHAN ............................................................................. 14
3.1.1. Komponen Utama .............................................................................................. 14
3.1.2. Komponen Tambahan ........................................................................................ 14
3.2. PERANCANGAN ALAT .................................................................................................. 14
3.2.1. Skematik Rangkaian ........................................................................................... 14
3.2.2. Langkah Percobaan ............................................................................................ 15
3.3. HASIL PERCOBAAN ......................................................................................................... 24
BAB 4 PENUTUP .................................................................................................................. 26
4.1. KESIMPULAN................................................................................................................. 26
4.2. SARAN ........................................................................................................................ 26
DAFTAR PUSTAKA............................................................................................................... 27
BAB 1
PENDAHULUAN
1.1.
Latar Belakang
Kesehatan merupakan bagian yang penting bagi manusia karena dengan
sehat kita dapat melakukan berbagai kegiatan dan berpikir dengan baik. Jantung
yang mengontrol peredaran darah. Untuk mengetahui keadaan jantung
diperlukan alat yang menghitung denyut jantung kita.
Mahalnya alat kedokteran dan kurangnya waktu seseorang untuk
melakukan pemeriksaan di rumah sakit menyulitkan seseorang untuk
mengawasi kesehatan, terutama kesehatan jantung. Untuk itu dibutuhkan alat
sederhana yang memiliki kemudahan dalam pengoperasiannya dan dapat
digunakan di rumah walaupun saat sedang beraktifitas.
Alat
perekam
denyut
jantung
berbasis
mikrokontroler
dapat
menggunakan Grove Chest Strap Heart Rate Sensor yang mampu menangkap
sinyal denyut jantung. Dengan menggunakan pengantarmukaan parallel pada
komunikasinya, proses ini mengubah sinyal analog menjadi sinyal digital yang
akan diteruskan ke komputer melalui perangkat Arduino UNO, komunikasi
antara sensor dengan Arduino UNO menggunakan gelombang radio AM
(nirkabel). Bahasa pemrograman C pada Arduino digunakan untuk menampilkan
data denyut jantung dalam bentuk stream pada serial port, kemudian
menggunakan software processing dengan bahasa pemrograman Java untuk
merubah data serial tersebut menjadi grafik dari denyut jantung yang nantinya
dapat dihitung besarnya frekuensi dari denyutan jantung tersebut dalam satuan
bpm (beats per minute).
1.2.
Tujuan
Tujuan yang ingin dicapai dalam penelitian ini adalah :

Membuktikan sistem Grove - Chest Strap Heart Rate Sensor mampu
menghitung denyut jantung.

Membuat alat penghitung frekuensi denyut jantung dengan hasil tampilan
dalam bentuk angka dan grafik di komputer atau laptop.
4

1.3.
Membuat alat penghitung denyut jantung nirkabel.
Rumusan Masalah

Komponen apa saja yang dibutuhkan dalam pembuatan alat penghitung
denyut jantung?
1.4.

Bagaimana langkah-langkah pembuatannya?

Bagaimana hasil outputnya?
Batasan Masalah
Batasan masalah yang dilakukan pada penelitian ini, yaitu:

Alat ini memanfaatkan program dan teknologi dari perangkat Arduino UNO.

Hanya melakukan analisa teknis dan tidak melakukan analisa medis.

Frekuensi detak jantung ini dinyatakan dalam satuan BPM (beats per minute).
BAB 2
LANDASAN TEORI
2.1. Denyut Nadi
Denyut merupakan pemeriksaan pada pembuluh nadi atau arteri. Ukuran
kecepatannya diukur pada beberapa titik denyut misalnya denyut arteri radialis
pada pergelangan tangan, arteri brachialis pada lengan atas, arteri karotis pada
leher, arteri poplitea pada belakang lutut, arteri dorsalis pedis atau arteri tibialis
posterior pada kaki. Pemeriksaan denyut dapat dilakukan dengan bantuan
stetoskop.
Denyut jantung yang normal yakni 60-100 kali setiap menit, sedang denyut
jantung lambat kurang dari 60 kali per menit dan yang cepat lebih dari 100 kali
per menit.
Nadi adalah denyut nadi yang teraba pada dinding pembuluh darah arteri
yang berdasarkan systol dan gystole dari jantung.
Jumlah denyut nadi yang normal berdasarkan usia seseorang adalah:
1. Bayi baru lahir :140 kali per menit
2. Umur di bawah umur 1 bulan : 110 kali per menit
3. Umur 1 - 6 bulan :130 kali per menit
4. Umur 6 - 12 bulan :115 kali per menit
5. Umur 1 - 2 tahun :110 kali per menit
6. Umur 2 - 6 tahun :105 kali per menit
7. Umur 6 - 10 tahun : 95 kali per menit
8. Umur 10 - 14 tahun : 85 kali per menit
9. Umur 14 - 18 tahun : 82 kali per menit
10. Umur di atas 18 tahun : 60 - 100 kali per menit
11. Usia Lanjut : 60 -70 kali per menit
llmu Kedokteran olahraga FKUI-RSCM, mengetahui denyut nadi merupakan
dasar untuk melakukan latihan fisik yang benar dan terukur. "Dari denyut nadi,
dapat diketahui intensitas atau seberapa keras seseorang melakukan latihan. Atau
seberapa keras jantungnya bekerja."
6
2.2. Embedded System
2.2.1. Pengertian
Merupakan sebuah sistem yang memiliki fungsi utama bukan hanya
untuk komputasi, melainkan juga dikontrol oleh komputer. [2] Embedded
within it. Embedded system merupakan sebuah sistem (rangkaian
elektronik) digital yang merupakan bagian dari sebuah sistem yang lebih
besar, yang biasanya bukan berupa sistem elektronik. Kata embedded
menunjukkan bahwa dia merupakan bagian yang tidak dapat berdiri
sendiri. Embedded system biasanya merupakan application-specific system
yang didisain khusus untuk aplikasi tertentu. Contoh sistem atau
aplikasinya
antara
lain
adalah
instrumentasi
medik
(medical
instrumentation), process control, automated vehicles control, dan perangkat
komunikasi (networking and communication systems). Ini berbeda dengan
sistem digital yang didesain untuk general purpose. Embedded system
biasanya
diimplementasikan
dengan
menggunakan
mikrokontroler
(microcontroller). Berikut ini contoh penggunaan embedded system :
2.2.2. Karakteristik
 Menjadi bagian dari system yang lebih besar : Periferal terbatas

Application-specific:
 Baik hardware maupun software dirancang khusus untuk aplikasi
yang spesifik
 Tetapi, re-programmability merupakan suatu kebutuhan
 ‘HALT’ merupakan suatu badstate

Interaksi dengan dunia fisik
2.2.3. Contoh Penggunaan

Signal processing systems, Real-time video, settopboxes, DVD players,
medical equipment,residential gateways

Distributed control, Network routers, switches,firewalls, mass transit
systems, elevators

“Small” systems, Mobile phones, pagers, homeappliances, toys,
smartcards, MP3 players, PDAs,digital cameras, sensors, smart badges
2.3. Graph Interface
Ketika source code di upload, Arduino akan mengirim byte data denyut
jantung ke komputer pribadi dalam bentuk serial port, kemudian data tersebut
akan dirubah hasilnya berupa grafik dengan menggunakan program Processing.
Hal ini disebut komunikasi serial karena sambungan Arduino dan komputer
sebagai port serial, meskipun sebenarnya dapat menggunakan kabel USB. Untuk
melihat data yang dikirim, atau dapat dibaca oleh aplikasi untuk pengolahan data,
Flash, PD, Max / MSP, dll menggunakan monitor Arduino.
Dengan hasil berupa grafik, dokter dapat memonitor pasien secara simultan
dan untuk membuat keputusan kesehatan seseorang berdasarkan subyek yang
diteliti. Untuk dapat menghasilkan interface berupa grafik, diperlukan source code
program Processing.
2.4. Teori Komponen
2.4.1. Komponen Utama
a. Arduino UNO
Arduino UNO adalah sebuah board mikrokontroler yang
didasarkan pada ATmega328. Arduino UNO mempunyai 14 pin digital
input/output (6 di antaranya dapat digunakan sebagai output PWM), 6
input analog, sebuah osilator Kristal 16 MHz, sebuah koneksi USB,
sebuah power jack, sebuah ICSP header, dan sebuat tombol reset.
Arduino UNO memuat semua yang dibutuhkan untuk menunjang
mikrokontroler, mudah menghubungkannya ke sebuah computer
dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC
ke DC atau menggunakan baterai untuk memulainya.
Arduino Uno berbeda dari semua board Arduino sebelumnya,
Arduino UNO tidak menggunakan chip driver FTDI USB-to-serial.
Sebaliknya, fitur-fitur Atmega16U2 (Atmega8U2 sampai ke versi R2)
diprogram sebagai sebuah pengubah USB ke serial. Revisi 2 dari board
Arduino Uno mempunyai sebuah resistor yang menarik garis 8U2 HWB
ke ground, yang membuatnya lebih mudah untuk diletakkan ke dalam
8
DFU mode. Revisi 3 dari board Arduino UNO memiliki fitur-fitur baru
sebagai berikut:

Pinout 1.0: ditambah pin SDA dan SCL yang dekat dengan pin AREF
dan dua pin baru lainnya yang diletakkan dekat dengan pin RESET,
IOREF yang memungkinkan shield-shield untuk menyesuaikan
tegangan yang disediakan dari board. Untuk ke depannya, shield akan
dijadikan kompatibel/cocok dengan board yang menggunakan AVR
yang beroperasi dengan tegangan 5V dan dengan Arduino Due yang
beroperasi dengan tegangan 3.3V. Yang ke-dua ini merupakan sebuah
pin yang tak terhubung, yang disediakan untuk tujuan kedepannya.

Sirkuit RESET yang lebih kuat

Atmega 16U2 menggantikan 8U2
“Uno” berarti satu dalam bahasa Italia dan dinamai untuk
menandakan keluaran (produk) Arduino 1.0 selanjutnya. Arduino UNO
dan versi 1.0 akan menjadi referensi untuk versi-versi Arduino
selanjutnya. Arduino UNO adalah sebuah seri terakhir dari board
Arduino USB dan model referensi untuk papan Arduino, untuk suatu
perbandingan dengan versi sebelumnya, lihat indeks dari board Arduino.
Ringkasan
Mikrokontroler
ATmega328
Tegangan pengoperasian
5V
Tegangan
input
disarankan
7-12V
yang
Batas tegangan input
6-20V
Jumlah pin I/O digital
14 (6 di antaranya menyediakan keluaran PWM)
Jumlah pin input analog
6
Arus DC tiap pin I/O
40 mA
Arus DC untuk pin 3.3V
50 mA
Memori Flash
32 KB (ATmega328), sekitar 0.5 KB digunakan oleh
bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Clock Speed
16 MHz
b. Grove - Chest Strap Heart Rate Sensor
Sensor untuk mendeteksi denyut jantung yang berbentuk sabuk
yang dipakai di dada ini memiliki modul penerima sinyal dengan ukuran
5,3 KHz yang digunakan untuk memantau detak jantung. Hasilnya dapat
ditampilkan pada layar melalui port serial dan dapat disimpan untuk
dianalisis. Sensor ini sangat sensitive dan menggunakan daya yang
sangat sedikit (menggunakan CR2032 koin baterai). Jangkauan efektif
yang dapat diterima sensor nirkabel yang ditransfer oleh gelombang
radio AM adalah sekitar 30 cm. Sabuk dada ini harus memiliki kontak
dengan kulit Anda untuk mendapatkan akurasi tinggi.
Berikut contoh gambarnya :
10
c. Kabel Listrik
Kabel berfungsi sebagai penghantar arus listrik. Kabel juga
memiliki beberapa jenis dan ukuran kapasitas. Berikut ini beberapa
jenis-jenis kabel, yaitu :

Kabel NYA : Kabel jenis ini di gunakan untuk instalasi rumah dan
dalam instalasi rumah yang sering di gunakan adalah NYA dengan
ukuran 1,5 mm2 dan 2,5 mm2. Yang berinti tunggal, berlapis bahan
isolasi PVC Kode warna isolasi ada warna merah, kuning, biru dan
hitam. Lapisan isolasinya hanya 1 lapis sehingga mudah cacat,
tidak tahan air (NYA adalah tipe kabel udara) dan mudah digigit
tikus. agar aman jika menggunakan kabel tipe ini lebih baik kabel
di pasang di dalam pipah atau saluran penutup, karena selain tidak
bisa di ganggu sama hewan pengerat dan tidak kenah air, juga
apabila ada isolasi yang terkelupas (terbuka) tidak bisa tersentuh
langsung sama manusia.

Kabel NYM : Kabel jenis ini hanya direkomendasikan khusus untuk
instalasi tetap di dalam bangunan yang dimana penempatannya
biasa diluar/ didalam tembok ataupun didalam pipa (conduit).
Kabel NYM berinti lebih dari 1, memiliki lapisan isolasi PVC
(biasanya warna putih atau abu-abu), ada yang berinti 2, 3 atau 4.
Kabel NYM memiliki lapisan isolasi dua lapis, sehingga tingkat
keamanannya lebih baik dari kabel NYA (harganya lebih mahal
dari NYA). Kabel ini dapat dipergunakan dilingkungan yang kering
dan basah, namun tidak boleh ditanam.

Kabel NYY : Kabel ini dirancang untuk instalasi tetap didalam
tanah yang dimana harus tetap diberikan perlindungan khusus
(misalnya duct, pipa PVC atau pipa besi). Kabel protodur tanpa
sarung logam. Instalasi bisa ditempatkan didalam dan diluar
ruangan, dalam kondisi lembab ataupun kering. memiliki lapisan
isolasi PVC (biasanya warna hitam), ada yang berinti 2, 3 atau 4.
Dan memiliki lapisan isolasi yang lebih kuat dari kabel NYM
(harganya lebih mahal dari NYM). Kabel NYY memiliki isolasi yang
terbuat dari bahan yang tidak disukai tikus.
2.4.2. Komponen Tambahan
a. Buzzer Module
Buzzer adalah suatu alat yang dapat mengubah sinyal listrik
menjadi sinyal suara. Pada umumnya buzzer digunakan untuk alarm,
karena penggunaannya cukup mudah yaitu dengan memberikan
tegangan input maka buzzer akan mengeluarkan bunyi. Frekuensi suara
yang di keluarkan oleh buzzer yaitu antara 1-5 KHz.
b. LED (Light Emitting Diode)
Light emitting diode atau dioda pemancar cahaya merupakan
sebuah jenis dioda yang dapat memancarkan cahaya apabila diberikan
tegangan 1.8V dengan arus sebesar 1.5 mA. Dioda pemancar cahaya
banyak digunakan sebagai lampu indicator atau lampu pilot serta peraga
12
(Display). Dioda pemancar cahaya juga dapat digunakan sebagai
pemancar cahaya yang tidak terlihat oleh mata yaitu sinar inframerah.
Bahan dasar pembuat dioda adalah Silicon Carbide (SiC),dioda ini dapat
berbentuk bulat atau segi empat / Warna dioda pemancar cahaya ini ada
berbagai macam, antara lain merah,kuning,hijau, biru dan sebagainya.
BAB 3
PEMBAHASAN
3.1.
Komponen Utama dan Tambahan
3.1.1. Komponen Utama
a. Arduino UNO
b. Grove - Chest Strap Heart Rate Sensor
c. Kabel
d. Kabel USB ( menghubungkan Arduino UNO dengan PC)
3.1.2. Komponen Tambahan
a. Buzzer
b. Resistor
c. LED (Light Emitting Diode)
3.2.
Perancangan Alat
3.2.1. Skematik Rangkaian
14
3.2.2. Langkah Percobaan
a. Persiapan
Peralatan yang dibutuhkan adalah :

Arduino UNO

Grove - Chest Strap Heart Rate Sensor

Kabel

Kabel USB ( menghubungkan Arduino UNO dengan PC)

Buzzer Module

LED
b. Membuat Rangkaian

Pasang kabel hitam pada Radio Receiver AM dengan kabel jumper
ke ground analog pin pada arduino uno.

Pasang kabel merah pada Radio Receiver AM dengan kabel jumper
ke pin 5v pada arduino uno.

Pasang kabel kuning pada Radio Receiver AM dengan kabel jumper
ke pin 2 digital pada arduino uno.

Hubungkan 2 kabel pada buzzer module ke pin ground analog pin
dan pin 9 digital pada arduino uno.

Pasang 1 buah LED dengan posisi kaki LED positif ke ground digital
pin dan kaki LED negatif ke 13 digital pin pada arduino uno.
c. Buat sketch pada program Arduino dengan source code :
unsigned int speakerPin = 9;
unsigned char LEDpin = 13;
unsigned char counter=0;
unsigned int heart_rate=0;
unsigned long temp[21];
unsigned long sub=0;
volatile unsigned char state = LOW;
bool data_effect=true;
const int max_heartpluse_duty=5000;//you can change it follow your system's
request.2000 meams 2 seconds. System return error if the duty overtrip 5 second.
void setup()
{
Serial.begin(9600);
//Serial.println("Please ready your chest belt.");
//delay(1000);
array_init();
Serial.println("Heart rate test begin.");
attachInterrupt(0, interrupt, RISING);//set interrupt 0,digital port 2
}
void loop()
{
}
void beepon(){
analogWrite(speakerPin, 150);
digitalWrite(LEDpin, HIGH);
delay(10000);
}
void beepoff(){
analogWrite(speakerPin, 0);
digitalWrite(LEDpin, LOW);
}
void sum()//calculate the heart rate
{
if(data_effect)
{
heart_rate=1200000/(temp[20]-temp[0]);//60*20*1000/20_total_time
Serial.print("Your heart rate is : ");
Serial.print(heart_rate);
Serial.println(" bpm");
}
data_effect=1;//sign bit
}
void interrupt()
{
temp[counter]=millis();
state = !state;
//Serial.println(counter,DEC);
//Serial.println(temp[counter]);
switch(counter)
{
case(0):
16
}
sub=temp[counter]-temp[20];
Serial.println(sub);
break;
default:
sub=temp[counter]-temp[counter-1];
Serial.println(sub);
beepon();
delay(10);
beepoff();
break;
}
if(sub>max_heartpluse_duty)//set 5 seconds as max heart pluse duty
{
data_effect=0;//sign bit
counter=0;
//Serial.println("Heart rate measure error,test will restart! or your dead" );
beepon();
array_init();
}
if (counter==20&&data_effect)
{
counter=0;
sum();
}
else if(counter!=20&&data_effect)
counter++;
else
{
counter=0;
data_effect=1;
}
void array_init()
{
for(unsigned char i=0;i!=20;++i)
{
temp[i]=0;
}
temp[20]=millis();
}
d. Buat Buat sketch Java pada program Processing dengan source code :
import processing.serial.*;
// Step 2: Declare PFont variable
PFont f;
Serial myPort;
// The serial port
float[] vals;
PrintWriter output;
String heartrate = "Calculating your heart rate";
void setup() {
size(400, 300);
f = createFont("Arial", 18, true);
frameRate(5);
// List all the available serial ports
println(Serial.list());
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[12], 9600);
// don't generate a serialEvent() unless you get a newline character:
myPort.bufferUntil('\n');
// An array of initiate values
vals = new float[width];
for (int i = 0; i < vals.length; i++) {
vals[i] = 250;
}
int d = day(); // Values from 1 - 31
int m = month(); // Values from 1 - 12
int y = year(); // 2003, 2004, 2005, etc.
int se = second(); // Values from 0 - 59
int mi = minute(); // Values from 0 - 59
int h = hour(); // Values from 0 - 23
String s = String.valueOf(d) + String.valueOf(m) + String.valueOf(y) + String.valueOf(h)
+ String.valueOf(mi) + String.valueOf(se);
output = createWriter("data" + s + ".txt");
}
void draw() {
background(0);
// Draw lines connecting all points
for (int i = 0; i < vals.length-1; i++) {
stroke(255, 123, 0);
strokeWeight(1.5);
line(i, vals[i], i+1, vals[i+1]);
}
// Slide everything down in the array
for (int i = 0; i < vals.length-1; i++) {
vals[i] = vals[i+1];
}
// get the ASCII string:
String inputString = myPort.readStringUntil('\n');
if (inputString != null) {
// trim off any whitespace:
String inString = trim(inputString);
output.println(inString);
output.flush();
// convert to an int and map to the screen height:
int inByte = int(inString);
// Add a new value
vals[vals.length-1] = 250 - (inByte/5);
println(inByte);
textFont(f, 18); // Step 4: Specify font to be used
fill(255);
// Step 5: Specify font color
// Step 6: Display Text
text (inByte, 5, 290);
}
else {
vals[vals.length-1] = 250;
}
if (inputString != null) {
if (inputString.charAt(0) == 'Y') {
18
}
}
}
heartrate = inputString;
textFont(f, 18); // Step 4: Specify font to be used
fill(255);
// Step 5: Specify font color
// Step 6: Display Text
text (heartrate, 180, 290);
e. Testing (Pengujian)

Dekatkan Radio Receiver AM dengan Grove - Chest Strap Heart Rate
Sensor dengan jarak maksimum 30cm.

Save dan Upload source code pada sketch program arduino. Lalu
klik pojok kanan atas pada Arduino untuk membuka Serial Monitor.
Jika berhasil maka akan tampil seperti gambar berikut :

Rubah serial port list yang digunakan pada source code sesuai
dengan port dan baut-rate yang digunakan oleh Arduino, pada
percobaan kali ini digunakan serial list nomor 12 pada COM port 27
dan baut-rate 9600 (Serial.list()[12], 9600).

Save dan Upload source code tersebut. Jangan jalankan serial
monitor yang sama dengan COM port arduino karena akan terjadi
bentrok. Jika berhasil maka akan tampil seperti gambar berikut :
3.2.3.Analisa Program

Sketch Program Arduino 1
Source Code
Penjelasan
unsigned char counter=0;
Menginisialisasi variabel
unsigned int heart_rate=0;
counter, heart_rate, temp, sub,
unsigned long temp[21];
state, data_effect dan
unsigned long sub=0;
max_heartpluse_duty.
volatile unsigned char state = LOW;
HeartPulse 2000 berarti 2 detik,
bool data_effect=true;
jika terjadi overtrip selama 2
const int max_heartpluse_duty=2000;
detik, sustem menampilkan
error.
void setup()
{
pinMode(pin, OUTPUT);
Serial.begin(9600);
Serial.println("Please ready your chest
belt.");
Mempersiapkan program untuk
delay(1000);//
menghitung detak jantung.
array_init();
Serial.println("Heart rate test begin.");
attachInterrupt(0, interrupt,
RISING);//set interrupt 0,digital port 2
}
void loop()
{
}
20
void sum()//calculate the heart rate
{
if(data_effect)
{
heart_rate=1200000/(temp[20]temp[0]);//60*20*1000/20_total_time
Serial.print("Heart_rate_is:\t");
Menghitung jumlah detak
jantungdari array temp.
Serial.println(heart_rate);
}
data_effect=1;//sign bit
}
void interrupt()
{
temp[counter]=millis();
state = !state;
Serial.println(counter,DEC);
Serial.println(temp[counter]);
switch(counter)
{
case(0):
sub=temp[counter]-temp[20];
Serial.println(sub);
break;
default:
Melakukan pengecekan secara
sub=temp[counter]-temp[counter-1];
looping terus menerus terhadap
Serial.println(sub);
terjadinya interupsi atau jika
break;
terjadi overtrip.
}
if(sub>max_heartpluse_duty)//set 2
seconds as max heart pluse duty
{
data_effect=0;//sign bit
counter=0;
Serial.println("Heart rate measure
error,test will restart!" );
array_init();
}
if (counter==20&&data_effect)
{
counter=0;
sum();
}
else if(counter!=20&&data_effect)
counter++;
else
{
counter=0;
data_effect=1;
}
}
void array_init()
{
for(unsigned char i=0;i!=20;++i)
{
Menginisialisasi nilai array temp
temp[i]=0;
agar bernilai o.
}
temp[20]=millis();
}

Sketch Pada Program Processing
Source Code
Penjelasan
import processing.serial.*;
Mengimport library untuk
melakukan hubungan data
PFont f;
melalui serial dan
Serial myPort;
menginisialisasi variabel font,
float[] vals;
serial, output untuk menulis data
PrintWriter output;
String heartrate = "Calculating your heart rate";
void setup() {
ke dalam teks dan string awal.
Prosedur setup ini dijalankan
size(400, 300);
satu kali oleh program.
f = createFont("Arial", 18, true);

Program akan membuat
frameRate(5);
jendela tampilan dengan
// List all the available serial ports
lebar 400px dan tinggi
println(Serial.list());
300px, kemudian
// Open whatever port is the one you're using.
menggunakan font Arial
myPort = new Serial(this, Serial.list()[12],
berukuran 18 dengan frame
9600);
Rate tampilan sebanyak 5
22
// don't generate a serialEvent() unless you get
a newline character:
fps.

Lalu program akan
myPort.bufferUntil('\n');
menmpilkan daftar serial
// An array of initiate values
port yang terhubung dengan
vals = new float[width];
computer, ubah data
for (int i = 0; i < vals.length; i++) {
Serial.list()[i] sesuai dengan
vals[i] = 250;
list serial port arduino, kali
}
ini menggunakan 12 karena
int d = day(); // Values from 1 - 31
arduino terhubung pada
int m = month(); // Values from 1 - 12
COM port 27 dan berada
int y = year(); // 2003, 2004, 2005, etc.
pada list 12.
int se = second(); // Values from 0 - 59

myPort.buffer untuk
int mi = minute(); // Values from 0 - 59
membaca data yang
int h = hour(); // Values from 0 - 23
didapatkan dari serial port
String s = String.valueOf(d) + String.valueOf(m)
diatas.
+ String.valueOf(y) + String.valueOf(h) +

String.valueOf(mi) + String.valueOf(se);
Kemudian inisialisasi waktu
sistem untuk membuat file
output = createWriter("data" + s + ".txt");
teks dengan format “data” +
}
waktu sistem untuk
menyimpan seluruh data
yang diterima.
void draw() {
Prosedur draw ini dijalankan
background(0);
berulang kali oleh program.
// Draw lines connecting all points

for (int i = 0; i < vals.length-1; i++) {
Program akan membuat
garis untuk membuat grafik
stroke(255, 123, 0);
dari setiap titik point pada
strokeWeight(1.5);
kurva grafik.
line(i, vals[i], i+1, vals[i+1]);

}
Program membaca data pada
serial port kemudian
menghapus whitespace
// Slide everything down in the array
(spasi) dan konversi ke
for (int i = 0; i < vals.length-1; i++) {
dalam integer. Data inilah
vals[i] = vals[i+1];
yang digunakan sebagai
}
point (titik pada grafik), data
ini juga ditampilkan pada
// get the ASCII string:
program secara realtime.
String inputString =
Data ini merupakan data
myPort.readStringUntil('\n');
kuatnya denyut jantung.

output.println(inString); dan
if (inputString != null) {
output.flush(); merupakan
// trim off any whitespace:
fungsi untuk menulis data
String inString = trim(inputString);
pada teks file pada prosedur
output.println(inString);
setup.

output.flush();
// convert to an int and map to the screen
height:
Jika data pada serial port
berisi data rata-rata denyut
jantung maka denyut jantung
int inByte = int(inString);
tersebut akan ditampilkan
// Add a new value
pada bagian kanan bawah
vals[vals.length-1] = 250 - (inByte/5);
program.
println(inByte);
textFont(f, 18); // Step 4: Specify font to be
used
fill(255);
// Step 5: Specify font color
// Step 6: Display Text
text (inByte, 5, 290);
}
else {
vals[vals.length-1] = 250;
}
if (inputString != null) {
if (inputString.charAt(0) == 'Y') {
heartrate = inputString;
}
}
textFont(f, 18); // Step 4: Specify font to be
used
fill(255);
// Step 5: Specify font color
// Step 6: Display Text
text (heartrate, 180, 290);
}
3.3. Hasil Percobaan
Dari percobaan yang telah dijelaskan dan dilakukan sebelumnya,
percobaan penghitungan denyut jantung menggunakan Grove Chest Strap Heart
Rate Sensor dengan Arduino Uno mendapatkan hasil sebagai berikut:

Arduino Uno dapat dihubungkan dengan Grove Chest Strap Heart Rate Sensor.
24

Pada program, arduino melakukan konversi data analog (dari sensor suhu)
menjadi digital dengan kekuatan denyut jantung dan frekuensi jantung dengan
satuan BPM (beats per minute) yang ditampilkan dengan grafik dan angka.

Data denyut jantung tersebut dapat ditampilkan baik menggunakan serial
monitor pada computer, lalu data serial tersebut dapat ditampilkan ke dalam
bentuk grafik.

Suara yang dihasilkan buzzer mengikuti tempo denyut jantung yang terdeteksi,
apabila denyut berhenti sekitar 5 detik, maka buzzer akan menghasilkan bunyi
yang panjang.

Cahaya yang dihasilkan LED mengikuti tempo denyut jantung.

Hasil rekam denyut jantung akan tersimpan datanya secara otomatis dengan
formati teks ekstensi .txt dengan format nama file “data” + waktu percobaan.
BAB 4
PENUTUP
4.1. Kesimpulan
Dari keseluruhan rangkaian pembuatan dan pemrograman sampai hasil yang
didapat dari alat penghitung denyut jantung yang memanfaatkan perangkat Grove Chest Strap Heart Rate dan Arduino UNO ini, maka dapat diambil beberapa
kesimpulan, yaitu :
 Alat ini dapat digunakan untuk melakukan penghitungan denyut jantung per
menit dalam bentuk angka maupun grafik dan menyimpan data kedalam file text.
 Jarak radio AM Receiver dengan Grove - Chest Strap Heart Rate (nirkabel) hanya
dapat menjangkau sensor denyut jantung sejauh 30 cm. Jika jarak melebihi batas
maksimal, data tidak dapat diterima.
 Pada perangkat ini, Grove - Chest Strap Heart Rate harus benar-benar
menyentuh kulit dan berada di area dekat jantung. Jika tidak, maka denyut
jantung tidak terdeteksi dan error.
 Alat Grove - Chest Strap Heart Rate ini masih belum akurat untuk melakukan
penghitungan denyut jantung karena dipengaruhi beberapa faktor seperti detak
jarak, gerakan dan kuat/tidaknya denyut.
 LED dan buzzer akan menghasilkan cahaya dan suara mengikuti tempo denyut
jantung yang terdeteksi oleh sensor Grove - Chest Strap Heart Rate.
4.2. Saran
Alat penghitung detak jantung ini masih terdapat banyak kekurangan dan perlu
dilakukan pengembangannya guna hasil yang lebih baik. Berikut uraiannya :

Pembuatan alat sejenis ini dapat dibuat lebih akurat dan jarak penerimaan data
denyut bisa sejauh mungkin.

Source code aplikasi arduino yang digunakan belum memiliki fungsi yang
lengkap.
26
DAFTAR PUSTAKA
Bräunl, Thomas. Embedded Robotics - Mobile Robot Design and Applications with
Embedded Systems, Second Edition.Springer, Jerman,Juni 2006. [3]
Byte Craft Limited. First Steps with Embedded Systems. Byte Craft Limited,
Kanada, November 2012. [1]
Wilmshurst, Tim.Designing Embedded Systems with PIC Microcontrollers Principles and Applications.Elsevier Ltd, Inggris, 2007. [2]
Internet :
http://www.seeedstudio.com/wiki/Grove_-_Heart_rate_chest_belt_kit
http://irpan91.blogspot.com/2012/05/cara-menghitung-denyut-nadi.html
http://arduino.cc/en/Tutorial/Graph
http://cmuems.com/2012/c/arduino-processing/
Download