Pengaturan HC-05

Pengaturan (setting) operasi modul HC-05 dapat dilakukan dengan beberapa cara. Berikut catatan pengaturan dengan dua cara, dengan FTDI USB to serial adapter  dan dengan memanfaatkan papan Arduino.

Pengaturan Menggunakan Modul FTDI

Gambar 1.

Dari sisi pertimbangan hardware cara ini relatif paling mudah untuk dilakukan. Tidak memerlukan resistor tambahan, cukup mengatur agar modul FTDI bekerja di tegangan 3,3 V (ubah poisisi jumper).

Gambar 2.
Gambar 3.

Gambar 2 dan Gambar 3 diperoleh dari dokumen PDF karya Gyula Molnar berikut ini. Hubungan RX dan TX antar modul perlu diperhatikan.

Untuk memasuki mode AT command, tekan dan tahan tombol yang berada di modul HC-05 sebelum menghubungkannya dengan sumber tegangan ( USB port ).

Gambar 4. [Sumber]
Software yang dapat dipakai untuk pengaturan misalnya CuteCom atau Arduino IDE.

Gambar 5.
Gambar 6.

Yang penting diperhatikan adalah pengaturan baud rate agar sesuai dengan pengaturan yang sudah dilakukan di modul HC-05. Di Gambar 5 dan Gambar 6, pengaturan masih menggunakan pengaturan default untuk HC-05.

Pengaturan Menggunakan Papan Arduino

Pengaturan HC-05 dengan menggunakan papan Arduino (semisal Arduino Uno) memerlukan lebih banyak komponen. Tetapi di sisi lain, memiliki keuntungan yaitu tidak memerlukan pembelian modul FTDI (jika memang belum dimiliki).

Gambar 7. [Sumber]
Untuk sistem Arduino Uno atau Arduino Nano yang hanya memiliki satu kanal hardware untuk komunikasi serial, pengguna perlu mempergunakan software serial.

Untuk dapat berkomunikasi dengan modul HC-05, papan sistem Arduino Uno perlu diprogram dengan kode berikut.

[sourcecode] /*
* Kode asal dari:
* HC05 – Bluetooth AT-Command mode
* modified on 10 Feb 2019
* by Saeed Hosseini
* https://electropeak.com/learn/guides
*/
#include "SoftwareSerial.h"
SoftwareSerial myHC05a(2, 3); // RX | TX
void setup()
{
delay(100);
Serial.begin(9600);

//myHC05a.begin(9600); //Baud Rate for AT-command Mode.
myHC05a.begin(38400); //Baud Rate for AT-command Mode.
//myHC05a.begin(115200); //Baud Rate for AT-command Mode.

delay(1000); //Delay untuk Arduino IDE.
Serial.println("***AT commands mode***");
}
void loop()
{
//from bluetooth to Terminal.
if (myHC05a.available())
Serial.write(myHC05a.read());
//from termial to bluetooth
if (Serial.available())
myHC05a.write(Serial.read());
}
[/sourcecode]

Gambar 8.

 

Gambar 9.

Gambar 9 menunjukkan akses AT command dengan default baud rate  untuk modul HC-05, yaitu 38400. Sedangkan komunikasi dari PC ( laptop ) ke papan Arduino Uno menggunakan 9600. Ciri adanya ketidaksesuaian pengaturan baud rate adalah tampilnya karakter ASCII  yang berbeda dari pesan yang seharusnya muncul, termasuk respon untuk AT command

AT Command

Ada banyak sumber daftar AT command yang bisa dan biasa dipakai untuk modul HC-05. Beberapa contohnya:

[intense_code type=”block”] AT : Check the connection.
AT+NAME : See default name
AT+ADDR : see default address
AT+VERSION : See version
AT+UART : See baudrate
AT+ROLE: See role of bt module(1=master/0=slave)
AT+RESET : Reset and exit AT mode
AT+ORGL : Restore factory settings
AT+PSWD: see default password
[/intense_code]
Gambar 10. [Sumber]

AT command :

 

Rujukan tambahan AT command:

HC-05 HC-06 Master Slave:

HC-05 :

 

Uji kendali digital pin Arduino dengan HC-05

Uji penggunaan aplikasi Bluetooth Application di smartphone Android untuk melakukan penyakelaran pin digital di Arduino Uno ini dilakukan dengan memanfaatkan modul HC-05.

Gambar 1.

Rangkaian yang dipakai pada prinsipnya sama dengan yang terlihat di Gambar 1.

[sourcecode] /*
Kode hasil modifikasi dari:
https://create.arduino.cc/projecthub/electropeak/getting-started-with-hc-05-bluetooth-module-arduino-e0ca81

HC05 – Bluetooth AT-Command mode
modified on 10 Feb 2019
by Saeed Hosseini https://electropeak.com/learn/
*/

#include <SoftwareSerial.h>
SoftwareSerial MyBlue(2, 3); // RX | TX
int flag = 0;
int LED = 8;
void setup()
{
Serial.begin(9600);
//Sesuaikan baud rate dengan pengaturan di HC-05
//MyBlue.begin(9600);
MyBlue.begin(38400);
//MyBlue.begin(115200);

pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
Serial.println("Ready to connect\nDefualt password is 1234 or 000");
}
void loop()
{
if (MyBlue.available() > 0)
{
flag = MyBlue.read();
}
//if (flag == 1) //Hex
if (flag == ‘1’) //ASCII
{
digitalWrite(LED, HIGH);
Serial.println("LED On");
}
//else if (flag == 0) //Hex
else if (flag == ‘0’) //ASCII
{
digitalWrite(LED, LOW);
Serial.println("LED Off");
}
}
[/sourcecode]

Gambar 2.

Perintah yang dikirim dapat berupa karakter ASCII sebagaimana yang terlihat di Gambar 2 untuk Switch 1. Untuk itu hanya perlu penyesuaian kecil di kode program untuk Arduino (Uno).

Rujukan :