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.semesin.com/project/");
  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:

Timbangan beras otomatis dengan arduino

Timbangan beras digital ini merupakan timbangan beras pintar yang akan memberitahukan kapasitas beras tersisa dalam silo/tampungan beras ke apk Android melalui bluetooth sehingga pengguna dapat mengatur ketersiaan stok beras dengan mudah. Disamping itu timbangan beras berbasis arduino ini juga akan mengingatkan pengguna melalui suara apabila beras hampir habis.

Memiliki dua timbangan yaitu timbangan beras di silo dan timbangan beras yang akan dikeluarkan melalui slot beras. Beras yang ingin diambil dapat dipilih melalui panel keypad 1.000gr hingga 10.000 gram. Jika slot beras telah terisi sesuai berat yang diminta perangkat akan mengeluarkan peringatan melalui suara.

album : Galeri timbangan beras arduino android

Koneksi Arduino dan Android melalui bluetooth dan MIT App Inventor

Bluetooth dan Arduino bisa digunakan untuk berkomunikasi dengan Android menggunakan MIT App Inventor, berikut langkahnya:

Arduino + bluetooth

Mempersiapkan rangkaian yang terdiri dari Arduino mega dan modul bluetooth HC-05.

Masukkan program atau sketch berikut

String text = "";
void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);

  Serial.println("Koneksi arduino dengan app inventor melalui bluetooth");
  Serial.println("Ketik pesan yang akan dikirim (pastikan setting serial ke \"both NL & CR\"");
  Serial.println("https://www.semesin.com/project");
}

void loop() {
  while(Serial.available())
  {
    char c = Serial.read();
    text += c;
    if(c == '\n')
    {
      Serial1.print(text);
      text = "";
    }
  }
  while(Serial1.available())
  {
    Serial.print(char(Serial1.read()));
  }
}

Sketch ini akan menerima text dari “Serial Monitor” dan meneruskannya ke sambungan bluetooth

Begitu juga apabila ada data yang masuk melalui hubungan bluetooth akan ditampilkan ke Serial monitor.

 

Android + App Inventor

Instal apk ini di android BluetoothConnection.apk

Atau bisa mengedit Design MIT App Inventor berikut BluetoothConnection.aia

Design:

Block :

Blok inisialisasi merupakan block yang pertama kali dipanggil ketika aplikasi dijalankan, Jika bluetooth tidak aktif maka blok ini akan memberikan peringatan dan jika bluetooth aktif maka daftar perangkat bluetooth yang terhubung dimasukkan dalam daftar (list)

Blok buttonConnect.Click memiliki dua fungsi yaitu menghubungkan bluetooth dengan perangkat arduino dan memutuskan koneksi bluetooth. Jika bluetooth belum terhubung maka fungsi ini akan memanggil fungsi ListPicker1 yang menampilkan daftar perangkat bluetooth yang terhubung ke android.

Blok ListPicker1.AfterPicking merupakan sebuah even yang berjalan ketika daftar perangkat bluetooth sudah dipilih. Kemudian android diperintahkan untuk membuat sambungan bluetooth dengan perangkat arduino.

Blok buttonSend.Click bekerja saat pengguna menekan tombol kirim dan akan mengirimkan data yang ditulis di textBox.

Blok Clock1.Timer bekerja setiap interval untuk memantau adanya pengiriman data dari perangkat arduino, kemudian akan ditampilkan di layar aplikasi.

Blok Screen1.ErrorOccured merupakan sistem penanganan apabila aplikasi bermasalah dan akan memutuhkan hubungan bluetoothnya.

Block lengkapnya:

Artikel terkait : https://www.semesin.com/project/2018/06/02/komunikasi-data-bluetooth-dengan-app-inventor/