Wednesday 8 September 2021

Mengirim Program Arduino Secara Wireless Menggunakan Bluetooth HC-05 [SOLVED]

Wireless Upload Arduino Sketch Via Bluetooth HC-05 [SOLVED] 



    بِسۡمِ ٱللَّهِ ٱلرَّحۡمَٰنِ ٱلرَّحِيمِ

Salam dari admin Creative Project. Segala Artikel yang Admin tampilkan disini adalah semata-mata untuk berbagi, semoga bermanfaat bagi kita semua. Mohon maaf apabila terdapat kesalahan yang ada pada blog ini dikarenakan kurangnya ilmu dari Admin blog. Mohon dimaklumi bagi para pembaca, karena tak ada gading yang tak retak.

Pada postingan kali ini Admin caturcreativeproject menyajikan materi dengan judul “Mengirim Program Arduino Secara Wireless Menggunakan Bluetooth HC-05”. Admin mencoba membuat pembahasan materi ini sebaik dan selengkap mungkin setiap bahasannya dengan tujuan agar pembaca yang bahkan belum pernah menggunakan perangkat seperti Bluetooth HC-05 sekalipun bisa berhasil membuat project kali ini. Pada tutorial ini Admin menyajikan 3 jenis board Arduino sekaligus yang dapat diterapkan metode pengiriman program secara wireless dengan Bluetooth HC-05, yakni Arduino Pro Mini, Arduino UNO, dan Arduino Mega 2560. Untuk Arduino jenis yang lain mungkin akan dibahas pada lain kesempatan.

Video Tutorial Terbaru Part-1

Video Tutorial Terbaru Part-2


Video Demo Lama dgn Arduino Uno
                                                            

Video Demo Lama dgn Arduino Mega


Video Demo Lama dgn Arduino Pro Mini



Latar Belakang

Sebelum masuk kepembahasan materi, Admin ingin menceritakan sedikit latar belakang pembahasan materi ini, serta adanya kata solved yang Admin sisipkan pada judul postingan. Postingan dengan materi ini sebenarnya Admin adopsi dari web http://makezine.com/ atau untuk alamat lengkapnya silahkan lihat pada akhir postingan. Pembahasan pada blog tersebut dilakukan secara ringkas dan jelas serta dilakukan secara tahap demi tahap disertai dengan gambar sehingga memudahkan dalam memahaminya. Lalu pembahasan yang Admin lakukan pada blog ini adalah berusaha untuk membuatnya secara lebih rinci lagi, sehingga maksud dan tujuan dari setiap tahap bisa difahami secara lebih baik oleh pembaca, terutama yang belum pernah sama sekali menggunakan perangkat Bluetooth HC-05. Sebagai contoh Admin berusaha menjelaskan maksud dan tujuan dari beberapa parameter yang diatur pada BT HC-05, atau tata cara untuk masuk ke command mode Bluetooth HC-05, atau beberapa bahasan lainnya.

Berdasarkan pada kolom komentar pada web http://makezine.com/ kebanyakan user mengalami kegagalan pada pembuatan project ini. Beberapa yang berhasil melakukan pengiriman program kedalam chip Arduino-nya pun masih memiliki masalah dengan adanya pesan error pada Arduino IDE miliknya. Admin sendiri mengalami kegagalan pada beberapa kali percobaan dalam pembuatan proyek ini, khususnya untuk transfer program pada Arduino UNO. Sedangkan untuk Arduino pro mini, dalam beberapa kali percobaan Admin sudah berhasil melakukan transfer program kedalam chip secara wireless. Dengan melakukan beberapa modifikasi dan percobaan berdasarkan keberhasilan pada Arduino pro mini serta pengalaman user pada kolom komentar web http://makezine.com/ akhirnya Admin berhasil melakukan pengiriman program pada Arduino UNO secara wireless dengan Bluetooth HC-05. Sedangkan untuk Arduino Mega mudah saja karena inti masalah sudah terpecahkan pada percobaan Arduino UNO. Dengan rasa syukur atas keberhasilan ini maka muncul keinginan Admin untuk berbagi sedikit pengetahuan ini dengan menulis pembahasan materi pada blog caturcreativeproject dengan judul “Mengirim Program Arduino Secara Wireless Menggunakan Bluetooth HC-05 [SOLVED]” kedalam blog ini dan berusaha menyajikan pembahasan materi dengan sebaik-baiknya. Adapun beberapa pokok bahasan yang Admin tulis pada materi ini antara lain adalah :

                Bluetooth HC-05
1.      Sekilas tentang Bluetooth HC-05
2.      Tata cara masuk At mode Bluetooth HC-05
3.      Setting parameter Bluetooth HC-05
4.      Mengkoneksikan HC-05 dengan Bluetooth pada PC
5.      Memasang jumper pada kaki 32 Bluetooth HC-05

                Modifikasi pada Arduino board [ Arduino UNO dan Mega 2560 ]

                Mengupload Program Arduino Secara Wireless



Pembahasan Materi

I. Step By Step Configure Bluetooth HC-05

A. Sekilas Tentang Bluetooth HC-05 

