
HM-10 데이터시트
주요 사항부터 AT커맨드까지
1부 [HM-10] Bluetooth란? || 블루투스부터 시작하는 BLE
2부 [HM-10] 클래식 블루투스의 통신 원리 || 어떻게 통신이 이루어질까
3부 [HM-10] BLE란? || 저전력 블루투스의 등장
4부 [HM-10] BLE의 동작 원리 || BLE는 어떻게 연결되는가
5부 [HM-10] HM-10 데이터시트 || 주요 사항부터 AT커맨드까지
HM-10 모듈이란
HM-10은 BLE(Bluetooth Low Energy) 4.0을 지원하는 블루투스 모듈입니다.
기존 HC-05 같은 블루투스 모듈이 Classic Bluetooth 기반이었다면, HM-10은 Bluetooth 4.0 BLE 기반으로 동작합니다.
HM-10의 가장 큰 특징은 UART 통신을 BLE 통신처럼 사용할 수 있다는 점입니다.
즉 아두이노 입장에서는 Serial.print("HELLO"); 처럼 일반 UART 데이터를 보내면,
HM-10 내부에서 UART 데이터 → BLE 패킷 변환 → 무선 송신 과정을 자동으로 처리해줍니다.
HM-10의 주요 사양

- Bluetooth 버전 : Bluetooth Specification V4.0 BLE
- 동작 주파수 : 2.4GHz ISM 대역
- 변조 방식 : GFSK(Gaussian Frequency Shift Keying)
- RF 출력 : -23dBm, -6dBm, 0dBm, 6dBm
- 통신 속도
- 비동기(Asynchronous) : 2~6KB/s
- 동기(Synchronous) : 2~6KB/s
- 보안 기능 : 인증(Authentication) 및 암호화(Encryption) 지원
- Service UUID : 0xFFE0 (AT+UUID 명령어를 통해 변경 가능)
- Characteristic UUID : 0xFFE1 (AT+UUID 명령어를 통해 변경 가능)
- Characteristic 기능 : Notify 및 Write 지원 (AT+UUID 명령어를 통해 변경 가능)
- 동작 전압 : +2.5V ~ 3.3V DC / 50mA
- 소비 전력
- Active 상태 : 8.5mA
- Sleep 상태 : 50 ~ 200uA
- 동작 온도 : -20°C ~ +95°C
- 크기 : 27mm × 13mm × 2.2mm
핀 구성과 역할

|
핀 번호
|
핀 이름
|
기능
|
설명
|
|
1
|
UART_TX
|
UART 송신
|
HM-10 → 외부 MCU로 데이터 송신
|
|
2
|
UART_RX
|
UART 수신
|
외부 MCU → HM-10 데이터 입력
|
|
3
|
UART_CTS
|
UART 흐름 제어
|
상대 장치의 송신 제어
|
|
4
|
UART_RTS
|
UART 흐름 제어
|
자신의 수신 가능 상태 알림
|
|
5
|
NC
|
미사용
|
내부 연결 없음
|
|
6
|
NC
|
미사용
|
내부 연결 없음
|
|
7
|
NC
|
미사용
|
내부 연결 없음
|
|
8
|
NC
|
미사용
|
내부 연결 없음
|
|
9
|
NC
|
미사용
|
내부 연결 없음
|
|
10
|
NC
|
미사용
|
내부 연결 없음
|
|
11
|
RESETB
|
리셋 입력
|
LOW 상태 100ms 이상 유지 시 리셋
|
|
12
|
VCC
|
전원 입력
|
2.5V ~ 3.3V 입력
|
|
13
|
GND
|
접지
|
시스템 공통 GND
|
|
14
|
GND
|
접지
|
HM-10S 전용 GND
|
|
15
|
USB_D-
|
USB 인터페이스
|
USB 데이터(-)
|
|
16
|
NC
|
미사용
|
내부 연결 없음
|
|
17
|
NC
|
미사용
|
내부 연결 없음
|
|
18
|
NC
|
미사용
|
내부 연결 없음
|
|
19
|
NC
|
미사용
|
내부 연결 없음
|
|
20
|
USB_D+
|
USB 인터페이스
|
USB 데이터(+)
|
|
21
|
GND
|
접지
|
추가 GND
|
|
22
|
GND
|
접지
|
추가 GND
|
|
23
|
PIO0
|
System Key
|
설정/제어용 핀
|
|
24
|
PIO1
|
System LED
|
상태 LED 출력 핀
|
|
25
|
PIO2
|
GPIO / PWM
|
일반 입출력 및 PWM 출력
|
|
26
|
PIO3
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
27
|
PIO4
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
28
|
PIO5
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
29
|
PIO6
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
30
|
PIO7
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
31
|
PIO8
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
32
|
PIO9
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
33
|
PIO10
|
GPIO / ADC
|
일반 입출력 및 ADC 입력
|
|
34
|
PIO11
|
GPIO / ADC / 센서
|
ADC, DS18B20, DHT11 지원
|
일반적인 아두이노 BLE 실습에서는 HM-10의 모든 핀을 사용하는 경우는 많지 않습니다.
대부분은 UART 통신에 필요한 VCC, GND, TXD, RXD 4개의 핀만 연결하여 BLE 통신을 구현합니다.
또한 필요에 따라 설정 및 특수 기능 제어를 위한 EN/KEY 핀(23번)이나, 현재 BLE 연결 상태를 확인하기 위한 STATE 핀(24번) 이 추가로 사용되기도 합니다.
즉 HM-10은 최소한의 배선만으로도 비교적 간단하게 BLE 무선 통신을 구현할 수 있는 모듈이라고 볼 수 있습니다.
모듈의 회로도


