Professional Documents
Culture Documents
Oleh :
i
LEMBAR PERSETUJUAN
Disusun oleh:
Dosen Pembimbing,
Mengetahui:
Ketua Jurusan, Kepala Program Studi,
ii
LEMBAR PENGESAHAN
Disusun oleh:
Telah dipertahanan di depan Tim Penguji pada tanggal 12 Agustus 2019 dan
dinyatakan telah memenuhi syarat guna memperoleh gelar Ahli Madya.
Dosen Pembimbing,
Ketua Penguji
Dr. Arnita Sitorus, M.Pd ( )
Penguji 1:
Ir. Suhaili Alifuddin, M.Eng ( )
Penguji 2:
Febrin Aulia Batubara, ST.MT ( )
iii
ABSTRACT
So students know the condition of the body can improve their lifestyle if the
results of the measurement are not good and maintain a lifestyle if the
measurements obtained are in accordance with normal humans. Routine
measurements can be done at any time either after the activity or before the
activity and do the comparison of the results obtained. The results of these
measurements can be viewed through the website provided or from the LCD
display on the device during the measurement. This tool has special specifications
such as being able to connect to a WiFi network via the ESP8266 module in
combination with an Arduino Nano controller.
iv
ABSTRAK
v
KATA PENGANTAR
Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Esa yang telah
akhir ini. Disusun untuk memenuhi syarat kelulusan akademik dan untuk
Monitor Body Mass Index, Suhu Tubuh, dan Denyut NadiMealui Web Berbasis
Arduino Nano. Dalam penulisan tugas akhir, penulis banyak mendapat bantuan
dan bimbingan dari berbagai pihak, sehingga Tugas Akhir ini dapat diselesaikan.
Telekomunikasi
vi
9. Teman-teman mahasiswa seperjuangan dan seluruh pihak yang telah
Akhir ini jauh dari kesempurnaan sehingga penulis mengharapkan saran dan kritik
yang bersifat membangun. Semoga laporan Tugas Akhir ini bermanfaat bagi
Hormat Kami,
Penulis
vii
DAFTAR ISI
Halaman
LEMBAR PERSETUJUAN........................................................................... i
LEMBAR PENGESAHAN............................................................................ ii
ABSTRAK ..................................................................................................... iii
ABSTRACT ..................................................................................................... iv
KATA PENGANTAR.................................................................................... v
DAFTAR ISI................................................................................................... vii
DAFTAR GAMBAR...................................................................................... ix
DAFTAR TABEL........................................................................................... x
DAFTAR LAMPIRAN................................................................................... xi
BAB 1 PENDAHULUAN............................................................................. 1
1.1. Latar Belakang Masalah.............................................................. 1
1.2. Rumusan Masalah....................................................................... 2
1.3. Batasan Masalah.......................................................................... 2
1.4. Tujuan Penulisan......................................................................... 3
1.5. Manfaat Penulisan....................................................................... 3
1.6. Landasan Teori............................................................................ 3
1.7. Sistematika Penulisan.................................................................. 4
viii
2.7 LCD Alphanumeric .................................................................... 10
2.8 Modul I2C................................................................................... 11
2.9 Sensor Denyut Nadi Max30100.................................................. 12
2.10 Arduino Nano.............................................................................. 13
2.11 NodeMCU................................................................................... 14
2.12 Adaptor Power ........................................................................... 15
BAB 3 METODE.......................................................................................... 17
3.1. Perancangan sistem..................................................................... 18
3.2. Blok Diagram.............................................................................. 18
3.3. Cara Kerja sistem........................................................................ 19
3.4. Perangkat Keras........................................................................... 20
3.5. Perangkat Lunak.......................................................................... 20
3.6. Perancangan Hardware Alat ....................................................... 21
3.7 Perancangan Perawat Lunak........................................................ 25
ix
DAFTAR GAMBAR
Gambar Halaman
x
DAFTAR TABEL
Tabel Halaman
xi
DAFTAR LAMPIRAN
Halaman
xii
1
BAB 1
PENDAHULUAN
Berat badan ideal dipengaruhi oleh banyak faktor diantaranya suhu dan jenis
kelamin. Seseorang dikatakan kelebihan berat badan apabila berat badannya 10%
lebih berat dari berat ideal, bila berat badannya lebih dari 20 % maka kondisi ini
disebut obesitas, sedangkan bila berat badannya 10 % kurang dari berat badan
ideal maka kondisi ini disebut kekurangan nutrisi.
Indeks Massa Tubuh (Body Mass Index) adalah pegukuran yang
memperlihatkan kesesuaian antara berat badan dengan tinggi badan seseorang.
Bila BMI berada pada antara 18 – 25 maka seseorang dianggap sehat, sedangkan
resiko mengalami masalah kesehatan meningkat apabila nilai BMI diatas 25.
Berbagai bagian tubuh memiliki suhu tubuh berlainan, dan besar perbedaan
suhu antara bagian-bagian tubuh dengan suhulingkungan bervariasi. Pada
manusia, nilai normal untuk suhu aksila adalahdalam rentang antara 36 °C – 37
°C, pada oral antara 36,5 °C - 37,5 °C dan suhu pada rektal biasanya 0,6 °C lebih
tinggi daripada suhu aksila. Suhu normal orang muda pada pagi hari berkisar
antara 36,3°C ± 37,1 °C. Suhu tubuh dipengaruhi oleh berbagai faktor seperti
aktivitas, suhu lingkungan, keadaan emosi, usia, jenis kelamin, hidrasi, obat-
obatan, pakaian, dan lain-lain. Denyut nadi adalah frekuensi irama denyut/detak
jantung yang dapat dipalpasi (diraba) dipermukaan kulit pada tempat-tempat
tertentu.
Pada jantungmanusia normal, tiap-tiap denyut berasal dari noddus SA
(irama sinus normal,NSR= Normal Sinus Rhythim). Waktu istirahat, jantung
berdenyut kira-kira 70kali kecepatannya berkurang waktu tidur dan bertambah
karena emosi, kerja,demam, dan banyak rangsangan yang lainnya. Denyut nadi
normal 33,2bpm seseorang akan terus meningkat bila suhu tubuh meningkat
kecuali bila pekerja yang bersangkutan telah beraklimatisasi terhadap suhu udara
yang tinggi. Denyut nadi maksim umuntuk orang dewasa adalah 180-200 denyut
1
2
per menit dan keadaan ini biasanya hanya dapat berlangsung dalam waktu
beberapa menit saja .
1.4. Tujuan
Adapun tujuan dari Proyek Akhir ini:
1. Melalukan pengukuran Body Mass Indexmelalui kalkulasi tinggi badan
dan berat badan,serta pengukuran suhu tubuh dan denyut nadi
menggunakan Arduino Nano.
2. Melakukan pengambilan data hasil pengukuran detak Body Mass Index,
suhu tubuh dan denyut nadi untuk ditampilkan pada LCD.
3. Mengirim data hasil pengukuran Body Mass Index, suhu tubuh dan
denyut nadi ke web server.
4. Menyimpan dan menampilkan hasil data pengukuran Body Mass Index,
suhu tubuh dan denyut nadi sebagai bagian dari informasi medis
mahasiswa ke dalam database server.
1.5. Manfaat
Dengan dirancang dan di buatnya alat ini, diharapkan depat mempermudah
beberapa aspek, antara laing:
1. Mahasiwa memonitor berat dan tinggi badannya sesuai dengan Indeks
Masa Tubuh.
2. Mahasiswa dapat memantau denyut nadi, kadar oksigen darah, dan suhu
tubuh sebagai parameter kesehatan melalui web yang disediakan.
1.6. Metodologi
Dalam Penulisan Tugas Akhir ini penulis mengumpulkan data yang
dilakukan sebagai berikut :
Sistematika yang digunakan pada tugas akhir ini adalah sebagai berikut.
BAB 1 PENDAHULUAN
Berisi tentang konsep dasar dan teori-teori pendukung yang berkaitan dengan
proses perancangan dan pembuatan sistem.
BAB 3 METODE
Bab ini terdiri atas dua bagian, yaitu: perancangan dan pembuatan. Pada
perancangan berisi tentang sistem yang akan dibuat mulai dari perancangan blok
diagram, perancangan sistem tiap blok hingga menjadi sistem secara utuh. Pada
pembuatan berisi tentang realisasi sistem mulai dari perakitan dan pengisian
program ke modul yang digunakan.
Berisi tentang hasil uji coba sistem, baik hardware maupun software secara
keseluruhan serta membuat analisa data dari setiap hasil pengujian.
BAB 5 PENUTUP
Bab ini berisi kesimpulan dari pembahasan dan analisa yang diperoleh, untuk
meningkatkan mutu dari sistem yang telah dibuat serta saran-saran untuk
perbaikan dan penyempurnaan sistem.
LAMPIRAN
TINJAUAN PUSTAKA
Berbeda dengan orang dewasa, BMI pada anak berubah sesuai umur dan
sesuai dengan peningkatan panjang dan berat badan. BMI digunakan untuk
penilaian obesitas akan tetapi bukan merupakan indeks adipositas karena tidak
membedakan jaringan tanpa lemak (leantissue) dan tulang dari jaringan lemak.
5
6
Sensor Ultrasonik pada sistem ini berfungsi sebagai sensor pembaca tinggi
badan, sensor ini dipasang pada ujungsebuah tiang dengan tinggi 180 cm untuk
membaca tinggi badan sesorang yang berada dibawahnya.
untuk mendeteksi tekanan atau berat sebuah beban, sensor LoadCell umumnya
digunakan sebagai komponen utama pada sistem timbangan digital dan dapat
diaplikasikan pada jembatan timbangan yang berfungsi untuk menimbang berat
dari truk pengangkut bahan baku, pengukuran yang dilakukan oleh LoadCell
menggunakan prinsip tekanan.
Prinsip kerja sensor regangan ketika mendapat tekanan beban. Ketika bagian lain
yang lebih elastic mendapat tekanan, maka pada sisi lain akan mengalami
perubahan regangan yang sesuai dengan yang dihasilkan oleh straingauge, hal
initerjadi karena ada gaya yang seakan melawan pada sisi lainnya. Perubahan nilai
resistansi yang diakibatkan oleh perubahan gaya diubah menjadi nilai tegangan
oleh rangkaian pengukuran yang ada. Dan berat dari objek yang diukur dapat
diketahui dengan mengukur besarnya nilai tegangan yang timbul.
1 Vss Ground
6 E High/Low - Enable
15 A Anoda Led
16 K Katoda Led
2.11. NodeMCU
Prinsip dasar dari adaptor powersupply ini adalah dengan merubah 220V
AC menjadi 12V DC dengan arus keluaran mencapai 1A. Tegangan 12V DC
tersebut nantinya akan disesuaikan dengan tegangan kerja Arduino Nano dan
komponen modul pendukung lainnya dengan tambahan modulPrototype
ShieldArduno Nano.
BAB 3
METODE
3.1. Perancangan sistem
Pada perancangannya sistem merupakan suatu sistem pengukuran ter-
integrasi yang dapat mengukur, berat dan tinggi badan, suhu tubuh, hinggi denyut
nadi. Alat ini terdiri dari beberapa sub-sistem untuk menunjang kinerjanya.
Beberapa bagian tersebut adalah sebagai berikut:
1. Catu daya, berfungsi sebagai sumber daya listrik alat.
2. Subsistem pembaca tinggi badan, bagian ini merupakan tanggung jawab
sensor ultrasonic HC-SR04.
3. Subsistem pembaca berat badan, pada bagian ini sensor load-cell merupakan
yang terpenting, sensor loadcell dihubungkan dengan modu HX711 agar
pembacaan sensor dapat dibaca oleh Arduino.
4. Subsistem pembaca denyut nadi di baca oleh modul Max30100, sensor ini
membaca pulse darah yang mengalir di ujung jari.
5. Subsistem pengukur suhu tubuh, pada bagian ini sensor yang digunakan
adalah ds18b20.
6. Subsistem display, berfungsi menampilkan informasi status pembacaan
sensor, tahapan pengukuran, dan konfirmasi pengiriman data.
7. Sistem web, dimana data yang terbaca oleh alat akan dikirimkan ke database
yang ada di server, lalu kemudian ditampilkan ke laman web.
17
18
Arduino uno sebagai pusat kendali akan menunggu aba – aba dari keypad,
apabila pada keypad ditekan angka’1’, maka LCD kan memberikan infirmasi ke
pengguna untuk memasukan NIM. Apabila angka yang dimasukan sudah sama
dengan sepuluh digit, maka tahapan ini dianggap selesai.
19
Kemudian apabila pennguna menekan angka ‘2’ pada keypad, maka sistem
akan meminta pengguna memilih jenis kelamin dengan menekan tombol keypad
‘A’ untuk wanita, dan keypad ‘B’ untuk pria, dan otomatis selesai.
Setelahnya, apabila angka ‘3’ ditekan, maka pengukuran berat badan akan
dimulai, pengguna harus menginjak papan alas agar loadcell dapat melakukan
pembacaan. Setelah angka berat badan keluar, maka pengukuran ini dianggap
selesai.
Disisi lain, yaitu web server, akan menunggu data pembacaan yang masuk
untuk kemudian di simpan kedalam database untuk nantinya dapat ditampilkan
kedalam laman web dengan mengunjungi alamat IP server yang berada di jaringan
yang sama.
20
b. Easy EDA
Electronic design automation (EDA) adalah kategori software tools untuk
merancang sistem elektronik seperti IC dan PCB. Easy EDA adalah
perangkat EDA berbasis web yang memungkinkan teknisi hardware untuk
merancang, mensimulasikan, berbagi publik dan pribadi dan mendiskusikan
skema, simulasi dan PCB. Pada tugas akhir ini, Easy EDA digunakan untuk
membuat skematik rangkaian komponen.
21
c. XAMPP
XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem
operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai
server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP
Server, MySQL database, dan penerjemah bahasa yang ditulis dengan Bahasa
pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat
sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia
dalam General Public License dan bebas, merupakan web server yang mudah
digunakan yang dapat melayani tampilan halaman web yang dinamis. Pada proyek
tugas akhir ini kami XAMPP merupakan software yang kami gunakan untuk
menginstal, men-setting, dan menjalankan server.
d. PHP
PHP (PHP: Hypertext Preprocessor) adalah bahasa serverside scripting
yang menyatu dengan HTML untuk membuat halaman web yang dinamis. Karena
PHP merupakan serverside scripting maka sintaks dan perintah-perintah PHP
akan dieksekusi di server kemudian hasilnya dikirmkan ke browser dalam format
HTML. PHP termasuk dalam Open Source Product, sehingga source code PHP
dapat dirubah dan didistribusikan secara bebas. PHP dapat berjalan di sistem
operasi apapun seperti Windows dan Linux.
#include<Keypad.h>
#include<EEPROM.h>
#include"HX711.h"
#include<OneWire.h>
#include<DallasTemperature.h>
#include<Wire.h>
#include<LiquidCrystal_I2C.h>
#include"MAX30100_PulseOximeter.h"
#include"MAX30100.h"
#include<SoftwareSerial.h>
SoftwareSerials(5,6);// (Rx, Tx)
longduration;
intdistance,Gender;
charbuffer[2];
StringNIM,nim1,nim2,nim3,nim4,nim5,data1,data2,data3,data4,data5,d
ata6,data7;
#defineREPORTING_PERIOD_MS1000
#definecalibration_factor-22600.0
#definetrigPin13
#defineechoPin12
#defineONE_WIRE_BUSA0
#defineDOUT 3
#defineCLK 2
constbyteROWS=4;//fourrows
constbyteCOLS=4;//fourcolumns
charhexaKeys[ROWS][COLS]=
{ {'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'} };
byterowPins[ROWS]={4,7,8,9};
bytecolPins[COLS]={10,11,A2,A3};
26
KeypadmyKeypad=Keypad(makeKeymap(hexaKeys),rowPins,colPins,ROWS,CO
LS);
HX711scale;
OneWireoneWire(ONE_WIRE_BUS);
DallasTemperaturesensors(&oneWire);
LiquidCrystal_I2Clcd(0x27,16,2);
PulseOximeterpox;
uint32_ttsLastReport=0;
voidsetup(){
Serial.begin(115200);// Startsthe serial communication
s.begin(9600);
lcd.begin();
Serial.println(" Inisialisasi LCD ");
//esp.begin(9600);
sensors.begin();
Serial.println(" Inisialisasi DS18B20 ");
Wire.begin();
Serial.println(" Inisialisasi I2C ");
pox.begin();
Serial.println(" Inisialisasi MAX30100 ");
//reset();
//connectWifi();
//pox.setOnBeatDetectedCallback(onBeatDetected);
pinMode(trigPin,OUTPUT);// SetsthetrigPin as anOutput
pinMode(echoPin,INPUT);// SetstheechoPin as anInput
scale.begin(DOUT,CLK);
scal
e.set_scale(calibration_factor);//Thisvalueisobtainedbyusingthe
SparkFun_HX711_Calibration sketch
scale.tare();
Serial.println(" InisialisasiLoadCell ");
lcd.setCursor(0,0);
lcd.print(" Inisialisasi ");
lcd.setCursor(0,1);
lcd.print(" Sistem ");
Serial.println(" Inisialisasi Selesai ");
delay(2000);
}
voidloop(){
lcd.setCursor(0,0);
lcd.print("ALAT MONITOR BMI");
lcd.setCursor(0,1);
lcd.print("SUHU TUBUH & NADI");
pox.update();
// Asynchronouslydumpheartrateandoxidationlevelstothe serial
27
delay(1000);}
elseif(key=='3'){
Serial.println(" Body Mass Enter ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengukuran B.Berat:");
delay(5000);
floatberat=scale.get_units();
lcd.setCursor(0,1);
EEPROM.write(3,berat);
Serial.println(" OK ");
Serial.println(EEPROM.read(3)+" Kg");
lcd.print(EEPROM.read(3));
lcd.print(" kg");
delay(2000);
Serial.println(" BodyHeightEnter");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengukuran T.Badan:");
delay(5000);
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duration=pulseIn(echoPin,HIGH);
distance=duration*0.034/2;
floattinggiPenyangga=185;
floattinggiBadan=tinggiPenyangga-distance;
EEPROM.write(4,tinggiBadan);
Serial.println(" OK");
Serial.println(EEPROM.read(4)+" CM");
lcd.setCursor(0,1);
lcd.print(EEPROM.read(4));
lcd.print(" cm");
delay(2000);
floatm=EEPROM.read(3);
Serial.println(m);
floath=EEPROM.read(4);
floathd=h/100;
floath2=hd*hd;
floatbmi=(m)/(h2);
EEPROM.write(5,bmi);//Tinggi Badan
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BMI: ");
lcd.setCursor(0,1);
lcd.print(EEPROM.read(5));
delay(2000);
}
29
elseif(key=='4'){
Serial.println(" BodyTemp. Enter ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengukuran");
sensors.requestTemperatures();
lcd.setCursor(0,1);
lcd.print("Suhu Tubuh: ");
delay(15000);
floatsuhu=sensors.getTempCByIndex(0);
lcd.print(suhu);
lcd.print("*C");
delay(2000);
EEPROM.write(6,suhu);
Serial.println(" OK");
Serial.println(EEPROM.read(6)+" *C");}
elseif(key=='5'){
EEPROM.write(7,0);
Serial.println(" HeartRateEnter ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengkuran Denyut");
lcd.setCursor(0,1);
lcd.print("Nadi: " );
lcd.setCursor(7,1);
lcd.print(pox.getHeartRate());
lcd.print(" bpm");
delay(1000);
tsLastReport=millis();
EEPROM.write(7,pox.getHeartRate());
Serial.println(" OK");
Serial.println(EEPROM.read(7)+" BPM");
delay(500);}
elseif(key=='*'){
buffer[0]=EEPROM.read(10);
buffer[1]=EEPROM.read(11);
nim1=atoi(buffer);
nim1=String(nim1);
buffer[0]=EEPROM.read(12);
buffer[1]=EEPROM.read(13);
nim2=atoi(buffer);
nim2=String(nim2);
buffer[0]=EEPROM.read(14);
buffer[1]=EEPROM.read(15);
nim3=atoi(buffer);
nim3=String(nim3);
buffer[0]=EEPROM.read(16);
buffer[1]=EEPROM.read(17);
nim4=atoi(buffer);
30
nim4=String(nim4);
buffer[0]=EEPROM.read(18);
buffer[1]=EEPROM.read(19);
nim5=atoi(buffer);
nim5=String(nim5);
Serial.println(" OK ");
if(nim2=="0"||nim2=="1"||nim2=="2"||nim2=="3"||nim2=="4"||
nim2=="5"||nim2=="6"||nim2=="7"||nim2=="8"||
nim2=="9")nim2="0"+nim2;
delay(50);
if(nim3=="0"||nim3=="1"||nim3=="2"||nim3=="3"||nim3=="4"||
nim3=="5"||nim3=="6"||nim3=="7"||nim3=="8"||
nim3=="9")nim3="0"+nim3;
delay(50);
if(nim4=="0"||nim4=="1"||nim4=="2"||nim4=="3"||nim4=="4"||
nim4=="5"||nim4=="6"||nim4=="7"||nim4=="8"||
nim4=="9")nim4="0"+nim4;
delay(50);
if(nim5=="0"||nim5=="1"||nim5=="2"||nim5=="3"||nim5=="4"||
nim5=="5"||nim5=="6"||nim5=="7"||nim5=="8"||
nim5=="9")nim5="0"+nim5;
delay(1500);
NIM=nim1+nim2+nim3+nim4+nim5;
data1=String(NIM);//Nomor Induk Mahasiswa
s.print(data1);
data2=String(EEPROM.read(2));//Jenis Kelamin
s.print(data2);
data3=String(EEPROM.read(3));//
s.print(data3);
data4=String(EEPROM.read(4));
s.print(data4);
data5=String(EEPROM.read(5));//BMI
s.print(data5);
data6=String(EEPROM.read(6));//Suhu Badan
s.print(data6);
data7=String(EEPROM.read(7));//Denyut Nadi
s.println(data7);
StringdataKirim =String(data1)+
String(data2)+
String(data3)+
String(data4)+
String(data5)+
String(data6)+
String(data7);
Serial.println(dataKirim);
delay(500);
lcd.print("Mengirim Data");
Serial.println("Mengirim Data");
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Proses.....");
Serial.println("Proses.....");
Serial.print(dataKirim);
lcd.setCursor(0,1);
lcd.print("Mengirim Data");
delay(1000);
lcd.clear();
lcd.print(dataKirim);
delay(2000);
Serial.println("Mengirim Data");
Serial.println(" OK");
Serial.print(char(176));
//s.println(dataKirim);
}
}
delay(100);}
voidonBeatDetected()
{Serial.println("Beat!");}
32
Masuk kedalam folder htdocs. Lalu buat folder baru dan beri nama “bmi”.
Nantinya didalam folder ini akan disimpan file php yang bertugas menampilkan
data absensi dan menyimpan data absensi ke database.
33
Didalam folder “bmi” akan dibuat tiga file php pendukung kinerja server.
Diantaranya terdapat program php untuk menyimpan data yang dikirim oleh
NodeMCU ke server lalu memasukannya kedalam database, file program ini
diberi nama “postdata.php”. Kemudian terdapat file program yang bertugas
menampilkan data absensi kedalam tampilan web, file program ini akan diberi
nama “viewdata.php”.
<?php
$servername = "localhost";
$username = "root";
$password = "";
if ($conn->connect_error) {
die("Connection failed: " . $conn-
>connect_error);}
34
$conn->close();
echo "<br>";
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "data_data";
$conn->close();?>
D:/xampp
├── htdocs/
├── bmi
├──installdatabase.php
├──postdata.php
├──viewdata.php
Folder bmi didalam folder htdocs sebagai folder utama, yaitu tempat menyimpan
seluruh file konfigurasi sistem web, baik tempat diletakkannya file php pengontrol
database (postdta.php) dan penampil data ke browser (viewdata.php). Berikut ini
merupakan gambar web yang ditampilkan oleh viewdata.php.
36
42
43
5 46,7
3 1 80,03
2 60,05
3 63,08
4 85,63
5 69,023
4.2. SpesifikasiAlat
CatuDaya 12V 2A
BAB 5
5.1 Simpulan
47
48
5.2 Saran
1. Alat ini masih jauh dari kata sempurna . oleh karena itu, kami sarankan
agar alat ini dapat terus dikembangkan dengan menambahkan komponen
yang lebih mendukung seperti menggunakan sensor yang lebih akurat
dan desain yang lebih ringan atau kokoh
2. Kami sarankan alat ini kedepannya dibuat lebih kecil toleransinya
dibawah 2%
DAFTAR PUSTAKA
usilo, Rahaden, Rudi Sucipto dan Angga Sela. 2002. Sensor elektro . Malang:
Bagian Penerbitan Fisika UB
http://blog.vcc2gnd.com/2014/02/mg995-high-torque-metal-gear-servo-
motor_32.html
http://www.scribd.com/doc/225500394/Jurnal
http://electrosome.com/interfacing-servo-motor-with-atmega32-
microcontroller/
http://dosen.narotama.ac.id/wp-content/uploads/2012/01/Bmi.pdf
http://zonaelektro.net/sensor/
http://antosusilo.blog.uns.ac.id/2009/09/07/sistem-sensor-HC-SR05/
http://elektronika-dasar.web.id/komponen/sensor-tranducer/infra-red-ir-
detektor
sensor-loadcell/
http://id.wikipedia.org/wiki/arduinonanohttps://rayendente.wordpress.com/201
5/03/26/sensor-inframerah/
http://saptaji.com/2016/06/27/bekerja-dengan-i2c-lcd-dan-arduino/
http://eko-rudiawan.com/rangkaian-power-supply-sederhana/
49
50
LAMPIRAN
longduration;
intdistance,Gender;
charbuffer[2];
StringNIM,nim1,nim2,nim3,nim4,nim5,data1,data2,data3,data4,data5,d
ata6,data7;
#defineREPORTING_PERIOD_MS1000
#definecalibration_factor-22600.0
#definetrigPin13
#defineechoPin12
#defineONE_WIRE_BUSA0
#defineDOUT 3
#defineCLK 2
constbyteROWS=4;//fourrows
constbyteCOLS=4;//fourcolumns
charhexaKeys[ROWS][COLS]=
{ {'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'} };
byterowPins[ROWS]={4,7,8,9};
bytecolPins[COLS]={10,11,A2,A3};
KeypadmyKeypad=Keypad(makeKeymap(hexaKeys),rowPins,colPins,ROWS,CO
LS);
HX711scale;
OneWireoneWire(ONE_WIRE_BUS);
DallasTemperaturesensors(&oneWire);
LiquidCrystal_I2Clcd(0x27,16,2);
PulseOximeterpox;
uint32_ttsLastReport=0;
51
voidsetup(){
Serial.begin(115200);// Startsthe serial communication
s.begin(9600);
lcd.begin();
Serial.println(" Inisialisasi LCD ");
//esp.begin(9600);
sensors.begin();
Serial.println(" Inisialisasi DS18B20 ");
Wire.begin();
Serial.println(" Inisialisasi I2C ");
pox.begin();
Serial.println(" Inisialisasi MAX30100 ");
//reset();
//connectWifi();
//pox.setOnBeatDetectedCallback(onBeatDetected);
pinMode(trigPin,OUTPUT);// SetsthetrigPin as anOutput
pinMode(echoPin,INPUT);// SetstheechoPin as anInput
scale.begin(DOUT,CLK);
scal
e.set_scale(calibration_factor);//Thisvalueisobtainedbyusingthe
SparkFun_HX711_Calibration sketch
scale.tare();
Serial.println(" InisialisasiLoadCell ");
lcd.setCursor(0,0);
lcd.print(" Inisialisasi ");
lcd.setCursor(0,1);
lcd.print(" Sistem ");
Serial.println(" Inisialisasi Selesai ");
delay(2000);
}
voidloop(){
lcd.setCursor(0,0);
lcd.print("ALAT MONITOR BMI");
lcd.setCursor(0,1);
lcd.print("SUHU TUBUH & NADI");
pox.update();
// Asynchronouslydumpheartrateandoxidationlevelstothe serial
// For both, a value of 0 means "invalid"
if(millis()-tsLastReport>REPORTING_PERIOD_MS){
Serial.print("Heartrate:");
Serial.print(pox.getHeartRate());
tsLastReport=millis();}
charkey=myKeypad.getKey();
Serial.println(key);
if(key){
if(key=='1'){
52
EEPROM.write(3,berat);
Serial.println(" OK ");
Serial.println(EEPROM.read(3)+" Kg");
lcd.print(EEPROM.read(3));
lcd.print(" kg");
delay(2000);
Serial.println(" BodyHeightEnter");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengukuran T.Badan:");
delay(5000);
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duration=pulseIn(echoPin,HIGH);
distance=duration*0.034/2;
floattinggiPenyangga=185;
floattinggiBadan=tinggiPenyangga-distance;
EEPROM.write(4,tinggiBadan);
Serial.println(" OK");
Serial.println(EEPROM.read(4)+" CM");
lcd.setCursor(0,1);
lcd.print(EEPROM.read(4));
lcd.print(" cm");
delay(2000);
floatm=EEPROM.read(3);
Serial.println(m);
floath=EEPROM.read(4);
floathd=h/100;
floath2=hd*hd;
floatbmi=(m)/(h2);
EEPROM.write(5,bmi);//Tinggi Badan
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BMI: ");
lcd.setCursor(0,1);
lcd.print(EEPROM.read(5));
delay(2000);
}
elseif(key=='4'){
Serial.println(" BodyTemp. Enter ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengukuran");
sensors.requestTemperatures();
lcd.setCursor(0,1);
lcd.print("Suhu Tubuh: ");
delay(15000);
floatsuhu=sensors.getTempCByIndex(0);
54
lcd.print(suhu);
lcd.print("*C");
delay(2000);
EEPROM.write(6,suhu);
Serial.println(" OK");
Serial.println(EEPROM.read(6)+" *C");}
elseif(key=='5'){
EEPROM.write(7,0);
Serial.println(" HeartRateEnter ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Pengkuran Denyut");
lcd.setCursor(0,1);
lcd.print("Nadi: " );
lcd.setCursor(7,1);
lcd.print(pox.getHeartRate());
lcd.print(" bpm");
delay(1000);
tsLastReport=millis();
EEPROM.write(7,pox.getHeartRate());
Serial.println(" OK");
Serial.println(EEPROM.read(7)+" BPM");
delay(500);}
elseif(key=='*'){
buffer[0]=EEPROM.read(10);
buffer[1]=EEPROM.read(11);
nim1=atoi(buffer);
nim1=String(nim1);
buffer[0]=EEPROM.read(12);
buffer[1]=EEPROM.read(13);
nim2=atoi(buffer);
nim2=String(nim2);
buffer[0]=EEPROM.read(14);
buffer[1]=EEPROM.read(15);
nim3=atoi(buffer);
nim3=String(nim3);
buffer[0]=EEPROM.read(16);
buffer[1]=EEPROM.read(17);
nim4=atoi(buffer);
nim4=String(nim4);
buffer[0]=EEPROM.read(18);
buffer[1]=EEPROM.read(19);
nim5=atoi(buffer);
nim5=String(nim5);
Serial.println(" OK ");
55
if(nim2=="0"||nim2=="1"||nim2=="2"||nim2=="3"||nim2=="4"||
nim2=="5"||nim2=="6"||nim2=="7"||nim2=="8"||
nim2=="9")nim2="0"+nim2;
delay(50);
if(nim3=="0"||nim3=="1"||nim3=="2"||nim3=="3"||nim3=="4"||
nim3=="5"||nim3=="6"||nim3=="7"||nim3=="8"||
nim3=="9")nim3="0"+nim3;
delay(50);
if(nim4=="0"||nim4=="1"||nim4=="2"||nim4=="3"||nim4=="4"||
nim4=="5"||nim4=="6"||nim4=="7"||nim4=="8"||
nim4=="9")nim4="0"+nim4;
delay(50);
if(nim5=="0"||nim5=="1"||nim5=="2"||nim5=="3"||nim5=="4"||
nim5=="5"||nim5=="6"||nim5=="7"||nim5=="8"||
nim5=="9")nim5="0"+nim5;
delay(1500);
NIM=nim1+nim2+nim3+nim4+nim5;
data1=String(NIM);//Nomor Induk Mahasiswa
s.print(data1);
data2=String(EEPROM.read(2));//Jenis Kelamin
s.print(data2);
data3=String(EEPROM.read(3));//
s.print(data3);
data4=String(EEPROM.read(4));
s.print(data4);
data5=String(EEPROM.read(5));//BMI
s.print(data5);
data6=String(EEPROM.read(6));//Suhu Badan
s.print(data6);
data7=String(EEPROM.read(7));//Denyut Nadi
s.println(data7);
StringdataKirim =String(data1)+
String(data2)+
String(data3)+
String(data4)+
String(data5)+
String(data6)+
String(data7);
Serial.println(dataKirim);
delay(500);
lcd.setCursor(0,1);
lcd.print("Mengirim Data");
delay(1000);
lcd.clear();
lcd.print(dataKirim);
delay(2000);
Serial.println("Mengirim Data");
Serial.println(" OK");
Serial.print(char(176));
//s.println(dataKirim);
}
}
delay(100);}
voidonBeatDetected()
{Serial.println("Beat!");}
Pemograman NodeMCU
#include<ESP8266WiFi.h>
#include<WiFiClient.h>
#include<ESP8266WebServer.h>
#include<ESP8266HTTPClient.h>
Stringdata;
Stringupload,nim,gender,berat,tinggi,bmi,suhu,nadi;
constchar*ssid="iphoney";
constchar*password="enggaktau";
constchar*host="192.168.43.120";//server
WiFiServerserver(8080);
voidsetup(){
// Open serial communicationsandwait for porttoopen:
Serial.begin(9600);
while(!Serial){
;// wait for serial porttoconnect. Needed for native USB
portonly
}
delay(1000);
WiFi.mode(WIFI_OFF);
delay(1000);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED){
delay(500);
server.begin();}
}
voidloop(){// runoverandover
57
if(Serial.available()){
Serial.write(Serial.read());
}
//1505042023150175173345
data=Serial.readString();
nim=data.substring(0,10);
gender=data.substring(10,11);
berat=data.substring(11,13);
tinggi=data.substring(13,16);
bmi=data.substring(16,18);
suhu=data.substring(18,20);
nadi=data.substring(20,22);
Serial.print("nim: ");
Serial.print(nim);
Serial.print(" gender: ");
Serial.print(gender);
Serial.print(" berat: ");
Serial.print(berat);
Serial.print(" tinggi: ");
Serial.print(tinggi);
Serial.print(" bmi: ");
Serial.print(bmi);
Serial.print(" suhu: ");
Serial.print(suhu);
Serial.print(" nadi: ");
Serial.println(nadi);
HTTPClienthttp;
StringpostData;
postData="nim="+nim+"&gender="+gender+"&berat="+berat
+"&tinggi="+tinggi+"&bmi="+bmi+"&suhu="+suhu
+"&nadi="+nadi;
http.begin("http://192.168.43.120:8080/bmi/postdata.php");
//Specifyrequestdestination
http.addHeader("Content-Type","application/x-www-form-
urlencoded"); //Specifycontent-typeheader
inthttpCode=http.POST(postData); //Sendtherequest
Stringpayload=http.getString();
http.end(); //menutup koneksi
delay(50);
}