Modul Bluetooth HC-05: Mengendalikan Arduino dari Ponselmu
Bagaimana cara menghubungkan modul Bluetooth HC-05? Pin dan pembagi tegangan, pairing dengan ponsel, kontrol LED dan relay, perintah AT, HC-05 vs HC-06 vs HM-10, kompatibilitas iPhone, ESP32, dan Pico.
HC-05 adalah modul Bluetooth murah dan sangat umum yang menambahkan komunikasi serial nirkabel ke proyek Arduino. Dengan modul ini kamu bisa menyalakan LED dari ponsel, menyalakan dan mematikan lampu dengan relay, mengemudikan mobil remote, atau mengirim data sensor ke ponsel. Di artikel ini kamu akan melihat langkah demi langkah cara menghubungkan HC-05 dengan benar dan aman, melakukan pairing dengan ponsel, menulis kode pertamamu, dan memakai perintah AT untuk mengubah pengaturan modul.

Bagaimana cara kerja HC-05?
HC-05 memakai SPP (Serial Port Profile) dari Bluetooth klasik dan berperilaku seperti “kabel serial nirkabel”. Begitu ponsel di-pairing dan terhubung, setiap karakter yang dikirim dari ponsel sampai ke Arduino lewat pin TXD modul, dan semua yang ditulis Arduino ke pin RXD dikirim ke ponsel. Di sisi Arduino, kamu tidak perlu tahu apa pun tentang Bluetooth: kamu memakai Serial.print() dan read() persis seperti ketika berbicara dengan Serial Monitor.
| Fitur | Nilai |
|---|---|
| Versi Bluetooth | 2.0 + EDR (klasik, SPP) |
| Jangkauan | ~10 m di ruang terbuka |
| Tegangan catu | 3,6–6 V (board modul punya regulator) |
| Level logika | 3,3 V |
| Baud rate bawaan | 9600 baud (38400 di mode AT) |
| PIN bawaan | 1234 atau 0000 |
| Peran | Master dan slave |
HC-05 vs HC-06 vs HM-10
| Modul | Bluetooth | Peran | Pin | iPhone |
|---|---|---|---|---|
| HC-05 | 2.0 klasik | Master dan slave | 6 | Tidak bisa |
| HC-06 | 2.0 klasik | Hanya slave | 4 | Tidak bisa |
| HM-10 | 4.0 BLE | Master dan slave | 6 | Bisa |