*해당 사진은 위 모듈의 회로도로 모듈마다 다를 수 있습니다.
해당 모듈은 CC2541 BLE IC가 사용되었습니다.
외부 MCU의 RX는 HM-10의 UART_TX(1번핀)에 연결되고,
MCU의 TX는 HM-10의 UART_RX(2번핀)에 연결되어 UART 통신이 가능하도록 구성되어 있습니다.
또한 UART_CTS(3번), UART_RTS(4번) 핀도 함께 연결되어 있지만, 일반적인 아두이노 BLE 실습에서는 흐름 제어를 사용하지 않는 경우가 많아 TX/RX만 사용하는 경우가 대부분입니다.
전원은 3.3V를 사용하며, HM-10의 VCC(12번 핀)에 공급됩니다.
BLE 모듈은 3.3V 기반으로 동작하기 때문에, 순수 HM-10 모듈을 사용할 경우 5V를 직접 입력하지 않도록 주의해야 합니다.
LED와 직렬 저항(R1)이 연결되어 있으며, HM-10의 현재 상태를 시각적으로 확인할 수 있습니다.
예를 들어
- 빠른 점멸 → Advertising 상태
- 느린 점멸 또는 점등 → Connected 상태
처럼 BLE 연결 상태를 표시하는 데 활용됩니다.
주요 AT 명령어
AT Command는 블루투스 모듈의 설정을 변경하기 위해 사용하는 텍스트 기반 제어 명령어입니다.
사용자가 UART 시리얼 통신으로 특정 문자열을 보내면, 모듈이 이를 해석하여 설정을 변경하거나 상태를 응답하는 방식입니다.
예를 들어 HM-10에서는 BLE 이름 변경, UART 속도 변경, Central / Peripheral 역할 변경, 연결 상태 확인 같은 기능들을 모두 AT 명령어를 통해 제어할 수 있습니다.

가장 기본적인 명령어인 AT 입니다.
이 명령어는 HM-10 모듈이 정상적으로 동작하고 있는지 확인하기 위한 테스트 용도로 사용됩니다.
OK 는 HM-10이 정상적으로 명령을 수신하고 동작 중이라는 의미이며,
OK+LOST 는 현재 BLE 연결이 끊어진 상태이거나 연결 대상이 없는 상태를 의미합니다.

AT+NAME 명령어는 HM-10의 BLE 장치 이름을 확인하거나 변경할 때 사용하는 명령어입니다.
검색했을 때 표시되는 이름이 바로 이 값입니다.
이름은 최대 12글자까지 설정 가능하며, 기본(Default) 이름은 HMSoft 입니다.
AT+NAME 명령을 전송하면 OK+NAME:설정된이름 과 같은 응답을 반환하고,
AT+NAMEbleName 명령을 전송하면 OK+SET:bleName 와 같은 응답을 반환합니다..