Bluetooth serial module seperti Bluetooth hc-05 digunakan untuk mengkonversi port serial yang berkomunikasi dengan perangkat luar dengan menggunakan kabel menjadi komunikasi serial dengan tekhnologi wireless atau tanpa kabel. Bluetooh HC-05 memiliki format pengiriman dan penerimaan data serial yang sama dengan peralatan yang menggunakan perangkat keras UART (Universal Asynchronous Receiver-Transmitter). Selain HC-05, juga terdapat beberapa tipe Bluetooth serial module yang lain yakni HC-03 , HC-04 dan HC-06. Bluetooth serial module dengan tipe bernomor genap (HC-04 dan HC-06) adalah jenis yang mode operasinya tidak bisa diubah dari setelan pabrik. Jika sudah dari pabrikan dalam mode master, maka tidak bisa diubah menjadi mode slave. Hal ini berbeda dengan bluetooth serial module dengan tipe bernomor ganjil (HC-03 dan HC-05) yang memiliki mode khusus untuk pengaturan parameter bluetooh, sehingga bluetooh bisa diubah menjadi mode slave atau master. Untuk pembelian bluetooh HC-04 dan HC-06 perhatikan kode huruf yang tertera pada keterangan saat pembelian, bentuk kode tersebut biasanya adalah :

HC-04-M, M=master Device
HC-04-S, S=slave Device

HC-06-M, M=master Device
HC-06-S, S=slave Device

Admin sendiri lebih menyarankan untuk menggunakan model Bluetooh HC-03 atau HC-05, karena sifatnya yang flexibel.



B. Tata Cara Masuk At Mode Bluetooth HC-05

Setelah anda selesai membaca pembahasan ini sebaiknya ditunda terlebih dahulu untuk mempraktekkannya, sebaiknya ikuti dulu pembahasan setting parameter Bluetooth HC-05 karena merupakan lanjutan dari pembahasan ini.

Bluetooh HC-05 memilliki dua mode kerja yakni communication mode dan at mode. Communication mode adalah kondisi ketika bluetooth HC-05 siap untuk berkomunikasi dengan perangkat bluetooth yang lain baik sebagai master ataupun slave. Bluetooth sebagai master adalah kondisi dimana bluetooth tersebut difungsikan sebagai pengontrol komunikasi, atau ia bertugas mencari perangkat bluetooth yang berada disekitarnya dan mengirim permintaan komunikasi kepada perangkat bluetooh yang ditemukan. Sedangkan slave adalah kondisi dimana perangkat bluetooth mengunggu datangnya permintaan untuk melakukan komunikasi.

Berdasarkan mode komunikasinya (communication mode) bluetooth hc-05 memiliki dua mode kerja, yakni order-response work mode dan automatic connection work mode. Untuk order-response work mode maksudnya adalah komunikasi yang dijalin antar bluetooth dilakukan secara manual, baik antar bluetooh hc-05, atau antara bluetooh hc-05 dengan bluetooh pada pc ataupun pada smartphone. Bisa dikatakan untuk mengkoneksikan kedua piranti bluetooh tersebut menggunakan bantuan operator atau manusia. Sedangkan untuk automatic connection work mode komunikasi yang dijalin antar bluetooth dilakukan secara otomatis ketika kedua bluetooh dalam kondisi aktif. Pada saat kedua bluetooth diberikan power maka bluetooh master secara otomatis mencari bluetooth slave yang memiliki alamat tertentu dan kemudian mengirimi permintaan komunikasi, sedangkan pada bluetooth slave, ia menunggu permintaan komunikasi dari master, saat sinyal permintaan komunikasi muncul maka slave mengidentifikasi merupakan permintaan komunikasi dari bluetooth yang tepat dan kemudian menyetujui permintaan tersebut. Tentunya hal ini membutuhkan beberapa pengaturan khusus (insyallah akan saya buat postingan khusus membahas materi ini).

At mode adalah bluetooth masuk kedalam mode khusus untuk pengaturan parameter, dimana parameter-parameter yang diatur tersebut berguna untuk menentukan cara bluetooth beroperasi, seperti bluetooh sebagai master atau slave, kecepatan komunikasi bluetooth, mengatur nama bluetooth dan lain sebagainya. Terdapat 2 macam tata cara agar bluetooth HC-05 bisa masuk ke dalam At mode yakni :

1. At mode dengan Baud Rate 9600
    - Matikan supply tegangan ke modul Bluetooth HC-05
    - Berikan input low level pada pin 34 Bluetooth HC-05
    - Berikan Supply tegangan ke modul bluetooth HC-05
    - Berikan input high level ke pin 34 bluetooth HC-05 (jumper pin VCC dengan pin 34)

Maka modul Bluetooth HC-05 akan masuk ke AT mode dengan Baud rate 9600. Sebagai ciri bahwa modul Bluetooth berhasil masuk ke At mode perhatikan interval nyala led yang ada pada modul, jika berhasil masuk ke At mode interval nyala led tersebut akan berbeda dengan sebelum pin 34 dijumper dengan pin vcc.


2. At mode dengan Baud Rate 38400
    - Matikan supply tegangan ke modul Bluetooth HC-05
    - Jumper pin VCC dengan pin 34 pada Bluetooth HC-05
    - Berikan supply tegangan ke modul Bluetooth HC-05

Maka modul Bluetooth HC-05 akan masuk ke AT mode dengan Baud rate 38400, Cara yang kedua ini lebih Admin sarankan untuk digunakan. Pada tutorial ini Admin menggunkaan cara yang kedua ini. Lalu maksud dari baud rate 38400 adalah pin RXD dan TXD pada Bluetooth yang dihubungkan dengan pin TXD dan RXD ke perangkat luar misal Arduino, melakukan pengiriman dan penerimaan data dengan kecepatan 38400bps. Perhatikan gambar Bluetooth HC-05 dibawah ini.

Modul Bluetooth HC-05 tanpa Shield tambahan