Pin dan pengkabelan HC-05
Modul ini bisa diberi daya dari 5V karena ada regulator di board-nya, tetapi pin datanya bekerja di 3,3 V. Arduino membaca sinyal 3,3 V dari pin TXD HC-05 tanpa masalah. Untuk arah sebaliknya, daripada menghubungkan sinyal TX 5 V dari Arduino langsung ke pin RXD modul, pakai pembagi tegangan: TX Arduino → 1 kΩ → RXD, RXD → 2 kΩ → GND. Dengan begitu sekitar 3,3 V yang sampai ke RXD.
| Pin HC-05 | Fungsi | Arduino Uno |
|---|---|---|
| EN (KEY) | Masuk mode AT | Tidak disambung (3,3 V untuk mode AT) |
| VCC | Daya | 5V |
| GND | Ground | GND |
| TXD | Output data modul | D10 (RX SoftwareSerial) |
| RXD | Input data modul (3,3 V) | D11, lewat pembagi 1 kΩ / 2 kΩ |
| STATE | HIGH ketika terhubung | Tidak disambung, atau ke pin input kalau mau |
Status LED dan pairing dengan ponsel
Ketika modul diberi daya, LED-nya berkedip cepat: artinya modul menunggu koneksi. Di pengaturan Bluetooth ponsel Android-mu, cari perangkat bernama “HC-05” lalu lakukan pairing dengan PIN 1234 (atau 0000 kalau tidak berhasil). Pairing saja belum membuka koneksi; yang membukanya adalah aplikasi terminal serial Bluetooth. Begitu terhubung, LED-nya berkedip pendek dua kali setiap 2 detik. Kalau LED menyala 2 detik lalu mati 2 detik, modul sedang dalam mode perintah AT.
Komunikasi pertama dengan ponsel
Kode di bawah mengubah Arduino menjadi jembatan antara ponsel dan komputermu: setiap karakter dari ponsel dikirim ke Serial Monitor, dan semua yang kamu ketik di Serial Monitor dikirim ke ponsel. Inilah titik awal terbaik untuk menguji koneksi:
1#include <SoftwareSerial.h>
2
3SoftwareSerial bt(10, 11); // RX, TX → HC-05 TXD, RXD
4
5void setup() {
6 Serial.begin(9600);
7 bt.begin(9600); // veri modu hızı / data mode baud rate
8}
9
10void loop() {
11 if (bt.available()) {
12 Serial.write(bt.read()); // telefondan bilgisayara / phone to PC
13 }
14 if (Serial.available()) {
15 bt.write(Serial.read()); // bilgisayardan telefona / PC to phone
16 }
17}Upload kodenya dan buka Serial Monitor di 9600 baud. Di ponsel, hubungkan ke HC-05 dengan aplikasi dari Google Play seperti Serial Bluetooth Terminal lalu ketik sesuatu: yang kamu ketik akan muncul di Serial Monitor. Teks yang kamu ketik di Serial Monitor juga muncul di ponsel. Kalau ini berhasil, koneksi, pengkabelan, dan baud rate-mu sudah benar semua.
Mengendalikan LED dan relay dari ponsel
Sekarang mari bertindak berdasarkan karakter yang datang dari ponsel: ketika 1 datang, LED menyala, dan ketika 0 datang, LED mati. Arduino juga mengirim balasan ke ponsel setelah setiap perintah:
1#include <SoftwareSerial.h>
2
3SoftwareSerial bt(10, 11); // RX, TX
4const int LED = 13;
5
6void setup() {
7 pinMode(LED, OUTPUT);
8 bt.begin(9600);
9 bt.println("Ready");
10}
11
12void loop() {
13 if (bt.available()) {
14 char c = bt.read();
15 if (c == '1') {
16 digitalWrite(LED, HIGH); // LED'i yak / turn the LED on
17 bt.println("LED ON");
18 } else if (c == '0') {
19 digitalWrite(LED, LOW); // LED'i söndür / turn the LED off
20 bt.println("LED OFF");
21 }
22 }
23}Banyak aplikasi Bluetooth memungkinkanmu memberi karakter apa pun ke sebuah tombol, jadi kamu bisa membuat remote kecil dengan tombol “On” dan “Off” di ponselmu. Kalau yang kamu hubungkan modul relay, bukan LED, kode yang sama mengendalikan lampu atau kipas dari ponsel. Mengarahkan karakter F, B, L, dan R untuk maju, mundur, kiri, dan kanan ke driver motor L298N juga merupakan dasar mobil yang dikendalikan Bluetooth.
Mengubah pengaturan modul dengan perintah AT
Nama, PIN, dan baud rate HC-05 bisa kamu ubah dengan perintah AT. Untuk masuk mode AT, beri daya modul sambil menahan tombol kecil di atasnya (atau dengan pin EN tersambung ke 3,3 V); LED mulai berkedip pelan, sekali setiap 2 detik. Di kode jembatan, tulis bt.begin(38400), atur akhir baris di Serial Monitor ke Both NL & CR, lalu kirim perintahnya:
| Perintah | Fungsi |
|---|---|
| AT | Tes koneksi, membalas OK |
| AT+NAME=BlueGrays | Mengganti nama modul yang terlihat |
| AT+PSWD="4321" | Mengganti PIN (tanpa tanda kutip di versi lama) |
| AT+UART=9600,0,0 | Mengatur baud rate di mode data |
| AT+ROLE=0 | Menjadikannya slave (1 menjadikannya master) |
| AT+VERSION? | Menampilkan versi firmware |
| AT+ORGL | Mengembalikan pengaturan pabrik |
Bluetooth dengan ESP32 dan Raspberry Pi Pico
ESP32 klasik punya Bluetooth klasik dan BLE bawaan; dengan library BluetoothSerial kamu bisa terhubung ke ponsel tanpa HC-05. Namun ESP32-S3 dan ESP32-C3 hanya mendukung BLE. Raspberry Pi Pico W juga punya Bluetooth bawaan. Di Raspberry Pi Pico standar yang tanpa Bluetooth, kamu menghubungkan HC-05 ke pin UART; karena Pico bekerja di 3,3 V, kali ini tidak perlu pembagi tegangan. Beri daya modul dari pin VBUS (5V):
1from machine import UART, Pin
2
3bt = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1)) # GP0 → RXD, GP1 ← TXD
4led = Pin("LED", Pin.OUT) # kart üstü LED / onboard LED
5
6while True:
7 if bt.any():
8 c = bt.read(1)
9 if c == b'1':
10 led.on()
11 bt.write(b'LED ON\n')
12 elif c == b'0':
13 led.off()
14 bt.write(b'LED OFF\n')Ide proyek HC-05
- Mobil yang dikendalikan Bluetooth: robot yang dikemudikan dari ponsel dengan driver motor L298N dan dua motor DC.
- Saklar rumah pintar: nyalakan dan matikan lampu serta stopkontak dari ponsel dengan modul relay.
- Lampu pemilih warna: atur warna LED RGB dengan nilai yang dikirim dari ponsel.
- Tampilan sensor nirkabel: kirim suhu dan kelembapan yang dibaca dari DHT11 ke terminal di ponselmu.
- Lengan robot: kendalikan motor servo dengan slider di ponsel.
- Komunikasi antara dua Arduino: jadikan satu HC-05 master dan yang lain slave untuk mengirim data secara nirkabel.
Kesalahan umum dan cara mengatasinya
- Ponsel tidak bisa menemukan modul: kamu memakai iPhone, modulnya sedang terhubung ke perangkat lain, atau modul tertahan di mode AT.
- Karakter yang datang kacau: baud rate-nya tidak cocok; mode data biasanya memakai 9600 dan mode AT 38400.
- Perintah AT tidak dibalas: modul tidak dalam mode AT, baud rate-nya bukan 38400, atau Both NL & CR tidak dipilih sebagai akhir baris.
- Kode tidak mau ter-upload: modul terhubung ke pin 0 dan 1; cabut ketika upload atau pakai SoftwareSerial.
- Koneksi putus ketika motor mulai berjalan: motor mengganggu catu daya; beri daya motor dari sumber terpisah dan tambahkan kapasitor di catu daya modul.
- Modul rusak setelah beberapa waktu: mungkin pin RXD diberi 5 V tanpa pembagi; selalu pakai pembagi 1 kΩ / 2 kΩ.
HC-05 adalah cara termudah untuk membawa proyek berkabelmu ke dunia nirkabel; gabungkan dengan kontrol motor, dan kamu siap membuat robot remote pertamamu. Di aplikasi BlueGrays ada mobil yang dikendalikan Bluetooth dengan L298N dan robot penghindar rintangan, lengkap dengan skema rangkaian dan kode.
Pertanyaan umum
Apakah HC-05 bisa dipakai dengan iPhone?
Tidak. iOS tidak mengizinkan aplikasi biasa membuka koneksi serial Bluetooth klasik yang dipakai HC-05 dan HC-06. Untuk iPhone, sebaiknya pakai modul BLE seperti HM-10, atau ESP32 dengan BLE.
Berapa jangkauan HC-05?
Sekitar 10 meter di ruang terbuka. Dinding, permukaan logam, dan perangkat nirkabel lain memperpendek jarak itu. Di dalam ruangan, modul ini bekerja dengan andal di ruangan yang sama atau ruangan sebelah.
Apa perbedaan HC-05 dan HC-06?
Keduanya memakai Bluetooth klasik. HC-05 bisa menjadi master atau slave dan punya 6 pin; HC-06 hanya slave dan biasanya punya 4 pin. Keduanya cukup untuk berbicara dengan ponsel; untuk menghubungkan dua Arduino, kamu butuh minimal satu HC-05.
Berapa PIN bawaan HC-05?
Di kebanyakan modul 1234, dan di sebagian 0000. Kamu bisa menggantinya di mode AT dengan perintah AT+PSWD; kalau tidak ingin orang lain mengendalikan proyekmu, mengganti PIN bawaan adalah ide yang bagus.
Bisakah dua Arduino saling berbicara dengan HC-05?
Bisa. Jadikan satu HC-05 master dengan AT+ROLE=1 dan berikan alamat modul lainnya dengan perintah AT+BIND; modul kedua tetap menjadi slave. Ketika dinyalakan, master otomatis terhubung ke slave dan kedua Arduino berbicara lewat port serial.
Apakah pembagi tegangan di pin RXD benar-benar perlu?
Disarankan. Pin data HC-05 bekerja di 3,3 V; banyak modul bertahan dengan 5 V untuk sementara, tetapi bisa rusak seiring waktu. Pembagi sederhana dari resistor 1 kΩ dan 2 kΩ menghilangkan risiko itu. Pin TXD tidak butuh pembagi.
Proyek untuk dibuat setelah membaca ini
Lihat semua proyek
Mobil Kendali Bluetooth dengan L298N
Jadikan ponselmu remote dan kendarai mobil robotmu sendiri. Arduino menerima perintah dari aplikasi remote control di ponselmu lewat modul Bluetooth dan memutar roda dengan driver motor; mobil maju, m

Robot Penghindar Rintangan
Bagaimana kalau membuat kendaraan pintar yang mencari jalannya sendiri? Robot Penghindar Rintangan terus memindai sekelilingnya berkat sensor ultrasonik di depannya. Ketika menemui rintangan, robot be
Artikel lainnya
Aplikasi BlueGrays
Rakit rangkaian ini langkah demi langkah di ponselmu
Skema pengkabelan, kode, dan daftar komponen dalam satu layar. 200+ proyek Arduino, ESP32, dan Pico siap dibuat.
Pindai dengan ponselmu
Arahkan kamera ke kode ini dan toko aplikasi di ponselmu akan terbuka.
atau buka toko aplikasi

