Bluetooth adalah Sistem jaringan lokal tanpa kabel. Bluetooth telah digunakan secara luas pada perangkat android dan telepon pintar lainnya.
Menghubungkan ke bluetooth server
Untuk mempermudah jalan program app inventor, proses menghubungkan bluetooth ke server dimasukkan kedalam sebuah prosedur.
Prosedur ‘Hubungkan_Bluetooth’ ini bisa dipanggil dengan variabel ‘alamatBluetooth’ yang berisi alamat unik bluetooth. Sebelum dihubungkan prosedur akan mengecek status ‘bluetooth.available’, jika aktif, dilanjutkan dengan pengecekan status ‘bluetooth.IsConnected’, dan mematikan bluetooth jika sedang terkoneksi.
Selanjutnya bluetooth dihubungkan dengan fungsi ‘bluetoothClient.Connect’ dengan variabel alamat yang diberikan.
Pemanggilan bluetooth saat Inisialisasi
Apabila sistem menghubungkan bluetooth dibuat otomatis, maka bluetooth akan dihubungkan keserver dengan alamat yang tersimpan sebelumnya pada database ‘TinyDB’. Pemanfaatan database ini adalah untuk otomatisasi data saat aplikasi app dibuka tanpa perlu disetting ulang, cukup menggunakan settingan terakhir.
Koneksi bluetooth dengan alamat langsung
Jika alamat bluetooth server sudah diketahui, app bisa langsung mengkondisikan tombol sebagai pemanggil prosedur ‘hubungkan_bluetooth’ dengan alamat yang ada pada ‘textbox’.
Menghubungkan bluetooth dengan alamat pada daftar bluetooth
Daftar perangkat bluetooth yang terhubung ke android bisa diambil sebagai referensi alamat. Sebelum digunakan, elemen ‘listPicker’ digunakan sebagai penampung daftar bluetooth yang tersedia.
Apabila item yang ada dalam daftar sudah dpilih, maka akan dipanggil prosedur ‘hubungkan_Bluetooth’ dengan variabel alamat terpilih.
Putuskan hubungan bluetooth
Jika ingin memutuskan bluetooth dari server, cukup menggunakan fungsi ‘BluetoothClient.Disconect’
Cek koneksi bluetooth
Status konksitas bluetooth bisa diketahui dengan fungsi ‘BluetoothClient.IsConnected’
Mengirim data string melalui bluetooth
Untuk mengirim data melalui bluetooth, terlebih dahulu dipastikan koneksi bluetooth dengan fungsi’bluetoothClient.IsConnected’. Dan apabila terhubung, proses pengiriman string dilakukan dengan memanggil fungsi ‘bluetoothClient.SendText’ dengan variabel ‘text’ yang diisi contohnya text dalam ‘textBox’.
Menerima data dari bluetooth
Jika ada data yang dikirim melalui bluetooth, data tersebut bisa dideteksi dengan fungsi ‘bluetoothClient.SendText’ seperti pada block berikut :
Dengan bantuan ‘clock.Timer’, setiap interval waktu dilakukan pengecekan apabila ada data yang diterima lewat bluetooth, kemudian mengambilnya dengan fungsi ‘bluetooth.ReceiveText’.
Namun fungsi diatas memiliki beberapa kelemahan yaitu:
- Data yang diterima tidak diparsing, sehingga data apapun yang diterima adalah merupakan deretan String.
- Jika dalam satu interval waktu diterima beberapa data, maka data tersebut dianggap suatu kesatuan.
- Jika proses pengiriman data berlangsung saat interupsi timer terjadi, maka data tersebut akan terpotong (data tidak utuh).
Untuk menutui itu digunakan algoritma app inventor yang lebih rumit namun mampu berjalan pada jumlah data besar.
Proses pengambilan data dari buffer android dilakukan secara parsial sehingga terhindar dari pemotongan, dengan metode ini dimungkinkan menerima beberapa nilai variabel sekaligus (dalam lalu lintas kecepatan tinggi).
Dalam contoh ini digunakan format ‘namaVariabel’=’nilai’, dalam contoh sketch arduino :
void setup() { Serial.begin(9600); Serial.println("Koneksi Beluetooth pada Android dengan App Inventor"); Serial.println("https://www.project.semesin.com/"); Serial.println(); } byte variabel1 = 0; uint16_t variabel2 = 1000L; void loop() { while (Serial.available()) { Serial.write(Serial.read()); } delay(1000); Serial.println("var1=" + String(variabel1)); Serial.println("var2=" + String(variabel2)); variabel1 += 1; variabel2 += 10; }
Mendeteksi kegagalan bluetooth
Fungsi ‘bluetoothClient.BluetoothError’ akan mendeteksi jika terjadi kegagalan bluetooth seperti kesalahan dalam proses menghubungkan, mengirim atau menerima data. Blok diatas akan mengirimkan pesan kepada pengguna melalui label ‘pesan’.
Design cara komunikasi bluetooth app inventor:
Block lengkap sistem komunikasi bluetooth android:
apk menghubungkan bluetooh dengan app inventor:
puyeng saya .gara”appinventor pake puzzle jd gak bisa di copas
Source code ada pada file Bluetooth.aia, bisa didownload dan import ke app inventor
Untuk copy paste block antar screen / project gunakan fasilitas backpack
kak, mau nanya adakah video simulasi nya? kalau ada mungkin bisa disediakan juga di laman ini sehingga pembaca tahu mana yang sudah benar atau belum… (saran hehe)
Sampai saat ini belum ada video-nya
izin belajar gan.. terimakasih
saya sudah install aplikasinya , trs coba saya hubungkan ke alamat yg benar , trs knp malah muncul ; the specified adress is not a valid bluetooth MAC adress , padahal sudah saya pairing . mohon bantuannya mas ….
Jika menggunakan tombol hubungkan/–koneksi alamat langsung–, isi text alamat hc-05 tujuan dengan benar
atau gunakan saja tombol [ambil bluetooth] untuk mengambil alamat dan menghubungkan secara otomatis
Mas , mau nanya , untuk menghubungkan data sensor ke mit app inventor gmn?
seperti dalam contoh sketch pada artikel ini
isi nilai variabel1 atau variabel2 dengan nilai sensor
Bang beda bluetooth error sama lost focus apa ya?
Bisa gak kira2 bang saat bluetooth kita awal connect, namun tiba2 disconnect dan langsung mengirim perintah ke arduino untuk melakukan sesuatu(sesuai kemauan kita)
kalau sudah disconnect, sudah tidak bisa komunikasi
namun kondisi ‘disconnect’ bisa dideteksi oleh arduino melalui pin state, yang bisa digunakan sebagai trigger “untuk melakukan sesuatu(sesuai kemauan kita)”
.aia nya kok tidak bisa di download mas ?
pake pc dengan browser firefox ngga ada masalah, lancar di download.
ijin save dan belajar guru
Kalau ingin tampilannya seperti tampilan serial monitor gimana ya…??
bisa menggunakan component label atau textbox, set height komponennya biar muat nampung beberapa baris text
mau tanya kalau ingin mengirimkan teks lebih dari 1 dari android ke arduino gimana koding nya ya bang?
Salah satu metode yaitu dengan memberi penanda :
contohnya berikan penanda pada awal string yang akan dikirim seperti A, B, C (sebagai pembeda yang bisa di baca oleh arduino untuk di proses)
string 1 kirim >> Astring 1 kirim
string 2 kirim >> Bstring 1 kirim
cara biar jadi .APK gimana yang bang? ada video tutorialnya ga ya?
buka dari webnya appinventor.mit.edu, bisa di compile dari sana
bang , yang saya ngirim lebih dari 3 data kok ada tulisan “select list item : List Index to Large”
misal ada 3 data (list), tapi dalam (salah satu) block ‘select list’ ada variabel ‘index’ yang lebih besar (mis 4 -padahal cuma 3 yang tersedia-)