Pengujian Pengiriman Data dari Arduino ke Smartphone Android Menggunakan USB HOST SHIELD

4.1.3 Pengujian Pengiriman Data dari Arduino ke Smartphone Android Menggunakan USB HOST SHIELD

Setelah modul Arduino dan sistem sensor berjalan dengan baik, maka dilakukan pengujian pengiriman data dari modul Arduino ke smartphone Android dengan program sederhana untuk menampilkan pembacaan perubahan tegangan pada sistem sensor LDR terhadap perubahan intensitas cahaya untuk mengevaluasi apakah komunikasi data antara modul Arduino dan smartphone Android berjalan dengan baik. Potongan program yang dimasukkan kedalam modul Arduino untuk membaca perubahan tegangan dari sistem sensor LDR adalah sebagai berikut : 1 potongan listing program 4.1 2 void setup { 3 Serial.begin9600; 4 acc.powerOn; 5 msg[0] = com_ID; 6 msg[1] = targ_ID; 7 } 8 9 void loop { 10 if acc.isConnected { 11 valPinAnalog = analogReadpinAnalog; 12 msg[2] = byte valPinAnalog 24; 13 msg[3] = byte valPinAnalog 16; 14 msg[4] = byte valPinAnalog 8; 15 msg[5] = byte valPinAnalog; 16 acc.writemsg, 6; 17 delay1000; 18 } 19 } Pada potongan listing program 4.1, modul Arduino akan membaca perubahan tegangan yang masuk dari sistem sensor LDR ke pin analog mikrokontroller modul Arduino dan mengirimkan hasil pembacaan ke Android. Proses pengiriman akan terus bekerja dengan penundaan waktu selama 1000 milisekon atau 1 detik. Universitas Sumatera Utara Karena komunikasi yang dilakukan antara modul Arduino dan Android adalah komunikasi serial, maka data yang dikirimkan byte-per-byte dalam satu stream. Ketentuan pengiriman data yang diberikan oleh Google terdiri dari 3 susunan data byte. Byte pertama menunjukkan jenis perintah yang digunakan dalam pengiriman dan penerimaan data. Ini ditunjukkan pada baris ke-5 dalam listing program 4.1. Byte kedua menunjukkan jenis target yang digunakan dalam komunikasi data. Ini ditunjukkan pada baris ke-6 dalam listing program 4.1. Byte ketiga dan seterusnya adalah pesan yang dikirim dalam komunikasi data. Ini ditunjukkan pada baris ke-12 hingga baris ke-15 dalam listing program 4.1. Sehingga dapat disimpulkan bahwa byte pertama dan byte kedua merupakan identitas dari serangkaian data yang dikirim dan byte ketiga dan seterusnya adalah pesan yang dikirim. Untuk menerima serangkaian data yang dikirimkan dari modul Arduino, listing program yang ditulis pada program java untuk aplikasi Android adalah sebagai berikut : potongan listing program 4.2 1 Runnable commRunnable = new Runnable { 38 Override 38 public void run { 38 int ret = 0; 5 byte[] buffer = new byte[6]; 6 while ret = 0 { 7 try { 8 ret = mInputStream.readbuffer; 9 } catch IOException e { 10 Log.eTAG, “IOException”, e; 11 break; 12 } 13 switch buffer[0] { 14 case comm_ID: 15 if buffer[1] == targ_ID { 16 final int adcVal = buffer[2] 0xFF 17 24 18 + buffer[3] 0xFF 16 19 + buffer[4] 0xFF 8 20 + buffer[5] 0xFF; 21 runOnUiThreadnew Runnable { 22 Override 23 public void run { 24 adcValueProgressBar.setProgressadcVal; 25 adcValueTextView.setTextgetStringR.string. Universitas Sumatera Utara 26 adc_val_txt, adcVal; 27 } 28 }; 29 } 30 break; 31 default: 32 Log.dTAG, “pesan tidak dikenal: “ + 33 buffer[0]; 34 break; 35 } } } 37 }; 38 } Dari potongan listing program 4.2, penerimaan data pada aplikasi Android ditunjukkan pada baris ke-14 hingga baris ke-20. Seperti serangkaian data yang dikirim dari modul Arduino, aplikasi Android akan menerima byte-per-byte yang masuk ke buffer dengan susunan yang bersesuian pada listing program yang dimasukkan ke modul Arduino.

4.2 PERANCANGAN APLIKASI ANDROID