Pengujian Lampu Hasil Perancangan Menggunakan Arduino 1. Pengujian Motor

48. else if kata==98 decimal ASCI ‘b’ 49. { 50. tutup_pintu; 51. } 52. else if kata==99 decimal ASCI ‘c’ 53. { 54. hidup_lampu; 55. } 56. else ifkata==100 decimal ASCI ‘d’ 57. { 58. matikan_lampu; 59. } 60. } Gambar 4.22 List program Arduinolanjutan Data “e” yang diterima oleh Arduino Uno kemudian diterjemahkan menjadi desimal ASCI dan masuk pada fungsi cek_awal. Isi dari fungsi cek_awal adalah seperti gambar 4.23. 62. void cek_awal 63. { 64. lam=digitalRead2; 65. gar1=digitalRead3;LSA 66. gar2=digitalRead4;LSB 67. if lam==1mati lampu 68. { 69. lampu=L0; 70. } 71. else if lam==0hidup lampu 72. { 73. lampu=L1; 74. } 75. if gar1==1gar2==0tutup pintu 76. { 77. garasi=G0; 78. } 79. else if gar1==0gar2==1buka pintu 80. { 81. garasi=G1; 82. } 83. else ifgar1==1gar2==1 84. { 85. garasi=G2; 86. } 87. BTSerial.printlampu; data yang dikirim untuk tombol hidup dan mati lampu 88. BTSerial.printgarasi; data yang dikirim untuk tombol buka dan tutup 89. BTSerial.write\r\n; 90. kata=0; 91. delay1000; 92. } Gambar 4.23 List program cek_awal. Di dalam fungsi cek_awal terdapat perintah untuk mengecek setiap sensornya. Untuk hasil dari sensor LDR disimpan pada variabel ‘lampu’, sedangkan untuk pintu garasi disimpan dengan variabel ‘garasi’. Kemudian data dikirimkan ke Android satu paket dengan “\r\n”. Data yang dikirim dari Arduino Uno akan diterima oleh Android dan diolah pada fungsi terimaData. Berikut fungsi terimaData seperti gambar 4.24. 55. void terimaData 56. { 57. final Handler handler = new Handler; 58. final byte delimiter = 10; 59. stopWorker = false; 60. readBufferPosition = 0; 61. readBuffer = new byte[1024]; 62. workerThread = new Threadnew Runnable { 63. public void run { 64. whileThread.currentThread.isInterrupted stopWorker { 65. try 66. { 67. int bytesAvailable = mmInputStream.available; 68. ifbytesAvailable 0 69. { 70. byte[] packetBytes = new byte[bytesAvailable]; 71. mmInputStream.readpacketBytes; 72. forint i=0;ibytesAvailable;i++ 73. { 74. byte b = packetBytes[i]; 75. ifb == delimiter 76. { 77. byte[] encodedBytes = new byte[readBufferPosition]; 78. System.arraycopyreadBuffer, 0, encodedBytes, 0, encodedBytes.length; 79. kalimat = new StringencodedBytes, US-ASCII; 80. readBufferPosition = 0; 81. feedback yang dimunculkan setelah menerima data. 82. handler.postnew Runnable { 83. public void run 84. { 85. apa=kalimat.substring0, 1; 86. String lampu=kalimat.substring1, 2; 87. String garasi=kalimat.substring3, 4; 88. char lampu1=lampu.charAt0; 89. char garasi1=garasi.charAt0; 90. char apa1=apa.charAt0; 91. final Button caca=ButtonfindViewByIdR.id.button1; 92. final Button caca2=ButtonfindViewByIdR.id.button2; 93. final Button caca3=ButtonfindViewByIdR.id.button3; 94. final Button caca4=ButtonfindViewByIdR.id.button4; 95. final Button caca5=ButtonfindViewByIdR.id.connect; 96. Toast.makeTextgetApplicationContext, apa, Toast.LENGTH_SHORT.show; 97. iflampu1==1{ 98. caca4.setBackgroundColorColor.GREEN; 99. caca3.setBackgroundColorColor.GRAY; 100. } Gambar 4.24 List fungsi terimaData