Hasil dan Pembahasan T1 672009043 Full text

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