8
`
Gambar 7 Diagram Blok Sistem bagian Transmiter
Gambar 8 Diagram Blok Sistem bagian Receiver
4. Hasil dan Pembahasan
Hasil dan Pembahasan berisi hasil rangkaian alat, konfigurasi
Xbee
, pengkodean program yang ditanamkan ke mikrokontroler dan penjelasan
mengenai bagaimana aplikasi monitoring
level
cairan infus dibuat menggunakan bahasa
C
pada
Microsoft Visual Studio. Prototype
alat pengukur suhu dan kelembaban ditunjukkan pada Gambar
9, dimana sensor
Load cell
,
LCD
,
LED
dan modul
Xbee
disambungkan dengan
board
Arduino Uno R3 menggunakan kabel
jumper
berdasarkan pin yang sesuai. SENSOR
RPS MIKROKONTROLER
MODUL Xbee
POWER SUPPLY
TAMPILAN
PC MODUL Xbee
9
Gambar 9 Prototype Alat
Berikut merupakan kode program pada
board
Arduino
Kode Program 1 Library LCD, dan LED
Kode program 1 menunjukkan pemanggilan
library LED
dan
LCD
. Perintah pada baris ke-1 menunjukkan
library LCD
. Perintah pada baris ke-2 dan baris ke-3 menunjukkan
library LED
. Dimana semua dihubungkan pada
board
Arduino,
LED
hijau diletakkan pada pin digital-2 dan
LED
merah diletakkan pada pin digital-3.
1. include LiquidCrystal.h
2. define lampu_hijau 2
3. define lampu_merah 3
10
Kode Program 2 Fungsi Utama Program
Kode program 2 merupakan fungsi utama dari program. Perintah pada baris ke-2 merupakan
library
dari
LCD
16X2 dan penempatan pin pada
board
Arduino yaitu pada pin digital 8,9,4,5,6,7. Perintah pada baris ke-5 sampai ke-9 berfungsi untuk membaca data pada serial
port
dilayar monitor, menjalankan perintah
output
untuk
LCD
dan
output
untuk
LED
. Perintah pada baris ke-10 sampai ke-13 merupakan perintah untuk membaca dimana pin dari sensor
load cell
disambungkan pada
board
Arduino. Perintah pada baris ke-14 sampai baris ke-19 merupakan pengaturan parameter untuk kalibrasi apabila berat yang
dihasilkan
load cell
lebih dari 10 maka nilai akan dikurang 28. Perintah pada baris
1. float massa;
2. LiquidCrystal lcd8,9,4,5,6,7;
3. void setup
4. {
5. Serial.begin9600;
6. lcd.begin16,2;
7. pinModelampu_hijau, OUTPUT;
8. pinModelampu_merah, OUTPUT;
9. }
10. void loop
11. {
12. massa = analogRead0 - 145;
13. massa = massa800700;
14. if massa = 10
15. {
16. massa = massa - 28 ;
17. }
18. ifmassa = 100
19. {
20. lcd.setCursor0,0;
21. lcd.printBerat Infus;
22. 23.
digitalWritelampu_hijau, LOW; 24.
25. digitalWritelampu_merah, HIGH;
26. delay500;
27. digitalWritelampu_merah, LOW;
28. delay500;
29. else
30. {
31. digitalWritelampu_hijau, HIGH;
32. }
33. int berat = massa;
34. Serial.printBerat Infus : ;
35. Serial.printmassa;
36. Serial.println ml;
37. lcd.setCursor0,0;
38. lcd.printBerat Infus : ;
39. delay1000;
40. lcd.setCursor0,1;
41. lcd.printmassa;
42. lcd.setCursor4,1;
43. lcd.print ml;
44. }
11
ke-18 sampai baris ke-32 merupakan pengaturan
LCD
dan pengaturan
LED
.
LED
ini berfungsi sebagai indikator, jika
level
berada di bawah batasan yang ditentukan yaitu 50 ml akan ditampilkan peringatan
LED
berwarna merah dan jika tidak melebihi batasan yang ditentukan akan menampilkan
LED
berwarna hijau. Perintah pada baris ke-33 sampai ke-44 merupakan pengaturan tampilan di serial
monitor dan di
LCD
dengan
delay
1 second. Selanjutnya agar dua modul
Xbee
dapat saling berkomunikasi, maka perlu ada pengaturan pada modul
Xbee
. Masuk dalam
Modem Configuration
kemudian isi nilai parameter yang ada pada
folder networking security.
Untuk komunikasi
point to point
, umumnya hanya 3 parameter yang diatur, yaitu PAN ID
personal area network
ID, DL
destination address low
, dan MY 16 bit source
address
. Pengaturan parameter untuk
Xbee
1 dan
Xbee
2 agar dapat saling berkomunikasi adalah:
Nilai parameter DL
Xbee
1 = MY
Xbee
2. Nilai parameter MY
Xbee
1 = DL
Xbee
2.
Xbee
1 dan
Xbee
2 menggunakan alamat PAN ID yang sama [10]. Pengaturan parameter
Xbee
ditunjukkan pada Gambar 10 dan Gambar 11
Gambar 10 Pengaturan Xbee1
12
Gambar 11 Pengaturan Xbee2
Pada desain aplikasi ini akan dijelaskan mengenai bagaimana aplikasi monitoring infus dibuat menggunakan bahasa
C
pada
Microsoft Visual Studio.
Tampilan aplikasi pada Gambar 12 yang terdiri dari satu
form
yang di dalamnya memuat
ComboBox
untuk menampilkan
serial port
yang terhubung pada PC. Kemudian terdapat
Button Start
yang berfungsi untuk mengaktifkan
port
agar data berat infus dapat tampil pada
RichTextBox
,
Button Stop
untuk berhenti mengaktifkan
port, DateTimePicker
berfungsi untuk mengetahui tanggal hari ini,
Label Connection
berfungsi untuk menampilkan status
port
apakah sudah terkoneksi atau belum,
TextBox
berfungsi untuk menampilkan data yang sedang berjalan,
Button
C
lear
berfungsi untuk menghapus isi
RichTextBox
,
OvalShapeRed
berfungsi sebagai indikator
level
pada posisi
low, OvalShapeGreen
berfungsi sebagai indikator
level
pada posisi
high
,
Button OpenFile
berfungsi untuk melihat
history
data yang telah berlalu dan
Button exit
untuk menutup aplikasi.
Tampilan aplikasi pada Gambar 12 menampilkan aplikasi pada saat
streaming
pengambilan data pada
serial port.
Dan pada Gambar 13 menampilkan data hasil penyimpanan data
level
infus.
13
Gambar 12 Tampilan Aplikasi
Gambar 13 Tampilan Data Monitoring Infus
Gambar 14 Menunjukkan Data Hasil Penyimpanan Data
Level
Infus.
Gambar 14 Hasil Penyimpanan Data Level Infus
14
Kode Program 3 Perintah Komunikasi Port dan LogFile
1. public partial class Form1 : Form
2. {
3. SoundPlayer soundPlayer = new SoundPlayerC:\Users\Faryz\Downloads\beep
01a.wav; 4.
string data = ; 5.
StreamWriter log; 6.
public Form1 7.
{ 8.
InitializeComponent; 9.
} 10.
private void Form1_Loadobject sender, EventArgs e 11.
{ 12.
serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandlerDataReceived;
13. string[] portNames = System.IO.Ports.SerialPort.GetPortNames;
14. for int i = 0; i = portNames.Length - 1; i++
15. {
16. cbbCOMPorts.Items.AddportNames[i];
17. }
18. btnDisconnect.Enabled = false;
19. }
20. private void btnConnect_Clickobject sender, EventArgs e
21. {
22. txtDataReceived.Clear;
23. try
24. {
25. if File.ExistsD:\logfile.txt{
26. log = new StreamWriterD:\logfile.txt, true;
27. }
28. else
29. {
30. log = File.AppendTextD:\logfile.txt;
31. }
32. log.WriteLine\n;
33. log.WriteLineDateTime.Now.ToStringyyyy-MM-dd HH:mm:ss;
34. log.WriteLine========================;
35. if serialPort.IsOpen
36. {
37. serialPort.Close;
38. }
39. try
40. {
41. serialPort.PortName = cbbCOMPorts.Text;
42. serialPort.BaudRate = 9600;
43. serialPort.Parity = System.IO.Ports.Parity.None;
44. serialPort.DataBits = 8;
45. serialPort.StopBits = System.IO.Ports.StopBits.One;
46. serialPort.Open;
47. lblMessage.Text = cbbCOMPorts.Text + connected.;
48. btnConnect.Enabled = false;
49. btnDisconnect.Enabled = true;
50. }
51. catch
52. {
53. log.Close;
54. MessageBox.ShowPort tidak sesuai;
55. }
56. }
57. catch
58. {
59. MessageBox.ShowTerjadi kesalahan mohon ulang kembali;
60. }
61. }
15
Kode Program 3 menjelaskan Perintah komunikasi
port
, menampilkan data pada
txtDataReceived
dan
LogFile
. Perintah pada baris ke-3
SoundPlayer
merupakan variable sound yang berfungsi sebagai indikator suara apabila
level
pada posisi
low.
Perintah pada baris ke-4 untuk menampung
string
data yang diterima dari
port
, pada baris ke-11 sampai ke-19 merupakan perintah untuk mengambil
port
yang tersedia atau yang terkoneksi dengan PC kemudian
ditampung ke dalam
cbbCOMPorts.
Perintah pada baris ke-21 sampai ke-38 berada pada posisi tombol
start
berfungsi sebagai penghapus data pada tampilan
txtDataReceived
dan pembuka serial
port
untuk menampilkan data pada
txtDataReceived
juga untuk menyimpan data pada
logfile
dengan format
txt
secara
realtime.
Perintah pada baris ke-39 sampai ke-61 berfungsi mengatur beberapa parameter untuk koneksi serial
port
dan terdapat
MessageBox
sebagai peringatan apabila terjadi kesalahan dalam memilih
port.
Kode Program 4Perintah untuk menampilkan data pada TextBox
Kode Program 4 merupakan perintah untuk menampilkan data yang diterima pada
TextBox.
Perintah pada baris ke-1 sampai baris ke-4 berfungsi untuk memanggil delegasi untuk mengambil data yang diterima dari
port
. Perintah pada baris ke-5 sampai baris ke-21 berfungsi menampilkan delegasi pada
textbox,
dan diberi parameter jika jumlah karakter yang dihasilkan mesin melalui delegasi dari
txtDataReceived
diatas 23 akan menampilkan kata pada
textbox.
1. private void DataReceivedobject sender,
System.IO.Ports.SerialDataReceivedEventArgs e 2.
{ 3.
txtDataReceived.BeginInvokenew myDelegateupdateTextBox; 4.
} 5.
public delegate void myDelegate; 6.
public void updateTextBox 7.
{ 8.
if data.Length 23 9.
{ 10.
data += serialPort.ReadExisting; 11.
} 12.
else 13.
{ 14.
txtDataReceived.AppendTextdata; 15.
txtDataReceived.ScrollToCaret; 16.
int totalLines = txtDataReceived.Lines.Length; 17.
string lastLine = txtDataReceived.Lines[totalLines - 1]; 18.
textBox1.Text = data; 19.
data = ; 20.
} 21.
}
16
Kode Program 5 Perintah untuk menampilkan indikator dan open file.
1. private void btnExit_Clickobject sender, EventArgs e{
2. Application.Exit;
3. }
4. private void btnOpenFile_Clickobject sender, EventArgs e{
5. Process.StartD:\logfile.txt;
6. }
7. private void btnClear_Clickobject sender, EventArgs e{
8. txtDataReceived.Clear;
9. }
10. private void textBox1_TextChangedobject sender, EventArgs e{
11. try
12. {
13. string strdata = textBox1.Text.ReplaceBerat Infus : ,
.Replace ml, ; 14.
double data = Double.Parsestrdata; 15.
if data 50 16.
{ 17.
soundPlayer.PlayLooping; can also use soundPlayer.PlaySync 18.
timer1.Start; 19.
timer2.Stop; 20.
ovalShape1.BackColor = Color.Red; 21.
} 22.
else 23.
{ 24.
soundPlayer.Stop; 25.
timer1.Stop; 26.
timer2.Start; 27.
ovalShape2.BackColor = Color.GreenYellow; 28.
}} 29.
catch 30.
{ 31.
}} 32.
private void timer1_Tickobject sender, EventArgs e{ 33.
if ovalShape1.BackColor == Color.Red 34.
{ 35.
ovalShape1.BackColor = Color.WhiteSmoke; 36.
} 37.
else 38.
{ 39.
ovalShape1.BackColor = Color.Red; 40.
}} 41.
private void timer2_Tickobject sender, EventArgs e{ 42.
if ovalShape2.BackColor == Color.Green 43.
{ 44.
ovalShape2.BackColor = Color.GreenYellow; 45.
} 46.
else 47.
{ 48.
ovalShape2.BackColor = Color.Green; 49.
}}}}
17
Kode Program 5 menjelaskan perintah untuk menampilkan indikator dan open file. Perintah pada baris ke-1 sampai baris ke-3 berfungsi untuk menutup
aplikasi. Perintah pada baris ke-4 sampai baris ke-6 posisi pada
button OpenFile
berfungsi untuk melihat
history
data yang telah berlalu. Perintah pada baris ke-7 sampai baris ke-9 posisi pada
button
Clear berfungsi sebagai penghapus data pada tampilan
txtDataReceived.
Perintah pada baris ke-10 sampai baris ke-49 berfungsi sebagai parameter untuk indikator penghitungan berat untuk ditampilkan pada
ovalShape maupun suara. Jika berat infus pada posisi kurang dari 50 maka ovalShape berwarna merah akan berkedip bersamaan dengan bunyi suara beep
dan apabila berat infus pada posisi lebih dari 50 maka ovalShape berwarna hijau akan berkedip menandakan bahwa
level
infus masih aman. Pengujian ini dilakukan agar sistem yang digunakan dapat bekerja dengan
baik sesuai dengan kebutuhan pengguna. Pengujian dilakukan dengan menggunakan metode
black box,
yaitu metode pengujian perangkat lunak yang
berfokus pada sisi fungsionalitas, khususnya pada
input
dan
output
aplikasi apakah sudah sesuai dengan apa yang diharapkan atau tidak. Pengujian
dilakukan pada rangkaian sistem monitoring
level
infus dan aplikasinya.
Tabel 1 Hasil Pengujian
Black
-
box
Proses Hasil yang diharapkan
Hasil yang Muncul Kesimpulan
Klik Start Modul
Xbee
dapat mengirimkan data berat
cairan infus dari mikrokontroler ke aplikasi
komputer Modul
Xbee
dapat mengirimkan data
berat cairan infus Valid
Data berat cairan infus
berada pada batas 50 ml
Menampilkan indikator
low
dan bunyi
beep
Dapat menampilkan indikator
low
dengan tombol berkedip
merah dan bunyi
beep
Valid
Klik Stop Modul
Xbee
dapat menutup akses data berat
cairan infus dari mikrokontroler ke aplikasi
komputer Modul
Xbee
dapat menutup akses data
berat cairan infus Valid
Klik open file Menampilkan history data
berat cairan infus Menampilkan history
data berat cairan infus Valid
Berdasarkan hasil pengujian program pada Tabel 1, dapat disimpulkan bahwa alat monitoring
level
cairan infus dapat berjalan dengan baik.
18
Grafik dalam Gambar 13 dan data dalam Tabel 2 merupakan data sampling saat pengujian terjadi. Selanjutnya akan memberikan
warning
berupa pengiriman kode ke bagian penampil di ruang perawat. Data kode tersebut
selanjutnya ditampilkan pada aplikasi komputer sebagai tombol indikator dan bunyi. Sehingga, diketahui bahwa infus sudah habis.
Time sampling
Data berat infus ml
1 500,75
2 450
3 400,13
4 349,38
5 299,5
6 251,38
7 201,5
8 150,75
9 140,25
10 100,87
11 50,13
12 41,38
Tabel 2 Data Sampling Hasil Pengujian Level Cairan Infus
Gambar 13 Grafik Pengujian Level Cairan Infus
100 200
300 400
500 600
1 2
3 4
5 6
7 8
9 10 11 12
Grafik isi cairan infus
isi cairan infus 50ml batas ganti
infus
19
5. Simpulan