Memprogram Arduino Melalui Bluetooth

Pengguna Arduino tentunya sudah sangat familier dengan pemrograman Arduino yang dapat dilakukan dengan mudah. Cukup dengan menancapkan kabel ke port USB masing-masing pada PC dan board Arduino maka kita sudah dapat mengunggah program ke Arduino. Meski secara fisik menggunakan kabel USB, namun sebetulnya komunikasi antara komputer dan Arduino dilakukan menggunakan komunikasi serial. Seperti terlihat pada gambar di bawah ini.

Bluetooth adalah standar komunikasi untuk bertukar data tanpa perantara kabel (wireless) pada jarak yang tidak terlalu jauh. Bluetooth biasanya digunakan untuk komunikasi dua perangkat berpasangan (paired) menggunakan perantara sinyal gelombang radio UHF dengan frekuensi 2.4 – 2.485 MHz. Pada dasarnya komunikasi bluetooth adalah komunikasi serial hanya dilakukan tanpa perantara kabel. Karena sama-sama berbasis komunikasi serial tentu kita mengira-ngira apakah pemrograman Arduino juga dapat dilakukan tanpa menggunakan kabel melalui bluetooth. Jawabannya adalah ya, Arduino dapat diprogram melalui bluetooth. Pertanyaan berikutnya bagaimana caranya?

Sebenarnya saat ini ada beberapa produk yang memungkinkan Arduino dapat diprogram langsung melalui bluetooth contohnya adalah Arduino Wireless Programmer shield serta beberapa perangkat Arduino berbasis standar bluetooth terbaru yaitu Bluetooth 4 (BLE), antara lain Bluno dan BLE Shield. Meski demikian mungkin ada di antara kita yang saat ini telah memiliki modul bluetooth seperti Bluetooth shield ataupun modul HC-05 yang ingin dapat memprogram Arduino melalui bluetooth. Tulisan ini membahas tentang langkah-langkah yang perlu dilakukan untuk memprogram Arduino via bluetooth menggunakan modul Bluetooth Shield (Master/Slave) v2.2 dari Itead Studio yang berbasis HC-05.

Sebelum masuk ke penjelasan tentang langkah pemrograman, perlu kita ketahui beberapa hal berikut :

  • Selama ini perangkat lunak Arduino (versi xx ataupun 1.0.x) kurang mendukung untuk penggunaan bluetooth. Saya kira sebagian pembaca pernah merasakan masalah betapa lambatnya loading perangkat Arduino pada saat fitur bluetooth di komputer kita dinyalakan. Begitu pula saat akan meng-klik menu Tools – Serial Ports pada saat akan memilih port serial berapa yang akan digunakan. Hal ini disebabkan karena kekurangan bagian komunikasi serial perangkat lunak Arduino saat harus mengenali lebih dari 1 port serial yang aktif. Hal ini dapat diatasi dengan mengganti file rxtxserial.dll dengan yang telah dimodifikasi (tautan berikut) atau dengan cara yang lebih mudah, yaitu menggunakan perangkat lunak Arduino versi 1.5.x (saat tulisan ini ditulis versi terbaru adalah 1.5.8) pada tautan berikut.
  • Saat menjalani komunikasi serial kedua perangkat yang sedang berkomunikasi haruslah memiliki parameter protokol komunikasi yang sama. Jika tidak sama maka ibarat dua orang yang berkomunikasi dalam bahasa yang berbeda maka keduanya tidak akan saling memahami maksud lawan bicaranya. Parameter komunikasi serial yang paling penting adalah baudrate (kecepatan komunikasi), jumlah bit karakter, jumlah bit stop, dan jumlah bit parity. Pada pemrograman Arduino parameter komunikasi serial yang digunakan untuk jumlah bit karakter, jumlah bit stop, dan jumlah bit parity adalah sama, yaitu masing-masing 8 bit karakter, 1 bit stop, dan tanpa bit parity. Meski demikian terdapat perbedaan pada baudrate yang digunakan, misalnya Arduino Uno menggunakan baudrate 115200, Arduino Duemilanova/Diecimila baudrate 57600, serta Arduino Nano, dan Arduino NG dengan ATMega8 baudrate 19200 (sumber : boards.txt). Modul bluetooth berbasis HC-05 memiliki dua mode yaitu mode CMD untuk setting pada baudrate tetap 38400 (tidak dapat diatur) dan mode DAT untuk komunikasi yang dapat diatur baudrate-nya dengan default 9600 (sumber).
  • Pada saat proses pemrograman Arduino sebelum program diunggah ke mikrokontroler terdapat proses reset untuk mengaktifkan program bootloader. Pada modul bluetooth standar kita tidak dapat me-reset board Arduino secara otomatis untuk itu perlu ditambahkan rangkaian yang menghubungkan modul bluetooth dengan pin reset pada Arduino.