Modul Bluetooth HC-05 milik Admin yang dilengkapi dengan Shield tambahan


Modul Bluetooth HC-05 milik Admin yang dilengkapi dengan Shield tambahan - Model 01


Modul Bluetooth HC-05 milik Admin yang dilengkapi dengan Shield tambahan - Model 02

Pada gambar 3 dan 4, Bluetooth yang Admin miliki merupakan Bluetooth HC-05 yang sudah dilengkapi dengan shield tambahan. Modul ini sudah menyediakan pin out dari Bluetooth antara lain pin state, RXD, TXD, GND, VCC dan WAKEUP atau KEY, sehinga memudahkan interface Bluetooth dengan perangkat luar. Yang perlu diperhatikan adalah pin 34 pada shield yang berbeda pabrikannya memiliki nama yang berbeda, namun untuk posisinya selalu berada dibawah pin VCC. 



C. Setting Parameter Pada Bluetooth HC-05

Sebelum melanjutkan pembahasan, Admin ingin mengingatkan kembali untuk sebaiknya membaca terlebih dahulu hingga tuntas bagian pembahasan “tata cara masuk At mode Bluetooth HC-05” agar lebih memudahkan praktek pada pembahasan disini.


1.    Install Arduino IDE versi  terbaru
Baiklah hal pertama yang harus dilakukan adalah meng-install Arduino IDE versi terbaru. Silahkan download pada link resmi Arduino berikut https://www.arduino.cc/en/Main/Software . Alasan mengapa dibutuhkannya software Arduino IDE dengan versi terbaru adalah karena software Arduino IDE dengan versi yang lama belum mendukung pengiriman sketch Arduino via Bluetooth yang ada di PC atau Laptop. Dibutuhkan modifikasi khusus pada Arduino IDE yang tentunya akan lebih rumit, agar upload program via Bluetooth bisa dilakukan. Pada tutorial ini Admin menggunakan software Arduino IDE dengan versi 1.6.12.


2.    Mengupload program SoftwareSerial ke Arduino UNO
Admin menggunakan Arduino UNO untuk mengirim At command ke Bluetooth HC-05 guna mengatur beberapa parameter Bluetooth HC-05 yang diperlukan, agar Bluetooth HC-05 bisa menerima upload program dari software Arduino IDE. Tentu saja juga bisa menggunakan Arduino dengan jenis yang lain, ini hanya bersifat opsional saja. Langkah selanjutnya adalah membuka program Software Serial Example dengan cara buka software Arduino IDE kemudian klik File > Examples > SofwareSerial > SoftwareSerialExamples. Atau perhatikan gambar berikut.




/*
  Software serial multple serial test

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

 The circuit:
 * RX is digital pin 10 (connect to TX of other device)
 * TX is digital pin 11 (connect to RX of other device)

 Note:
 Not all pins on the Mega and Mega 2560 support change interrupts,
 so only the following can be used for RX:
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

 Not all pins on the Leonardo support change interrupts,
 so only the following can be used for RX:
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example

 This example code is in the public domain.

 */
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(57600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(38400);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}




Setelah program SoftwareSerialExample terbuka silahkan ubah baris program mySerial.begin (4800) menjadi mySerial.begin (38400), atau silahkan lihat program yang Admin tampilkan diatas. Tujuan dari baris program ini adalah agar Arduino dapat berkomunikasi dengan Bluetooth HC-05, yang jika dalam kondisi At mode, ia beroperasi dengan baudrate 38400 bps (Bluetooth masuk ke At mode dengan cara nomor 2 pada pembahasan “Tata cara masuk At mode bluetooth HC-05”). Selanjutnya upload program tersebut ke Arduino UNO anda.


3. Wiring Arduino UNO dengan Bluetooth HC-05
Sebelum menghubungkan Arduino UNO dengan Bluetooth HC-05, pastikan anda melepas terlebih dahulu kabel power Arduino, atau melepas kabel USB Arduino yang dihubungkan ke port USB PC atau Laptop. Selanjutnya hubungkan Arduino UNO dengan Bluetooth HC-05 berdasarkan gambar rangkain berikut : 




Rangkain tersebut adalah berdasarkan pengalaman Admin. Pada pin RX dan TX dari Arduino ke Bluetooth HC-05 biasanya digunakan level logic converter untuk mengubah tegangan 5V dari Arduino menjadi tegangan 3.3V ke Bluetooth HC-05. Atau bisa juga menggunakan rangkaian pembagi tegangan dengan menggunakan resistor atau menggunakan rangkaian transistor untuk men-drive tegangan 3.3V ke pin RX dan TX Bluetooth HC-05. Selain itu pin KEY atau pin WAKEUP biasanya juga diberikan tegangan 3.3V dan bukan 5V. Sekali lagi Admin jelaskan bahwa rangkain ini adalah berdasarkan dari pengalaman Admin, jika pembaca ingin lebih aman bisa mencari di google cara menghubungkan Arduino dengan bluetooh HC-05. Adapun Admin memberikan rangkaian tersebut adalah karena selain simple, juga berdasarkan pengalaman Admin selama ini, semua Bluetooth yang admin gunakan, baik Bluetooth HC-05 yang admin gunakan pada robot atau Bluetooh HC-05  yang Admin gunakan untuk percobaan ini kesemuanya masih dalam kondisi baik dan bekerja dengan normal.

