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("http://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 : http://www.semesin.com/project/2018/06/02/komunikasi-data-bluetooth-dengan-app-inventor/

Bagikan Link halaman ini :

24 thoughts on “Koneksi Arduino dan Android melalui bluetooth dan MIT App Inventor

  1. Arduino: 1.8.5 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Users\USER\Documents\Arduino\sketch_jul17c\sketch_jul17c.ino: In function ‘void setup()’:

    sketch_jul17c:4: error: ‘Serial1’ was not declared in this scope

    Serial1.begin(9600);

    ^

    C:\Users\USER\Documents\Arduino\sketch_jul17c\sketch_jul17c.ino: In function ‘void loop()’:

    sketch_jul17c:18: error: ‘Serial1’ was not declared in this scope

    Serial1.print(text);

    ^

    sketch_jul17c:22: error: ‘Serial1’ was not declared in this scope

    while(Serial1.available())

    ^

    exit status 1
    ‘Serial1’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  2. bang kalau seandainya tulisannya yg di kirim itu kebalik itu gimana yah bang…?
    misalnya saya ngirim jhon tapi yang muncul di serial monitornya jadi onjh bang, terus hurufnya kadang hilang bang, pas ane ngirim 12345 malah yang nampil 1245
    itu gimana yah bang solusinya…?

  3. bang saya buat ranning text dengan arduino uno dan koneksinya pake bluetoot ke hp android nya tapi buat text berhenti saya belum ber hasil kalo yang berjalan udah berhasil tolong kasi tau caranya dong

    1. running text mengambil porsi clock arduino 5000 setiap detik, kemungkinan komunikasi arduino-bluetooth ter-interupsi oleh running text sehingga menyebabkan kegagalan komunikasi

  4. Bg gimana caranya buat ketika button tambah 1x di tekan label1 berubah jd angka 10 jika 2xdi tekan jd 20, lalu ketika button kurang di tekan 1x maka label1 yg angkanya 20 td jadi 10.

  5. Bang, mau nanya. hasil yang di tampilkan dari lcd berupa angka terus kita hubungkan lagi ke (web atau android) berupa persentasi dari hasil lcd tadi. Kira-kira lebih mudah mnghubungkannya kemana ( web atau android) untuk memprogramkan. Terimakasih

    1. relatif susah/mudah-nya
      1. web (sebagai server) jika ada request, maka kirim data-nya (banyak example tapi sering kendala sulit saat koneksi serta update lambat)
      2. android (bluetooth) buat komponen text ganti value textbox dengan apapun yang diterima bluetooth (waktu lebih untuk buat aplikasi tapi update data cepat)

  6. bg, saya mau tanya, gimana cara agar aplikasi android menerima data dari ldr, misal nya jika ldr medapati cahaya maka label yg ada di android berwarna hijau tapi jika tidak ada cahaya maka label nya akan berwarna merah, gimana cara nya bg?

    1. dari arduino dikirim status ldr (misalkan ‘0’ dan ‘1’)
      maka di app inventor pesan yang di terima ini (melalui blok timer) diperiksa, jika bernilai ‘0’ maka …, dan jika ‘1’ maka …

  7. Mas…gimana blocks nya kalo pas bluetooth kondisi terhubunh…tiba2 terputus karena jarak semakin menjauh ,,,dan lalu di hp muncul tulisan *upss…koneksi terputus*

    1. (HC-05) Pengirimnya sebagai slave, dan ‘beberapa’ arduino penerima sebagai master (set melalui at command)
      bluetooth 4.0 bisa menggunakan fasilitas broadcast

    1. 1. kirim string ke android melalui bluetooth, misal “test\r\n”
      2. hp membaca dta dari bluetooth dengan komponen ‘bluetooth.ReceiveText’ (=test)
      3. gunakan komponen ‘TextToSpeech’ untuk membaca dengan suara string yang dikirim (=suara ‘test’)

  8. Maksudnya begini mas …data yg diterima dari arduino jadi suara….misal datang dari arduinonya kirim data 1 di hp bersuara (voice) satu

Tinggalkan Balasan ke iin Batalkan balasan

Alamat email Anda tidak akan dipublikasikan.