Saturday, October 29, 2016

Programming Bluetooth Module HC-05





Modul HC-05 dapat berfungsi sebagai master ataupun slave. Pengaturan default modul ini adalah:

Bluetooth Name                                  : HC-05
Password                                             : 1234
Baud Rate Communication Mode      : 9600 bps

Untuk mengganti Nama, Baudrate, Password, Mode dll kita harus masuk kedalam AT Command mode. Untuk dapat masuk ke AT Command Mode terdapat 2 cara yaitu:

1. Nyalakan modul dan berikan logika '1' pada pin En atau pin Key secara bersamaan, maka modul akan masuk ke AT Command dengan Baudrate 38400 bps.

2.  Nyalakan terlebih dahulu kemudian berikan logika '1' pada pin En atau Key, maka modul ini akan masuk AT Command dengan Baudrate 9600 bps.

 Pada tutorial ini kita akan menggunakan cara pertama.

alat dan bahan:
- Arduino UNO
- Modul Bluetooth HC-05
- USB to Serial
- Hp atau Tablet Android

Software yang digunakan:
- Arduino IDE
- Terraterm (Bisa di download disini)
- Aplikasi Bluetooth RC Controller pada android

Langkah-langkah:
1. Setting konfigurasi HC-05 Melelui AT-Command Mode

Sambungkan:
HC-05                 USBtoSerial
VCC------------------5V
GND-----------------GND
TX--------------------RX
RX--------------------TX
KEY/EN-------------5V 

USBtoSerial bisa menggunakan FTDI, PL-2303 dll

Jika terdapat switch pada modul seperti gambar dibawah sebelah kanan, untuk masuk AT Comamnd mode tekan switch dan berikan supply secara bersamaan. Jika berhasil masuk AT Command mode dengan baudrate 38400 bps maka led akan berkedip dengan frekuensi 1Hz.
 

Setelah berhasil masuk AT Command mode buka aplikasi Teraterm. Maka akan muncul window seperti dibawah ini.
Pilih:
Serial------------->Pilih Com Port USBtoSerial (bisa dilihat di device manager)------------>Klik OK  

Maka akan muncul window seperti gambar dibawah sebelah kiri. Lalu klik Terminal --> Setup. maka akan muncul window seperti gambar dibawah sebelah kanan. Ubah Transmit dari "CR" ke "CR+LF" lalu centang "Local echo" lalu klik OK.


Lalu Klik Setup lagi ------> Pilih Serial Port. Akan muncul window seperti gambar dibawah sebelah kanan. Ubah baudrate menjadi "38400" lalu klik ok


 
Dibawah ini perintah-perintah AT Command yang sering dipergunakan. Untuk lengkapnya klik disini.
 

Perintah
Keterangan
AT+ROLE=0
Modul akan berfungsi sebagai slave
AT+ROLE=1
Modul akan berfungsi sebagai master
AT+CMODE=0
Modul akan pairing dengan perangkat lain secara acak
AT+CMODE=1
Modul akan pairing dengan perangkat terakhir
AT+PSWD=XXXX
Untuk merubah Password modul
AT+UART=baud rate,stop bit,parity
Untuk mereset baud rate
Contoh: AT+UART=9600,0,0
Maka baud rate akan di set 9600bps, parity none, stop bits 1
Baud rate yang diperbolehkan
4800
9600
19200
38400
57600
115200
230400
460800
921600
1382400
stop bit:
0=1 bit
1=2 bits
Parity
0=none
1=Odd
2=Even
AT+NAME=XXXX
Untuk perubah nama bluetooth

Saya akan mensetting 
HC-05      = mode slave 
Baudrate  = 9600 1 Stop Bit dan parity none
Nama       = ECBPro
Password = ecb123
Dan akan di set auto pairing ke perangkat yang terakhir pairing dengan modul ini.


2. Setelah sses seperti gambar diatas saatnya menghubungkan modul HC-05 dengan Arduino.

HC-05             Arduino Uno
VCC ----------------5V
GND ---------------GND 
TX ----------------- Pin 7
RX ----------------- Pin 8 

Kenapa menggunakan pin 7 dan pin 8, Karena kita akan menggunakan library SoftwareSerial.h yng telah tersedia di arduino. Jika ingin menggunakan Hardware Serial, Hubungkan TX ke Pin 0 dan RX ke Pin 1. Namun jika menggunakan hardware serial setiap upload program kabel yang terhubung pada Pin 0 dan Pin 1 harus dicabut dan kita tidak akan bisa menggunakan Serial Monitor.

3. Buat program seperti dibawah ini, atau bisa di download disini.

#include <SoftwareSerial.h>

SoftwareSerial hc05(2, 3); // RX, TX


// Tambahkan fungsi tombol sesuai keinginan kalian berdasarkan tabel dibawah
#define   atas      70
#define   bawah     66
#define   kiri      76
#define   kanan     82
#define   berhenti  83

void setup()
{
  Serial.begin(57600);
  Serial.println("Bluetooth Controller");
 
  hc05.begin(9600);
}

void loop() // run over and over
{
  baca_hc05();
}

void baca_hc05()
{
  if(hc05.available())
  {
    int nilai;
    nilai=hc05.read();
    switch(nilai)
    {
      case atas: {Serial.println("maju");break;}
      case bawah: {Serial.println("mundur");break;}
      case kiri: {Serial.println("belok kiri");break;}
      case kanan:{Serial.println("belok kanan");break;}
      case berhenti: {Serial.println("berhenti");break;}
    }
  }
}




Keterangan:
1.        Indikator arah. Akan berwarna merah jika tombol arah di sentuh.
2.        Indikator koneksi. Berwarna hijau jika telah terhubung dengan perangkat lain.
3.        Tombol untuk menyalakan Front Light.
4.        Tombol untuk menyalakan Back Light.
5.        Tombol Horn.
6.        Tombol Extra.
7.        Tombol Setting.
8.        Slider untuk mengatur kecepatan. Terdapat 10 speed.
9.        Tombol Forward.
10.    Tombol Backward.
11.    Tombol Left.
12.    Tombol Right.



Desimal
Hexadesimal
Karakter
Keterangan
70
46
F
Tombol Forward
66
42
B
Tombol Backward
76
4C
L
Tombol Left
82
52
R
Tombol Right
71
47
G
Tombol Left + Tombol Forward
73
49
I
Tombol Right + Tombol Forward
72
48
H
Tombol Left + Tombol Backward
74
5A
J
Tombol Right + Tombol Backward
87
57
W
Front Light On
119
77
w
Front Light Off
85
55
U
Back Light On
117
75
u
Back Light Off
86
56
V
Horn On
118
76
v
Horn Off
88
58
X
Extra On
120
78
x
Extra Off
48
30
0
Speed 0
49
31
1
Speed 10
50
32
2
Speed 20
51
33
3
Speed 30
52
34
4
Speed 40
53
35
5
Speed 50
54
36
6
Speed 60
55
37
7
Speed 70
56
38
8
Speed 80
57
39
9
Speed 90
113
71
q
Speed 100
83
53
S
Stop

 

4. Upload lalu buak serial monitor

5. Buka Aplikasi Bluetooth RC Controller lalu sambungkan bluetooth


SELAMAT MENCOBA

2 comments:

  1. Apakah bluetooth akan outo connect klu dalam jangkauan dan disconnect klu d luar jangkauan?

    ReplyDelete
  2. Apakah bluetooth akan outo connect klu dalam jangkauan dan disconnect klu d luar jangkauan?

    ReplyDelete