Setelah selesai menghubungkan Arduino UNO dengan bluetooth HC-05 selanjutnya hubungkan kabel USB Arduino ke port USB PC. Perhatikan nyala LED pada Bluetooth, jika berhasil masuk ke At mode, LED akan menyala dengan interval waktu 2 detik. Langkah selanjutnya adalah membuka serial monitor pada Arduino IDE dengan cara klik pada tab Tools > Serial Monitor. Perhatikan pada bagian bawah serial monitor, dan lakukan pengaturan seperti gambar dibawah ini.




Nilai 57600 baud harus sama dengan yang ada pada baris program Serial.begin( ). Maksudnya adalah serial monitor tersebut berkomunikasi dengan board Arduino dengan kecepatan 57600 bps. Nilai ini boleh saja diubah dengan baud rate yang lain, tidak ada penentuan nilai khusus, yang penting harus sama antara keduanya (serial monitor dan board Arduino). Lalu maksud Both NL & CR adalah pada setiap At command yang dikirm akan diikuti oleh karakter /r /n. Hal ini dibutuhkan karena sesuai dengan standart pengiriman At command pada bluetooth HC-05. NL (New Line) karakter ini berfungsi untuk berpindah 1 baris ke bagian bawah dengan posisi kolom yang sama dengan yang sebelumnya. CR (Carriage Return) karakter ini fungsinya untuk mengembalikan posisi cursor ke kolom 1 pada baris yang sama. Dengan menggunakan keduanya maka cursor akan berpindah 1 baris ke bagian bawah dan posisi cursor kembali ke posisi kolom 1 atau didapatkanlah baris baru. Untuk lebih jelasnya silahkan buka link sumber diakhir postingan ini.


4. Mengirim At Command Ke Bluetooth HC-05
Sebagai langkah awal ketik AT pada serial monitor kemudian tekan ENTER atau klik Send. Jika Bluetooth merespon maka akan muncul tulisan OK pada serial monitor. Selanjutnya silahkan kirim AT Command dibawah ini satu demi satu, dan pastikan bluetooth merespon dengan mengirim tulisan OK pada serial monitor.

AT Command Keterangan
AT+ORGL Mengembalikan semua pengaturan parameter bluetooh ke setelan pabrik, tanpa terkecuali
AT+NAME=HC-05 Memberikan nama bluetooh. Bebas tidak ada ketentuan khusus. Pilih saja nama yang mudah untuk dikenali.
AT+PSWD=0099 Memberikan kode keamanan untuk Bluetooth. Default-nya adalah 1234. Ingat baik-baik password ini karena nanti akan digunakan untuk terhubung dengan bluetooh PC.
AT+ROLE=0 Bluetooth di atur sebagai Slave Mode.
AT+POLAR=1,0 Mengatur operasi pin 31 dan pin 32 Bluetooth HC-05. Pin 32 akan berlogika Low jika bluetooth sudah terhubung (pairing) dengan bluetooth yang lain. Pin 32 akan digunakan untuk reset otomatis Arduino.
AT+UART=115200,0,0 Mengatur baud rate, stop bits, dan parity bits. Pengaturan disamping adalah baud rate 115200 bps, 1 stop bits, dan tidak ada bit parity.

Baud Rate 115200 adalah kecepatan komunikasi data serial antara Arduino board dengan software Arduino IDE ketika upload program dilakukan. Kecepatan Baudrate tersebut menyesuaikan dengan jenis board Arduino yang digunakan. Misal untuk Arduino UNO dan Mega adalah 115200 bps, sedangkan untuk Arduino Pro Mini adalah 57600 bps. Untuk melihat baudrate tersebut silahkan buka file boards.txt yang berada dilokasi C:\Program Files\Arduino\hardware\arduino\avr kemudian setelah membuka file boards.txt tekan CTRL+F dan ketikkan kata kunci speed. Perhatikan gambar dibawah ini :




D. Menghubungkan (pairing) Bluetooth HC-05 Dengan Bluetooth Pada PC

Setelah tahapan mengirimkan At command Bluetooth HC-05 berhasil dilakukan, maka lepas terlebih dahulu kabel USB Arduino dari port USB PC. Kemudian lepas jumper antara VCC dengan pin 34 (pin KEY atau pin WAKEUP) dan biarkan kabel lain yang menghubungkan antara Bluetooth dan Arduino board. Kemudian hubungkan kembali kabel USB Arduino ke port USB Laptop. Langkah selanjutnya silahkan buka Control Panel dan kemudian ketikkan kata kunci hardware pada kolom search. Selanjutnya pilih Devices and Printers.



Setelah menu Devices and Printers terbuka klik Add a device.



Seharusnya Bluetooth HC-05 akan terdeteksi pada kolom add a device. Nama bluetooth yang ditampilkan adalah nama yang sama yang diberikan dengan At command AT+NAME=. Jika berhasil terdeteksi klik terlebih dahulu pada bluetooth kemudian klik Next.


Langkah selanjutnya pilih Enter the device’s pairing code



Langkah selanjutnya masukkan pairing code yang dimiliki bluetooth HC-05, kemudian klik Next. Pairing code tersebut adalah password yang diberikan ke bluetooth HC-05 melalui At command AT+PSWD=.


Tunggu beberapa saat hingga proses instalasi Standart Serial Over Bluetooth link selesai. Jika proses instalasi selesai dilakukan maka akan muncul tampilan seperti berikut ini.



Jika semua proses diatas berhasil dilakukan maka nyala LED pada Bluetooth HC-05 seharusnya memiliki interval yang berbeda dengan sebelum dilakukan pairing dengan bluetooh Laptop. Selanjutnya lakukan pengecekan COM port Standart Serial Over Bluetooth link pada software Arduino IDE. Buka software Arduino IDE kemudian klik Tools lalu pilih Port: disana seharusnya telah ditambahkan COM port Standart Serial Over Bluetooth link.




E. Memasang Jumper Pada Pin 32 Bluetooth HC-05
Pin 32 bluetooth HC-05 digunakan untuk mereset Arduino secara otomatis agar upload program dari software Arduino IDE bisa dilakukan. Pada saat bluetooth HC-05 terhubung dengan Bluetooth Laptop maka pin 32 akan berlogika Low. Solder sebuah kabel ke pin 32 bluetooth HC-05, kemudian diujung kabel solder juga kapasitor keramik 104 atau 100nF.  Lakukan secara hati-hati agar tidak merusak modul Bluetooth HC-05 anda. Berikut gambar Bluetooth HC-05 milik Admin yang sudah diberi kabel jumper dan kapasitor keramik 100nF.



Fungsi kapasitor keramik tersebut akan dijelaskan pada pembahasan selanjutnya.



II. Modifikasi Pada Arduino Board 

A. Arduino UNO

Berdasarkan pada kolom komentar web http://makezine.com/ kesimpulan yang Admin dapatkan adalah masalah upload program Arduino via Bluetooth HC-05 tidak bisa dilakukan disebabkan karena kondisi reset chip Arduino yang tidak berjalan dengan seharusnya. Berdasarkan sumber yang Admin baca (link tersedia diakhir psotingan) proses upload program Arduino dimulai dengan me-reset chip Arduino. Kemudian chip Arduino menjalankan sebuah program kecil yang dinamakan bootloader. Bootloader merupakan sebuah program kecil yang disimpan di dalam flash memory dan berada pada alamat teratas didalam flash memory sehingga ketika chip reset, maka akan menjalankan program ini terlebih dahulu. Dalam mode bootloader, jika chip tidak menerima karakter dengan urutan tertentu yang merupakan isyarat bahwa upload program akan dilakukan, maka chip akan keluar dari program bootloader dan menjalankan kembali program yang sudah tersimpan sebelumnya. Jika yang terjadi sebaliknya, maka bootloader akan menerima transfer program dari software Arduino IDE dan kemudian menuliskannya ke dalam memory flash.

Lalu bagaimana proses reset chip Arduino terjadi saat upload program dilakukan? Untuk me-reset chip Arduino seperti Atmega 328, pin reset dari Atmega 328 perlu diberikan logika low. Yang menjadi masalah apabila pin reset tetap berada dalam keadaan low, maka baik bootloader ataupun program yang sudah tersimpan tidak akan bisa berjalan. Namun dengan perkembangan Arduino yang cepat, permasalahan ini sudah terpecahkan. Sebagai contoh pada board Arduino UNO masalah ini diselesaikan dengan menempatkan sebuah kapasitor keramik dengan ukuran 100nF antara pin reset chip Atmega 328 dengan pin D7 Atmega 16U2. Pin D7 Atmega 16U2 berfungsi untuk mereset chip Atmega 328 secara otomatis ketika upload program dilakukan. Dengan adanya kapasitor 100nF tersebut maka pin reset akan berlogika low untuk sementara, kemudian kembali ke tegangan 5V setelah kapasitor terisi penuh sehingga bootloader dapat berjalan.

Pertanyaan selanjutnya adalah bagaimana cara menghubungkan bluetooth HC-05 dengan Arduino UNO agar upload program bisa berjalan. Beberapa percobaan yang Admin lakukan antara lain adalah  menghubungkan secara langsung antara pin 32 Bluetooth HC-05 dengan pin reset Atmega 328, hasilnya upload program tidak bisa dilakukan. Kemudian menambahkan sebuah kapasitor keramik 100nF, antara Pin 32 Bluetooth HC-05 dengan pin reset Atmega 328, hasilnya upload program tetap tidak bisa dilakukan, serta beberapa percobaan lainnya juga gagal. Selanjutnya Admin mempelajari rangkaian reset Arduino UNO antara chip Atmega 16U2 dengan chip Atmega 328. Berikut gambar rangkaian reset dari Arduino UNO.


Setelah mempelajari rangkaian reset Arduino UNO diatas, kesimpulan yang Admin dapat adalah upload program Arduino UNO melalui Bluetooth HC-05 tidak bisa dilakukan dikarenakan kondisi reset chip Atmega 328 yang tidak terpenuhi.  Jika menghubungkan secara langsung pin 32 Bluetooth HC-05 dengan pin reset Atmega 328 maka chip Atmega 328 selalu dalam kondisi low, sehingga bootloader tidak bisa berjalan. Sedangkan jika ditaruh sebuah kapasitor 100nF antara pin 32 Bluetooth HC-05 dengan pin reset Atmega 328 maka chip Atmega 328 tidak ter-reset dengan baik dikarenakan masih adanya tegangan yang berasal dari pin D7 Atmega 16U2. Sehingga Admin menyimpulkan agar kondisi reset chip Atmega 328 dari Bluetooth HC-05 dapat terpenuhi maka harus memutuskan jalur reset antara Atmega 16U2 dengan Atmega 328. Beruntung pada Arduino board terdapat jalur jumper RESET-EN atau RESET ON. Gambar berikut merupakan jalur jumper RESET ON pada Arduino UNO.


Jalur RESET ON tersebut berfungsi untuk menghubungkan jalur reset antara pin D7 Atmega 16U2 ke pin reset Atmega 328 (lihat skematik rangkaian reset Arduino UNO diatas). Selanjutnya Admin memotong sebuah jalur kecil yang menghubungkan antara kedua solderan timah yang tampak pada gambar diatas. Kemudian menyolderkan sebuah female header ke jalur RESET ON. Berikut board Arduino UNO milik Admin setelah ditambahkan female header.


Tujuan Admin menggunakan female header adalah agar Arduino dapat diprogram baik melalui kabel USB maupun secara wireless menggunakan bluetooth HC-05. Jika ingin memprogram Arduino via kabel USB maka cukup menjumper female header tersebut. Sedangkan jika ingin memprogram Arduino via Bluetooth HC-05 cukup menghubungkan pin 32 Bluetooth HC-05 ke sebuah kapasitor keramik 100nF kemudian kaki kapasitor yang satunya dihubungkan ke lubang female header yang ditunjukkan oleh tanda panah pada gambar diatas. Berikut ini gambar rangkaian secara lengkap cara menghubungkan bluetooth HC-05 ke Arduino UNO agar transfer program via wireless bisa dilakukan.


Pin RX0 (menerima data) dan TX0 (mengirim data) pada gambar, merupakan pin D0 dan pin D1 dari Atmega 328 dengan fungsi khusus sebagai jalur komunikasi data serial USART. Kedua pin tersebut juga terhubung ke Atmega 16U2, dimana ketika upload program dari software Arduino IDE dilakukan, program dikirim melalui Atmega 16U2 menuju Atmega 328 melalui kedua pin tersebut. Perhatikan dengan baik cara menghubungkan kedua jalur tersebut antara Arduino UNO dengan Bluetooth HC-05. Setelah selesai menghubungkan Arduino UNO dengan Bluetooth HC-05 seperti diatas maka langkah selanjutnya adalah mengupload program ke Arduino UNO secara wireless.


Mengupload Program Arduino UNO Secara Wireless


Pada gambar diatas Arduino UNO milik Admin sudah dihubungkan dengan power +9V melalui power connector dan dalam kondisi running program yang sudah tersimpan sebelumnya. Tahap selanjutnya membuat program yang akan diupload ke Arduino UNO. Buka software Arduino IDE, kemudian buka contoh program blink LED dengan cara klik tab File > Examples > Basics > Blink.

Kemudian langkah selanjutnya memilih COM port Standart Serial Over Bluetooth link dengan cara pilih tab Tools > Port > lalu pilih salah satu COM port Standart Serial Over Bluetooth link yang tersedia. Pada contoh yang Admin berikan diatas Standart Serial Over Bluetooth link milik Admin adalah COM 10 dan COM 11. Biasanya Admin memilih COM port dengan nomor yang kecil, dengan kata lain Admin memilih COM 10. Sesuai dengan pengalaman Admin, COM port yang bisa digunakan untuk transfer program melalui Bluetooth dapat dilihat melalui properties dari Bluetooth HC-05 yang ditambahkan ke komputer. Caranya adalah buka Control Panel > lalu ketik hardware pada kolom search > kemudian pilih Devices and Printers > pada list Devices pilih dan klik kanan pada nama bluetooth HC-05 kemudian pilih properties > selanjutnya pilih tab Hardware, Com port yang tertera pada tab Hardware tersebutlah yang akan dipilih pada software Arduino IDE. Perhatikan gambar berikut ini.


Selanjutnya upload program ke Arduino dengan cara klik tab Sketch > Upload, atau dengan cara tekan CTRL+U. Berikut ini merupakan video demo milik Admin yakni mentransfer program Arduino UNO via wireless dengan Bluetooh HC-05.




B. Arduino Mega 2560

Pembahasan materi untuk Arduino Mega 2560 hanya sedikit saja dikarenakan hal-hal yang menjadi fokus pembahasan agar program dari Arduino IDE dapat diupload ke board Arduino Mega 2560 sudah dibahas pada pembahasan Arduino UNO. Seperti bagaimana proses upload program dari Arduino IDE ke board Arduino dilakukan, apa itu bootloader, kemudian fungsi kapasitor keramik 100nF pada jalur reset antara chip Arduino dengan chip USB serial converter agar bootloader dapat berjalan, serta modifikasi rangkain reset Arduino agar Bluetooth HC-05 dapat mereset chip Arduino secara otomatis ketika upload program dari software Arduino IDE dilakukan. Modifikasi pada board Arduino Mega 2560 adalah sama saja dengan board Arduino UNO yakni mencari dan memutuskan jalur jumper RESET-EN atau RESET ON kemudian menyolderkan sebuah female header pada jalur jumper RESET-EN atau RESET ON. Berikut gambar Arduino Mega 2560 milik Admin setelah dilakukan modifikasi.


Lubang dari female header yang ditunjukkan oleh anak panah adalah yang dihubungkan ke pin 32 bluetooth HC-05. Yang perlu diingat adalah tempatkan sebuah kapasitor keramik 100nF antara lubang female header tersebut dengan pin 32 Bluetooth HC-05. Untuk rangkaian keseluruhan cara menghubungkan Arduino Mega 2560 dengan Bluetooth HC-05 dapat meniru rangkaian pada Arduino UNO. Yang perlu diperhatikan adalah jalur TX dan RX pada Bluetooth HC-05 dihubungkan dengan pin dengan nama TX0 dan RX0 pada Arduino Mega 2560. Jangan sampai keliru karena terdapat pin dengan nama yang mirip namun bukan merupakan jalur komunikasi data untuk transfer program dari software Arduino IDE. Pin-pin tersebut antara lain adalah pin dengan nama RX1,TX1, RX2,TX2 dan RX3, TX3. Setelah Arduino Mega 2560 selesai dihubungkan dengan Bluetooth HC-05, langkah selanjutnya adalah lakukan upload program dari software Arduino IDE. Ikuti langkah-langakah upload program pada Arduino UNO pada pembahasan sebelumnya. Berikut ini merupakan video demo milik Admin yakni upload program Arduino Mega 2560 via wireless dengan Bluetooh HC-05.




