Komunikasi data Bluetooth dengan App Inventor

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:

  1. Data yang diterima tidak diparsing, sehingga data apapun yang diterima adalah merupakan deretan String.
  2. Jika dalam satu interval waktu diterima beberapa data, maka data tersebut dianggap suatu kesatuan.
  3. 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:

22 thoughts on “Komunikasi data Bluetooth dengan App Inventor

  1. 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)

  2. 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 ….

    1. 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

  3. 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)

    1. 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)”

    1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *