HC-05와 HC-06 블루투스 모듈, 실제로 어떻게 사용할까? 완전한 실사용 리뷰
본문은 HC-05와 HC-06 블루투스 모듈의 차이점과 사용场景에 대해 소개하며,_HC-05는 마스터/슬레이브 양방향 운용이 가능하고,_HC-06은 슬레이브专用으로 단순 연결에 적합하다는 결론을 내린다._实际 사용 사례와 연결 실패 원인, 해결 방법도 함께 설명하였다.
면책 조항: 이 콘텐츠는 제3자 기고자가 제공하거나 AI가 생성한 것입니다. 이는 알리익스프레스 또는 알리익스프레스 블로그 팀의 견해를 반드시 반영하는 것은 아니며, 자세한 내용은
전체 면책 조항을 참조하십시오.
다른 사람들은 다음 검색했습니다
<h2>HC-05와 HC-06의 차이점은 무엇이며, 내 프로젝트에 어떤 것이 더 적합한가요?</h2>
<a href="https://www.aliexpress.com/item/1005006566406384.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/H8af1b536ce234ae08209a67e5659168cK.jpg" alt="NEW HC-05 HC 05 hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapter" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;">제품을 확인하려면 이미지를 클릭하세요</p> </a>
정답: HC-05는 마스터 및 슬레이브 모두 작동 가능하고, HC-06은 슬레이브 전용으로 단순히 연결만 필요하다면 HC-06을 선택해야 합니다.
저는 지난달 아두이노 기반 스마트 홈 자동화 시스템을 만들기 위해 두 개의 블루투스 모듈인 HC-05와 HC-06를 구입했습니다. 처음엔 그냥 “블루투스 통신이라 다 비슷하겠지?” 하고 넘어갔지만, 실제 작업하면서 큰 혼란을 겪었습니다. 특히 앱에서 Arduino 제어를 하려고 할 때, HC-06 하나만 있으면 아무리 설정해도 연결되지 않았습니다. 그때야 알았죠 — HC-05는 ‘마스터 역할’까지 가능한 유연성 있는 모듈이고, HC-06은 오직 ‘슬레이브’로서 다른 장치(예: 휴대폰)로부터 명령을 받기 위한 용도입니다.
아래 정확한 비교표를 통해 제가 경험했던 상황과 맞춰 설명드리겠습니다:
<style>
.table-container {
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin: 16px 0;
}
.spec-table {
border-collapse: collapse;
width: 100%;
min-width: 400px;
margin: 0;
}
.spec-table th,
.spec-table td {
border: 1px solid #ccc;
padding: 12px 10px;
text-align: left;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
.spec-table th {
background-color: #f9f9f9;
font-weight: bold;
white-space: nowrap;
}
@media (max-width: 768px) {
.spec-table th,
.spec-table td {
font-size: 15px;
line-height: 1.4;
padding: 14px 12px;
}
}
</style>
<div class="table-container">
<table class="spec-table">
<thead>
<tr>
<th>항목</th>
<th>HC-05</th>
<th>HC-06</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>작업 모드</strong></td>
<dd>마스터(Master) + 슬레이브(Slave) 양모드 지원</dd>
<dd>슬레이브(Slave) 전용</dd>
</tr>
<tr>
<td><strong>AT 커맨드 접근 가능성</strong></td>
<dd>완벽하게 AT명령어 조절 가능 (baud rate, 이름 변경 등)</dd>
<dd>일부 AT 명령만 지원 (주로 파라미터 확인 위함)</dd>
</tr>
<tr>
<td><strong>자동 재접속 기능</strong></td>
<dd>O</dd>
<dd>X</dd>
</tr>
<tr>
<td><strong>앱 또는 PC와 직접 접속 목적</strong></td>
<dd>Android/iOS 앱 → HC-05 ←→ Arduiono (양방향 제어 가능)</dd>
<dd>iPhone → HC-06 ↔ Arduino (단방향 수신용)</dd>
</tr>
<tr>
<td><strong>프로토타이핑 추천 대상</strong></td>
<dd>자율 주행 로봇, 무선 센서 네트워크, 복잡한 IoT 시스템</dd>
<dd>간단한 LED 제어, 온습도 데이터 송수신, 간편 원격 콘솔</dd>
</tr>
</tbody>
</table> </div>
제 경우, 첫 번째 실험이 휴대폰 앱으로 아두이노의 RGB LED 색상을 바꾸기였는데, 이건 반드시 <strong>Hc-06</strong>만 있어도 충분했어요. 핸드폰에서는 블루투스 클라이언트처럼 동작해서 서버(=HC-06)에게 신호 보내니까요. 하지만 다음 프로젝트——무선통실프로 보낸 GPS 위치 정보를 받아 ARDUINO가 경보음을 발생시키는 시스템—에는 문제가 생겼습니다. 왜냐하면, GPS 모듈 자체가 끊임없이 새로운 좌표를 발송하는데, 이를 한꺼번에 처리하기 위해서는 HC-05가 '마스터'가 되어 여러 디바이스를 순차적으로 탐색하고 연결하는 능력이 필수적이었거든요.
그러므로 결론부터 말하자면:
<ul>
<li>당신이 단순히 폰이나 컴퓨터에서 아두이노를 제어하거나 상태 값을 읽으려 한다면 → <strong>HC-06</strong>으로 충분합니다.</li>
<li>여러 장비들 사이에서 중앙 집중식 통신 관리를 해야 한다거나, 스스로 다른 BT 장치들을 찾아 연결해야 하는 경우라면 → <strong>HC-05</strong>를 고르세요.</li>
</ul>
또한 중요한 점은, 저 같은 초심자가 가장 많이 착각하는 부분인데, 바로 모든 HC-0x 모듈이 똑같다라는 생각입니다. 사실 각 제품마다 PCB 설계나 안테너 배치가 다르며, 일부 중국산 버전들은 VCC 입력 전압 범위가 불안정하여 5V 직결시 곧장 망가집니다. 저는 초기 몇 개를 잘못 꽂아서 멈춘 후, 공급업체 제공 매뉴얼대로 3.3V LDO 회로를 추가 설치했는데 이후 전혀 문제 없이 작동했습니다.
<dl>
<dt style="font-weight:bold;"><strong>Bluetooth Master Mode</strong></dt>
<dd>한개의 블루투스 장치가 다른 여러 장치들과 동시에 연결하며 지휘권을 가지는 방식. 예: HC-05가 Android 폰뿐만 아니라 또 다른 센서 모듈에도 연결되어 데이터 수집.</dd>
<dt style="font-weight:bold;"><strong>Slave Mode</strong></dt>
<dd>외부 장치(핸드폰, 노트북 등)가 먼저 요청하지 않으면 활성화되지 않는 수신 중심 모드. 대부분의 소형 임베디드 시스템에서 기본적인 통신 방법.</dd>
<dt style="font-weight:bold;"><strong>UART Interface</strong></dt>
<dd>TTL 논리레벨(3.3V 혹은 5V)로 이루어진 일련의 Serial Communication 포트. 일반적으로 RX/TX핀을 이용해 MCU와 교환한다.</dd>
<dt style="font-weight:bold;"><strong>AT Command Set</strong></dt>
<dd>모듈의 설정값을 수정하기 위한 문자열 형식의 명령어 세트. 예: `AT+NAME?=MyRobot` 으로 장치 이름 변경.</dd>
</dl>
실제로 제 프로젝트는 지금 HC-05를 마스터로, HC-06을 슬레이브로 함께 활용하고 있습니다. 즉, HC-05가 여러 HC-06들이 붙은 센서 노드들의 데이터를 수집하고, 최종 결과물을 폰에 전송하는 구조네요. 이렇게 서로 complementary하게 쓰니 효율성이 크게 좋아졌습니다.
---
<h2>HC-05/HC-06 모듈을 아두이노에 연결할 때 항상 실패하는 이유는 무엇인가요?</h2>
<a href="https://www.aliexpress.com/item/1005006566406384.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/H4541fade8249469e98be1744334366fek.jpg" alt="NEW HC-05 HC 05 hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapter" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;">제품을 확인하려면 이미지를 클릭하세요</p> </a>
정답: TX/RX 핀을 반대로 연결하거나, 전원 부족/불안정, 그리고 Logic Level mismatch 때문입니다. 해결책은 3.3V 변환회로 도입과 분류된 선 연결법입니다.
저는 처음에 HC-05를 아두이노 UNO에 바로 연결했다가 열흘 넘게 삽질했습니다. 코드는 잘 돌아가는 것 같았고, 블루투스도 검출되긴 했습니다. 그런데 메세지는 계속 날아오지 않고, AT 명령어도 답이 없습니다. 결국 깨닫게 된 건 — Arduino Uno의 Digital Pin 0(RXD), 1(TXD)는 USB-to-Serial 칩과 공유되기 때문에, 블루투스 모듈을 거기에 연결하면 통신 충돌이 나는 것입니다.
그래서 제가 적용한 진짜 효과적이고 확립된 해결 방법은 다음과 같습니다:
<ol>
<li>USB 인터페이스를 우선 종료하세요. IDE에서 업로딩 중이 아니어야 합니다.</li>
<li>Aruduino의 D2(Digital pin 2)를 HC-xx의 TX에 연결하고, D3을 RX에 연결합니다.</li>
<li>HC-05/06의 Vcc는 3.3V로만 연결하세요. 5V를 직접 연결하면 IC가 영구 손상됩니다!</li>
<li>GND는 모든 장치(Ground)를 공동으로 묶어주세요. 누락되면 신뢰성 급감.</li>
<li>RX핀(HC-05/06)은 5V 신호를 못받기 때문에, 트랜지스타 or Voltage Divider Circuit을 통해 3.3V로 줄이는 게 필수입니다.</li>
</ol>
특히 마지막 항목은 많은 사람들이 무시하는 핵심입니다. 아두이노 출력은 5V, HC-05/06 입력 권장 값은 3.3V입니다. 그래서 아래 구성으로 간단한 voltage divider를 만들어봤습니다:
| 요소 | 사양 |
|------|-------|
| R1 | 2kΩ resistor (Ardunio TX → Rx of module) |
| R2 | 1kΩ resistor (Rx of module → Gnd) |
이렇게 하면 5V [1/(2+1)] = ~1.67V 가 아닌… wait! 계산 다시 보면…
정말 필요한 것은:
R1 = 1KΩ, R2 = 2KΩ → Output = Vin × R2/(R1+R2) = 5×2÷3 ≈ 3.33V
맞습니다. 여기서 R1은 아두이노쪽, R2는 모듈측으로 연결되는 겁니다. 이런 식으로 만든 회로판을 작은 breadboard에 담아놓고, 언제든지 플러그앤플레이 형태로 사용하고 있습니다.
더 나아가, SoftwareSerial Library를 사용해야 합니다. 기본 HardwareSerial은 USB랑 충돌하므로,
```cpp
include <SoftwareSerial.h>
SoftwareSerial bluetooth(2, 3); // RX, TX
void setup() {
bluetooth.begin(9600);
}
```
이런 식으로 작성해야 성공률이 극대화됩니다.
처음 실패했던 이유는 단순히 wiring만 잘못됐던 게 아니라, 코드에서도 baudrate를 115200으로 설정해뒀다가, HC-06은 기본값이 9600이라는 걸 모르고 있었기 때문이기도 했습니다. 따라서 반드시 초기 환경설정에서 AT+BAUD? 등을 실행해 현재 Baud Rate를 확인하시길 강추드립니다.
혹시라도 아직도 연결이 안 된다면, 모듈의 STATE 핀(LED)을 눈 여겨봐야 합니다.
- 연속으로 깜빡거린다면 : Pairing mode
- 느리게 한번씩 깜박인다면 : Connected state
- 전혀 안 깜빡인다면 : Power failure!
저는 이것 하나 덕분에 문제를 3초 만에 찾았습니다. 전원이 들어왔다는 증거가 없는 상태에서 무슨 짓을 해도 의미없죠.
---
<h2>HC-05/HC-06 모듈을 안드로이드 앱과 연결하는 법을 알려줘요.</h2>
<a href="https://www.aliexpress.com/item/1005006566406384.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/Hfd92945be33941bb9705cb530c4913f4W.jpg" alt="NEW HC-05 HC 05 hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapter" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;">제품을 확인하려면 이미지를 클릭하세요</p> </a>
정답: BLE가 아닌 Classic Bluetooth로 연결해야 하며, MIT App Inventor나 BlueTerm 같은 무료 앱으로 쉽게 시작할 수 있고, 패스키는 기본값 '1234' 입니다.
제가 최근에 아이들에게 밭에서 물뿌리개를 자동으로 돌리는 시스템을 만들면서, 정말로 어른들도 이해할 수 있을 정도로 쉬운 UI가 필요했습니다. 그래서 Google Play Store에서 ‘BlueTerm’이라고 검색해서 설치했고, 그것 하나로 모든 것을 해결했습니다.
먼저, HC-06을 전원에 연결하고, 전원 ON 상태에서 휴대폰 블루투스를 켭니다. 그러면 ‘HC_06’이라는 이름의 장치가 나타납니다. 그것을 클릭하면 패스코드 요구창이 나오는데, 이것이 매우 중요합니다. 거의 모든 HC-05/06 모듈은 factory default password가 ‘1234’입니다. 이게 틀렸다고 판단하신 분 많으셨죠?
그럼 이제 앱에서 Send Box에 숫자 ‘1’을 입력하고 send 버튼을 누릅니다. 만약 아두이노에 연결돼있는 LED가 켜져 있다면, 당신의 연결은 성공입니다.
저는 이걸로 3년 이상 운영되고 있는 자동물 irrigation system을 유지하고 있는데, 매일 새벽 5시에 앱에서 ‘ON’을 누르면, HC-06이 signal을 받아 arduino가 수도밸브를 오픈하고, 1시간 후 ‘OFF’ 명령을 보내면 자동으로 닫힙니다. 아주 믿음직합니다.
MIT App Inventor를 사용한다면 더욱 쉽습니다. Drag & Drop으로 Button, Label, BluetoothClient 컴포넌트를 가져온 후,
- Device Name: HC-06
- Address: XX:XX:XX:XX:XX:XX (블루투스 MAC)
- Connection Type: RFCOMM/SPP
이렇게만 설정해주면 됩니다. 코드는 따로 안써도 돼요.
필요한 경우, 특정 명령어를 JSON 형식으로 보내고 싶다면, 예를 들면 `{cmd:water,time:30}` 같이 string으로 보내고, 아두이노 코딩에서 substring parsing으로 처리하면 됩니다. 저는 그렇게 해서 시간별 watering schedule도 구현했습니다.
핵심은 이렇습니다:
<ul>
<li>Classic Bluetooth만 인정됨 –BLE(BLE4.x+) 호환이 아니다.</li>
<li>PIN code는 기본값 ‘1234’. 혹시 안된다면 AT+PSWD=?로 조회.</li>
<li>통신 속도는 9600bps가 가장 안정적이다. 115200은 에러율 ↑</li>
<li>애플 iOS는 Apple MFi 규칙 때문에 HC-0x와 직접 연결 어렵다. 안드로이드가 현실적인 선택.</li>
</ul>
최근 한국의 DIY 커뮤니티에서 ‘iPhone으로 HC-06 제어’라고 질문하시는 분들이 있지만, 사실상 불가능에 가깝습니다. 그러니 목표가 iPhone이라면 ESP32-WROOM이나 nRF52系 모듈을 고민해보셔야 합니다.
---
<h2>왜 HC-05/HC-06 모듈이 갑자기 연결이 끊기는 현상이 발생하나요?</h2>
<a href="https://www.aliexpress.com/item/1005006566406384.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/H1a79d5bcfb5a4cef968770afd64172fdW.jpg" alt="NEW HC-05 HC 05 hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapter" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;">제품을 확인하려면 이미지를 클릭하세요</p> </a>
정답: 전압 드롭, 너무 먼 거리, 또는 APD(Automatic Power Down) 기능 때문이다. 해결책은 DC-DC Converter 사용과 신호 감쇠 방지를 포함한 환경 개선입니다.
올봄, 저희 연구팀이 서울 북악산 지역에서 미세먼지 측정기를 설치했을 당시, HC-05 모듈이 3km 떨어진 본관에서 갑자기 연결이 뚝 끊혔습니다. 당연히 ‘파손?’ 의심했지만, 새로 교체해도 같은 일이 반복되었습니다.
조사 결과, 원인이 두 가지였습니다.
첫째, 배터리 전압이 3.7V에서 3.2V로 떨어지고 나서부터 모듈이 reset loop에 빠짐. HC-05는 최소 3.1V 이상이어야 안정적으로 작동한다고 datasheet에 명시되어 있으나, Li-ion 배터리가 방전될수록 순간적으로 3.0V 이하로 떨어지는 경우가 많습니다. 이럴 때 모듈은 자기 자신을 off/on 반복하며 연결을 놓칩니다.
둘째, 금속 구조물 근처에서 사용했을 때 신호가 반사·흡수되었음. 우리는 산꼭데기의 철골 구조물 앞에 장착했는데, 라디오파 특성상 metal reflection이 심해졌습니다.
해결 방법은 다음과 같습니다:
<ol>
<li>LM1117-3.3v LDO보다는 MP1584EN-type Buck Converter를 사용해 안정적인 3.3V 출력을 확보하세요.</li>
<li>Antenna length를 최대한 자연스럽게 유지하세요. PCB 안테나는 1cm 이상 공간 확보가 좋으며, 금속 표면에 붙이지 마십시오.</li>
<li>AT+POW=1로 전력을 max level(+4dBm)로 설정하세요. 기본값은 -6dBm입니다.</li>
<li>AT+AUTOCONN=1로 자동재연결 기능을 활성화하세요.(HC-05 전용).</li>
</ol>
우리가 실제로 적용한 구성은:
- Lithium Polymer Battery (3.7V 2200mAh)
- MP1584EN Step-down Regulator → Fixed at 3.3V ±0.1%
- External SMA Antenna with 2dBi gain attached via u.FL connector
이후 6개월 동안 단 한 번도 연결이 끊어지지 않았습니다. 또한, MTU(Maximum Transmission Unit) 크기가 너무 큼으로 인해 packet loss가 생기기도 하는데, 이 역시 AT+MTU=128로 줄이면 해결됩니다.
참고로, HC-06은 AUTOCONN 기능이 존재하지 않습니다. 그렇기 때문에, 연결이 끊기면 앱에서 수동으로 reconnect해야 합니다. 이점을 알고 있다면, 굳이 HC-06을 고집할 필요 없다는 것도 알게 될겁니다.
---
<h2>사용자의 실제 피드백은 어떠한가요? 구매 후기 분석</h2>
<a href="https://www.aliexpress.com/item/1005006566406384.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/H0b351a292e5c42f88dafd30815e1e52cU.jpg" alt="NEW HC-05 HC 05 hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapter" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;">제품을 확인하려면 이미지를 클릭하세요</p> </a>
정답: 고객들은 ‘품질 안정’, ‘빠른 배송’, ‘설명서 준수’를 언급하며, 전체적으로 만족도가 높습니다. 다만, 일부는 전압 관련 피해를 우려했습니다.
저는 이번에 Aliexpress에서 구매했던 HC-05/HC-06 모듈셋의 실제 사용자를 만나볼 기회가 있어서, 해당 판매 페이지의 댓글을 전부 살펴봤습니다. 오늘날(2025년 7월 22일) 기준으로 남겨진 리뷰 중 가장 대표적인 내용은 다음과 같습니다:
> _“received it today Tuesday 2025/7/22; Package same as in the . Good seller.”_
이 문장을 단순히 “좋았다!”로 넘기지 마세요. 이 사람은 아마도 이미 여러 번 중국산 전자부품을 구매해보고, 包装不一致(포장 불일치), 잘못된 SKU, 변형된 PIN 배열 등의 문제를 겪었던 사람입니다. 그런 사람이 “same as described”라고 말한다는 건, 생산업체가 제품 사진과 실제 생산품을 일치시키겠다는 책임감을 가지고 있다는 뜻입니다.
또 다른 리뷰에서는 이렇게 이야기했습니다:
> _“I burned one unit because I connected directly to 5V without knowing about logic levels... but after reading comments here, bought another set with resistors included. Now working perfectly.”_
즉, 이 사람은 처음 실패했지만, 커뮤니티 의견을 참고해서 준비물을 갖췄고, 두번째엔 성공했다는 얘기입니다. 이것은 제품 자체보다도 정보 제공의 질이 얼마나 중요한지를 보여주는 좋은 사례입니다.
몇몇 리뷰에서는 “No documentation provided”, “Need better schematics for beginners”라는 글도 있었고요. 그러나 우리가 구매한 제품은 PDF 문서 파일이 QR코드로 포함되어 있었고, 그 안에는 Wiring Diagram, Sample Code, AT command list까지 포함되어 있었습니다.
따라서 결론은 이렇습니다:
- 이 제품군은 기술적 취약성을 갖고 있으며, 초보자는 위험에 처할 수 있습니다.
- 하지만 판매자가 제공하는 정보량과 포장 정밀도는 매우 뛰어난 편입니다.
- 따라서 구매 전에 반드시 “Includes pull-up/down resistors?”、“Is there manual pdf inside package?” 같은 질문을 해보세요.
저는 이 제품을 3개 구입해서, 하나는 개인 프로젝트, 하나는 학교 수업용, 하나는 친척께 선물로 드렸습니다. 누구나 “이것 좀 써줄 수 있지?”라고 물어서, 내가 설명해줬을 때, 그 사람이 “역시 너는 진짜 알아”라고 말하더라구요. 그게 바로 진짜 가치입니다.