C. Arduino Pro Mini


Arduino Pro Mini merupakan salah satu varian dari Arduino board dengan designnya yang simple dan kecil yakni sekitar 0.7" x 1.3". Berdasarkan chip yang digunakan, Arduino Pro Mini memiliki dua varian yakni menggunakan chip Atmega 328 dan yang menggunakan chip Atmega 168. Sedangkan berdasarkan kecepatan eksekusi program, Arduino Pro Mini dibagi menjadi model dengan Clock 8 MHz dengan power 3V3 dan board dengan Clock 16 MHz dengan power 5V. Untuk memprogram Arduino Pro Mini dibutuhkan perangkat tambahan berupa USB to TTL Serial Convter seperti FTDI TTL-232R USB atau USB TTL CP2102 yang memiliki harga cukup murah. Perhatikan gambar berikut ini cara menghubungkan USB to TTL Serial Converter dengan Arduino Pro Mini agar upload program dari software Arduino IDE bisa dilakukan. 



Pin DTR (pin RTS untuk kabel FTDI USB to TTL Serial Converter) yang ada pada USB to TTL Serial Converter model CP2102 pada gambar diatas dihubungkan dengan jalur reset Arduino Pro Mini. Pin DTR tersebut digunakan untuk mereset chip Arduino Pro Mini ketika upload program dilakukan. Untuk Arduino Pro Mini jenis Clone memiliki posisi pin programmer yang terbalik, berbeda dengan seperti pada gambar diatas. Perhatikan gambar Arduino Pro Mini Clone berikut ini.


Arduino Pro Mini Clone tersebut adalah yang Admin gunakan pada tutorial ini. Sebenarnya cara mudah untuk menentukan koneksi antara USB to TTL Serial Converter dengan Arduino Pro Mini adalah dengan mencocokkan pin dengan nama GRN dan BLK antara Arduino Pro Mini dengan USB to TTL Serial Converter. Sebelum mencoba mengupload program dengan Bluetooth HC-05 sangat Admin sarankan untuk mencoba upload program terlebih dahulu dengan menggunakan USB to TTL Serial Converter untuk memastikan Arduino Pro Mini berada dalam kondisi yang masih baik.

Lalu bagaimana cara menghubungkan Arduino Pro Mini dengan Bluetooth HC-05?
Pada dasarnya cara menghubungkannya adalah sama saja dengan cara menghubungkan pada Arduino UNO dan Arduino Mega 2560, perbedaannya adalah pada Arduino Pro Mini tidak dibutuhkan lagi tambahan kapasitor 100nF antara jalur reset Arduino Pro Mini dengan pin 32 Bluetooth HC-05. Hal ini dikarenakan kapasitor 100nF tersebut sudah tersedia di board Arduino Pro Mini. Perhatikan Gambar berikut ini cara menghubungkan Arduino Pro Mini dengan Bluetooth HC-05.


Jika menggunakan Arduino Pro Mini dengan external power supply, power bisa dimasukkan ke pin VCC atau pin RAW. Bedanya adalah jika power dimasukkan melalui pin VCC maka tegangan haruslah yang sudah ter-regulasi yakni berupa tegangan +5V atau +3.3V. Sedangkan untuk pin RAW adalah untuk tegangan diatas 5V, jika berdasarkan Arduino Pro Mini design Schematic maka tegangan input bisa sampai +16V, tapi untuk lebih aman Admin sarankan gunakan maksimum tegangan +12V saja.

Tahap selanjtnya yang harus dilakukan adalah mengubah baudrate dari Bluetooth HC-05. Jika pada Arduino UNO dan Mega 2560 baudrate Bluetooth HC-05 adalah 115200 maka untuk Arduino Pro Mini adalah 57600. Untuk mengubah baudrate Bluetooth HC-05 adalah dengan cara mengirim At command berupa AT+UART=57600,0,0 saat Bluetooth dalam kondisi At mode. Tata cara masuk ke At mode bisa dilihat pada pembahasan sebelumnya dengan judul “B.Tata cara masuk At mode Bluetooth HC-05”. Lalu cara untuk melihat baudrate untuk masing-masing board Arduino bisa dilihat pada pembahasan dengan judul “4.Mengirim At Command ke Bluetooth HC-05”.

Jika beberapa tahapan diatas sudah selesai dilakukan maka Arduino Pro Mini siap untuk menerima upload program dari software Arduino IDE secara wireless melalui Bluetooth HC-05. Silahkan ikuti langkah-langkah upload program pada penjelasan dengan judul “Mengupload Program Arduino UNO secara wireless”. Berikut ini merupakan video demo milik Admin yakni upload sketch Arduino Pro Mini via wireless dengan Bluetooh HC-05.




Sekian penjelasan yang bisa Admin berikan pada pembahasan materi kali ini. Semoga sedikit ilmu ini bermanfaat untuk pembaca blog catucreativeproject. Jika terdapat kekurangan bisa memberikan masukan pada kolom komentar atau jika mempunyai pertanyaan dikarenakan penjelasan Admin yang masih kurang jelas dapat menghubungi Admin melalui kontak yang Admin tampilkan. Terima Kasih.
Wasallam.




