Android Serial Communication
Buatlah project baru dengan nama Android Serial Communication
Buka link url http://extensiondirectory.com/. Klik pada extension Arduino USB Serial Extension.
Kemudian download file extension (.aix) dari halaman url tersebut dan simpan ke folder yang ada di komputer Anda.
Pada Thunkable lakukan import extension yang telah didownload tadi dengan cara klik menu Extension pada Pallete kemudian pilih Import Extension.
Lanjutkan dengan memilih menu Choose File dan pilih file Arduino.aix yang telah didownload sebelumnya lalu Import. Thunkable akan mengupload file Arduino.aix pada akun Anda masing-masing. Jika extension telah berhasil diimport, maka di menu Extension akan muncul Arduino.
Lakukan perancangan UI aplikasi seperti di bawah ini. Layar utama terdiri dari 5 Horizontal Arrangement yang tersusun kebawah. Horizontal Arrangement pertama berisi komponen Label. Horizontal Arrangement kedua berisi komponen Image sebanyak 2 buah. Horizontal Arrangement ketiga berisi komponen Button 2 buah. Horizontal Arrangement keempat berisi komponen Slider. Horizontal Arrangement yang kelima berisi komponen Button 2 buah. Tambahkan komponen Arduino dan Clock ke dalam layar Anda. Aturlah tampilan sedemikian rupa agar terlihat bagus.
Lakukan upload gambar tampilan LED berikut pada Thunkable. Caranya dengan memilih menu Upload Files pada Media. Gambar bisa Anda download pada link berikut ini https://drive.google.com/file/d/11Y_hwTMYzjvW8O-PIT01AwpsHp-nqFDv/view?usp=sharing.
Setelah gambar sukses terupload, maka file gambar tersebut akan muncul pada menu Media.
Atur properties dari Clock. Pada bagian interval, set nilainya menjadi 100. Ini berarti timer disetting update setiap 100 ms.
Atur properties dari komponen Slider. Set nilai minimum menjadi 0 dan nilai maksimum menjadi 255.
Rename komponen Anda menjadi nama seperti berikut ini
Selanjutnya pada bagian block editor. Lakukan inisialisasi variabel global seperti berikut ini.
Buat program berikut ini pada event Screen1 Initialized. Program berikut ini berfungsi untuk menginisialisasi properties dari komponen-komponen yang digunakan. Kemudian membuka akses ke Serial Port android.
Buatlah Procedure baru dengan nama createDataOut dengan program seperti di bawah ini. Procedure berikut ini berfungsi untuk menggabungkan string yang nantinya akan dikirimkan ke Serial Port.
Kemudian buatlah program pada Button Connect. Dimana program ini berfungsi untuk membuka akses Serial Port, jika sebelumnya Serial Port masih belum terbuka.
Buatlah program pada Button Disconnect. Dimana program ini berfungsi untuk menutup akses ke Serial Port.
Lanjutkan dengan membuat program pada ButtonS1. Program pada ButtonS1 berfungsi ketika button ditekan, Android akan mengirimkan data sesuai dengan nilai penekanan pad ButtonS1. Data akan dikirimkan ke Arduino melalui port USB.
Lanjutkan dengan membuat program pada ButtonS2. Program pada ButtonS2 berfungsi ketika button ditekan, Android akan mengirimkan data sesuai dengan nilai penekanan pad ButtonS2. Data akan dikirimkan ke Arduino melalui port USB. ButtonS1 dan ButtonS2 nantinya berfungsi untuk menyakan lampu LED pada Arduino.
Kemudian buatlah program pada SliderPWM. Program pada SliderPWM berfungsi untuk mengambil nilai Slider kemudian mengirimkan nilainya ke Arduino. Nilai SliderPWM nantinya digunakan untuk mengontrol LED melalui PWM pada Arduino.
Program yang terakhir adalah program pada komponen ClockTimer. Program pada komponen ClockTimer berfungsi untuk mengirimkan data yang berfungsi untuk merequest data dari Arduino. Untuk merequest data Android akan mengirimkan string "get\n". Setelah data dikirimkan, Arduino akan merespon dengan mengirimkan data kembali ke Android. Data yang dikirimkan oleh Arduino merupakan data yang merepresentasikan kondisi dari pin 2, 3 dan pin A0. Android akan membaca data tersebut, kemudian malakukan update terhadap Label dan Image.
Sampai pada tahap ini, program pada Android telah selesai. Untuk melakukan uji coba, Anda perlu membuat program pada Arduino. Program pada Arduino dapat dilihat pada sintaks program berikut ini. Setelah program dibuat, lakukan upload ke Arduino. Hubungkan LED ke pin 10, 12 dan 13 pada Arduino. Kemudian hubungkan tombol/switch ke pin 2 dan pin 3 Arduino. Kemudian yang terakhir hubungkan potensiometer ke pin A0.
String dataSerial; String dt[10]; int sw1, sw2, pwm; int led1, led2, temp; void setup() { Serial.begin(9600); pinMode(A0, 0); pinMode(2, 0); pinMode(3, 0); digitalWrite(2, 1); digitalWrite(3, 1); pinMode(12, 1); pinMode(13, 1); pinMode(10, 1); dataSerial = ""; } void loop() { while (Serial.available()) { char data = Serial.read(); dataSerial += data; if (data == '\n') { if (dataSerial[0] == 'g') { led1 = digitalRead(2); led2 = digitalRead(3); temp = analogRead(A0); Serial.print("##,"); Serial.print(led1); Serial.print(","); Serial.print(led2); Serial.print(","); Serial.print(temp); Serial.print(",##"); } else { parsingData(); updateIO(); } dataSerial = ""; } } } void parsingData() { int j = 0; dt[j] = ""; for (int i = 0; i < dataSerial.length(); i++) { if (dataSerial[i] == ',') { j++; dt[j] = ""; } else { dt[j] = dt[j] + dataSerial[i]; } } } void updateIO() { sw1 = dt[0].toInt(); sw2 = dt[1].toInt(); pwm = dt[2].toInt(); digitalWrite(12, sw1); digitalWrite(13, sw2); analogWrite(10, pwm); }
Untuk melakukan ujicoba, pastikan mode USB Debuging pada smartphone Android Anda telah diaktifkan. Untuk mengaktifkannya dapat melalui menu Setting kemudian Developer Options.
Hubungkan Arduino dengan Android melalui kabel USB OTG. Kemudian jalankan aplikasi Android Anda. Pada saat pertama kali dijalankan, aplikasi akan meminta mengaktifkan fitur USB. Pilih saja OK.
Jika program Anda telah berhasil, maka pada layar Anda akan muncul tampilan seperti berikut ini. "
Lakukan ujicoba dengan menekan ButtonS1 dan ButtonS2. Perhatikan nyala LED pada pin 12 dan 13. Anda juga dapat mencoba merubah nilai SliderPWM, kemudian amati nyala redup dan terang LED yang terhubung pada pin 10.