AT+BAUD 명령어는 HM-10의 UART Baudrate를 확인하거나 변경할 때 사용하는 명령어입니다.
파라미터 값에 따라 Baudrate를 설정할 수 있으며 디폴트 값은 0(9600) 입니다.
AT+BAUD? 명령을 전송하면 OK+Get:0 과 같은 응답을 반환하며, 이는 현재 Baud Rate가 0번 값, 즉 9600bps 로 설정되어 있다는 의미입니다.
반대로 Baud Rate를 변경하고 싶다면 AT+BAUD4 처럼 원하는 번호 값을 함께 입력하면 됩니다.
설정이 정상적으로 완료되면 OK+Set:4 와 같은 응답을 반환합니다.

AT+PASS 명령어는 HM-10의 PIN Code를 확인하거나 변경할 때 사용하는 명령어입니다.
이 명령어를 통해 BLE 연결 시 사용할 비밀번호를 설정할 수 있으며, 기본값은 000000입니다.
AT+PASS? 명령을 전송하면 OK+Get:[P1] 형식의 응답을 반환하여 현재 PIN Code를 확인할 수 있습니다.
반대로 PIN Code를 변경하고 싶다면 AT+PASS[P1]처럼 원하는 숫자 값을 함께 입력하면 됩니다.
설정이 정상적으로 완료되면 OK+Set:[P1] 형식의 응답을 반환합니다.

AT+RESET 명령어는 HM-10 모듈을 재시작할 때 사용하는 명령어입니다.
AT+RESET 명령을 전송하면 OK+RESET 형식의 응답을 반환합니다.
이는 모듈이 정상적으로 리셋되었음을 의미합니다.

AT+RENEW 명령어는 HM-10 모듈의 설정을 공장 초기값으로 되돌릴 때 사용하는 명령어입니다.
이 명령어로 이름, PIN Code, Baudrate 등 사용자가 변경한 설정을 초기 상태로 복원할 수 있습니다.
AT+RENEW 명령을 전송하면 OK+RENEW 형식의 응답을 반환합니다.
이는 초기화가 정상적으로 완료되었음을 의미합니다.
마무리
클래식 블루투스부터 BLE 까지 모든 것을 알아보았고,
이번에는 HM-10 모듈의 기본 구조와 주요 AT 명령어까지 살펴보았습니다.
이 정도만 이해해도 모듈 설정과 기본 통신에는 큰 어려움이 없습니다.
다음에는 실제 회로 연결과 동작 확인 과정을 통해 HM-10을 더 구체적으로 살펴보겠습니다.
그리고 실무에서는 어떻게 사용이 되었나까지 알아보도록 하겠습니다.

TEL (062-226-1777, 010-9891-7244), E-mail (ipmes@ipmes.co.kr)
임베디드 시스템 | PCB 설계 제작 | 펌웨어 개발 | 신호처리 | 응용프로그램
#IPMES, #아이피엠이에스, #연구노트, #임베디드, #PCB제작, #펌웨어개발,
#하드웨어개발, #소프트웨어개발, #회로설계,
#광주PCB, #광주시제품, #광주시제품개발, #광주OEM, #광주광역시PCB,
#광주임베디드, #광주음성처리, #광주신호처리, #광주광역시임베디드,
#광주회로설계, #광주아트웍, #PCB샘플링
#블루투스. #Bluetooth, #BLE, #저전력블루투스
#HM-10, #HM-10데이터시트, #블루투스모듈
'연구노트 > 통신 설계' 카테고리의 다른 글
| [HM-10] BLE 통신 실험 || Advertising 동작을 확인해보자 (0) | 2026.07.17 |
|---|---|
| [HM-10] BLE의 동작 원리 || BLE는 어떻게 연결되는가 (0) | 2026.07.10 |
| [HM-10] BLE란? || 저전력 블루투스의 등장 (0) | 2026.07.06 |
| [HM-10] 클래식 블루투스의 통신 원리 || 어떻게 통신이 이루어질까 (0) | 2026.07.03 |
| [HM-10] Bluetooth란? || 블루투스부터 시작하는 BLE (0) | 2026.06.29 |