Ditulis dan Diterjemahkan oleh Admin blog caturcreativeproject.blogspot.com

*Luangkan sedikit waktumu untuk memberikan komentar pada postingan ini ,karena komentar pembaca sangat berharga bagi Admin sebagai pembakar semangat dalam membuat tutorial selanjutnya, terima kasih :) *

Dapatkan dalam bentuk file PDF
Get on PDF file

Sumber Project :         






Tag File :         Transfer Arduino Program Via Wireless Using Bluetooh Hc-05
                        Mengirim Program Arduino Secara Wireless Menggunakan Bluetooth Hc-05
                        Wireless Upload Program To Arduino Without Usb Cable
                        Diy Arduino Bluetooth Programming Shield
                        Wireless Program Arduino
                        Arduino Bluetooth Programming Shield (Wireless Upload Code)
                        Arduino Programming Via Bluetooth
                        Can I Send Arduino Programs Directly Via Bluetooth?
                        Arduino Wireless Sketch Uploading Via Bluetooth
                        Hc 05 Bluetooth Wireless Upload To Arduino
Memprogram Arduino Melalui Bluetooth Hc-05
Upload Arduino Code Through Bluetooth
Program An Arduino Wireless Over Bluetooth
Upload Arduino Uno Sketch Using Hc-05 Bluetooth Module
Arduino Wireless Programming Via Bluetooth
Upload Sketch Arduino Via Bluetooth Windows
Cara Mengirim Program Arduino Secara Wireless
Upload Sketch Arduino Secara Wireless dengan Bluetooth HC-05

18 comments:

  1. Great job! Glad you were able to figure out a more reliable solution. I wrote the original makezine article.

    cheers

    ReplyDelete
  2. Thanks a lot Mr. Josh. Your original Makezine article so awsome. Thanks for shearing us and hope you allow me to shearing your knowledge.

    ReplyDelete
  3. assalamualaikum bang untuk menghubngkan bluetooth dengan arduino apa ada coding khusus

    ReplyDelete
    Replies
    1. wa'alaikumsalam
      Pada dasarnya tidak ada gan, interface antara bluetooth dan arduino bisa langsung dilakukan, sedangkan untuk membaca data serial yang diterima oleh bluetooth bisa menggunakan program example software serial.

      Buka Program example software serial kemudian upload ke Arduino.
      Untuk melihat data serial yang diterima oleh bluetooth caranya buka serial monitor di Arduino IDE
      Trims semoga membantu

      Delete
  4. ok.....sebangatberino vasi,,,,ad yang bisah bantu program arduino...saya di dki

    ReplyDelete
  5. @ kang Danil > bantuan seperti apa yang dibutuhkan? Mungkin kita bisa diskusi

    ReplyDelete
  6. kereeen...penting banget ini untuk device IoT, harus bisa update firmware over the air(OTA)

    ReplyDelete
    Replies
    1. Trims Kang Ekky Hermestian lW,semoga bermanfaat
      Dan semoga kedepan saya bisa Posting materi lagi

      Delete
  7. Kang.. bisakah cara ini saya pakai untuk komunikasi data dari hp ke pc.. misalkan bluetooth hp saya rusak.. saya mau pakai komunikasi ini untuk untuk salin data seperti menggunakan kabel usb biasa.

    ReplyDelete
  8. Admin kirim coding jika Bluetooth lost arduino akan berhenti bekerja

    ReplyDelete
    Replies
    1. PIN State-nya Bluetooth masukkan ke pin Arduino pak, nanti tinggal baca digital read di arduino. Kalo secara default pin state Bluetooth akan HIGH kalo terhubung, kalo putus koneksi berarti LOW

      logika ini yang dibuat dalam bentuk program di Arduino, saya yakin anda bisa buat program ini.
      Trims semoga membantu

      Delete
  9. kalo di Arduino nano pin reset on nya dimana?

    ReplyDelete
  10. Pak saya mau tau
    Relay kan udh bisa d control lewat Bluetooth pak
    Cuma kan stelah disconect atau aplikasi d close
    Tidk bsa lngsung mnerima update si relay
    Bagaimana cara program arduni control relay mnggunakan Bluetooth plus updte status relay stelah dickonek
    Apakah bsa program.y menerima dan mengirim data lwat Bluetooth
    Mohon pembahasan.y pak
    Trimaksih

    ReplyDelete
  11. Thanks for sharing, I successfully connected a HC-05 to an arduino pro mini for bluetooth remote programming.

    ReplyDelete
  12. Gan, klo Bluetooth to Bluetooth apa bisa pake upload, laptop q ngk ada Bluetooth nya

    ReplyDelete
    Replies
    1. Alternatif ut laptop/komputer yang nggak ad Bluetooth Bisa beli bluetooth dongle. Cara kerjanya sama saja

      Delete
  13. Gan, klo Bluetooth to Bluetooth apa bisa pake upload, laptop q ngk ada Bluetooth nya

    ReplyDelete
  14. Terimakasih Untuk Admin sangat membantu. saya ada pengalaman beli mega2560 cloningan pin rx0 tx0 tidak bisa berkomunikasi dengan hc05. padahal pake yg mega yg asli bisa. setelah baca ini memperaktekan dengan pasang pin rx tx tahanan 120 ohm ke gnd berhasil

    ReplyDelete

Adbox