Berikut adalah langkah-langkahnya :

  1. Unduhlah perangkat lunak Arduino versi 1.5.x dari tautan berikut. Persiapkan ruang harddisk karena ukurannya cukup besar (ukuran zip lebih dari 170 MB setelah diekstrak lebih dari 550 MB). Kebutuhan yang tidak kalah penting adalah jaringan internet yang handal karena unduhan dari tautan resmi Arduino tersebut nampaknya tidak memiliki fasilitas resume, sehingga jika terputus di tengah jalan tidak dapat dilanjutkan dan harus memulai dari awal.
  2. Tambahkan rangkaian berupa kapasitor 1 uF yang menghubungkan antara pin 32 dari modul HC-05 dengan pin RESET Arduino (Informasi dari tautan berikut). Karena saya tidak menemukan kapasitor 1uF di toko elektronik dekat rumah maka saya gunakan rangkaian pada tautan lain yang terdiri dari 1 kapasitor keramik 100 nF, 1 resistor 10 K ohm, dan 1 resistor 15 k Ohm seperti pada gambar berikut.

  1. Berikutnya adalah langkah persiapan pengesetan modul bluetooth. Set saklar mode operasi menjadi CMD serta set jumper seperti terdapat pada gambar berikut. Pada langkah pengesetan modul bluetooth dilakukan melalui modul UART yang terdapat board Arduino, itulah sebabnya maka Tx modul dihubungkan dengan Tx Arduino dan Rx modul dengan Rx Arduino. Pasangkan modul bluetooth shield pada board Arduino. Perhatian untuk mengecek isi program Arduino apakah menggunakan komunikasi serial. Jika terdapat komunikasi serial upload program terlebih dahulu yang tidak menggunakan komunikasi serial (misal Blink). Proses ini tidak harus menggunakan board Arduino, tapi dapat juga menggunakan konverter USB – serial TTL, jangan lupa dengan koneksi Rx – Rx dan Tx – Tx.
  2. Lakukan pengesetan modul bluetooth shield dengan menyambungkan kabel Arduino ke port USB komputer serta menggunakan perangkat lunak terminal serial. Pada aktifitas ini digunakan Serial Monitor dari Arduino dengan setting baudrate 38400 (karena sedang pada mode CMD) dan line ending "Both NL and CR" (karena AT command harus diakhiri dengan karakter NL dan CR). Untuk mengetes komunikasi ketik AT kemudian diikuti dengan menekan ENTER pada keyboard (atau dapat juga dengan menekan tombol "Send" pada Serial Monitor). Jika komunikasi berjalan baik maka modul bluetooth akan menjawab OK. Pada modul yang saya gunakan jika pertama kali mengirim perintah AT, modul selalu menjawab ERROR. Modul baru akan menjawab OK untuk perintah AT kedua. Sejauh ini hal ini tidak mengganggu, hanya harus mengirim perintah AT 2 kali di awal komunikasi.
  3. Berikutnya ketikkanlah perintah berikut pada Serial Monitor (sumber)
AT Command Respon Keterangan
AT+ORGL OK Mengembalikan ke keadaan default
AT+ROLE=0 OK Mengeset modul sebagai slave
AT+POLAR=1,0 OK PIO 8 high drive LED; PIO 9 low drive LED.

Maksudnya adalah pada saat setiap awal komunikasi PIO 9 (pin 32) yang disambungkan dengan pin RESET diset logika low sehingga mereset Arduino (sumber)

AT+UART=115200,0,0 OK Set baudrate 115200, 1 bit stop dan tanpa bit parity. Catatan untuk Duemilanova baudrate 57600.
AT+INIT OK Inisialisasi modul

 

  1. Setelah selesai lepaskan kabel USB dari Arduino, set saklar operasi ke DAT, dan atur jumper seperti pada gambar berikut (Tx modul dengan Rx Arduino dan sebaliknya). Sambungkan lagi kabel USB, kali ini hanya sebagai catu daya.
  2. Klik kanan icon Bluetooth Device pada Notification Area pada Desktop komputer anda, klik Add Device. Maka akan ditampilkan media bluetooth yang akan disambungkan. Pilih modul bluetooth shield yang dapat memiliki nama yang berbeda-beda. 2 modul yang saya miliki (tipe sama) memiliki nama HC-05 dan H-C-2010-06-01. Setelah diklik maka akan ada menu pilihan Pairing Option, pilih "Enter the Device's Pairing Code" dan isikan "1234".
  3. Untuk mengecek port yang digunakan maka kembali klik kanan icon Bluetooth Device pada Notification area desktop, pilih Show Bluetooth Device kemudian klik icon modul bluetooth yang digunakan, kemudian klik tab Hardware. Jika belum ada klik tab Services dan klik tanda centang Serial port (SPP) "Dev B".

  1. Buka perangkat lunak Arduino pilih Tools – Serial Port – Comxx (sesuai yang digunakan oleh modul bluetooth).
  2. Arduino siap diprogram melalui bluetooth J. Serial monitor juga berfungsi normal, hanya dalam program baudrate-nya disesuaikan menjadi 115200.

 

 

Semoga bermanfaat.

 

Referensi :

http://wiki.iteadstudio.com/BT_Shield_%28Master_Slave%29

http://blog.iteadstudio.com/upload-program-to-arduino-with-bt-shield/

http://blog.iteadstudio.com/warless-program-your-iteaduino-bt-2/

http://makezine.com/projects/diy-arduino-bluetooth-programming-shield/

http://forum.arduino.cc/index.php?topic=217884.0

http://forum.arduino.cc/index.php?topic=218049.0

http://www.rcscomponents.kiev.ua/datasheets/hc_hc-05-user-instructions-bluetooth.pdf

 

 

 

 

 

 

 

 

Leave a Reply

*