HC-06 사양, 주요 기능, AT 커맨드 사용
블루투스 모듈인 HC-06의 기본적인 사양과 주요 기능을 알아보고 AT-Command 사용하는 방법
에 대해 소개합니다.HC-06 Module
HC-06는 무선으로 시리얼 통신을 동작하게 해주는 블루투스 모듈입니다. HC-06 모듈은 아래 그림과 같이 사각형, 원형 등 다양한 종류가 있습니다. 아래의 그림에서 노란색을 표시한 초록색 보드가 HC-06이고, 여러 제조사에서 HC-06 보드와 6Pin, 4Pin 등으로 인터페이스 회로를 구성 후 HC-06 Module을 만들고 판매를 합니다. 1
여러가지 HC-06 모듈
주요 사양
- 동작전압 : 3.6~6V
- 소모전류 : 40mA
- 통신방식 : Serial (UART)
- 제어방식 : AT-Command
- 블루투스 사양 : Bluetooth V2.0 Protocol Standard
- 파워 레벨 : Class2(+6dBm) - 통신 거리 10m
- RF 대역 : 2.4GHz ~ 2.48GHz, ISM Band
- 수신감도 : -80dBm
핀 아웃
HC-06은 보통 아래의 6Pin 또는 4Pin으로 구성되어 있습니다. 일반적인 경우 VCC, GND, TXD, RXD의 4핀만 사용합니다.
- KEY(or EN) : HC-06 모드 선택핀
- High : AT Command mode
- LOW or NC : Normal mode
- RXD : 3.3V 레벨 시리얼 수신 (Default 9600bps)
- TXD : 3.3V 레벨 시리얼 송신 (Default 9600bps)
- GND : 그라운드 연결
- VCC : +3.3 ~ 6V 전원 연결
- Status : 보드 상태 출력핀으로, 보통 상태 LED와 연결되어 있음
블루투스 통신 모드 : Master, Slave
블루투스 통신에는 Master, Slave 모델을 사용합니다. 스마트폰에서 블루투스 이어폰을 연결하고 제어하는 경우 스마트폰을 Master, 블루투스 이어폰을 Slave 상태입니다. Master 장치는 7개의 Slave 블루투스 장치를 연결하여 통신 할 수 있지만, HC-06은 1:1 통신만 지원합니다.
블루투스 Master Slave Mode
SSP 프로파일
HC-06은 SPP 프로파일을 지원합니다. SPP(Serial Port Profile)은 블루투스 프로파일 중 하나로 블루투스 모듈에 연결된 장치 간 가상 시리얼 포트를 생성하여 무선으로 시리얼 통신을 할 수 있게 합니다. 즉, 두 개의 HC-06 모듈에 각각 아두이노 보드를 연결하는 경우, HC-06 모듈간 통신은 블루투스 통신으로 데이터를 주고받지만, 아두이노 보드끼리는 시리얼 통신을 하는 것처럼 사용 할 수 있습니다.
HC-06 사용 예시1
마찬가지로, 아래 그림과 같이 아두이노 보드와 HC-06을 연결하고 스마트폰(Master)에서 HC-06(Slave)으로 연결하는 경우, 아두이노 보드와 스마트폰이 블루투스로 연결되어 있지만, 사용자 입장에서는 아두이노 보드와 스마트폰이 시리얼 통신을 하는 것처럼 느껴지도록 사용 할 수 있습니다.
HC-06 사용 예시2
📌 블루투스 프로파일(Profile)
블루투스는 여러 장비에 사용되는 통신 규격으로, 장치의 종류마다 별도의 프로토콜이 존재합니다. 예를 들어 전화, 무선 오디오 입출력, 키보드 마우스 등과 같이 용도가 다른 장비는 각 용도에 적절한 통신으로 규정되어 있습니다. 이런 프로토콜의 규칙들을 프로파일이라고 부릅니다. SPP 프로파일이란 장치 간 시리얼 통신을 하게 해주는 통신 규정을 말합니다.
AT-Command
블루투스 장치명, 동작 모드, 블루투스 모듈의 시리얼 통신 속도 및 기타 설정 등 HC-06의 다양한 설정은 시리얼 통신으로 설정 할 수 있습니다. 아래는 HC-06 LinvorV1.8 기준 지원되는 AT 명령어 리스트입니다. LinverV1.8은 HC-06의 펌웨어 버전입니다. AT+Version 명령으로 보유한 HC-06 모듈의 Version을 확인 가능합니다.
HC-06 AT Command Lists
HC-06 에 대한 신뢰성이 높은 자료를 찾을 수가 없어, 제가 사용해보고 정리한 내용입니다. 추가적인 명령이 더 있을 수 있습니다.
AT 명령어 주고 받기
Arduino Uno 보드와 HC-06 Module을 연결하여 AT Command로 HC-06를 설정하는 방법을 소개합니다.
회로 구성
아래와 같이 Arduino Uno 와 HC-06 Module을 연결하여 AT Command 설정 및 테스트를 진행 할 수 있습니다. 아래와 같이 연결하면 PC에서 시리얼 터미널 프로그램을 사용하여 HC-06에 AT Command로 환경 설정을 진행 할 수 있습니다. Arduino Uno 와 PC는 기본 Serial 통신을 사용합니다. Arduino Uno 보드는 시리얼 통신이 1 포트만 지원되기 때문에, Arduino Uno 와 HC-06은 SoftwareSerial 라이브러리를 사용하여 통신합니다.
코드
아두이노 보드는 PC로부터 수신된 시리얼 데이터를 HC-06에 전달하고, HC-06으로부터 수신된 시리얼 데이터를 PC 시리얼 포트로 전달합니다. SoftwareSerial 라이브러리 사용법에 대해 궁금하신 분은 하단의 관련 포스트를 참고해주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <SoftwareSerial.h> #define HC06RX A0 //HC-06의 TX Pin - Arduino Uno의 RX #define HC06TX A1 //HC-06의 RX Pin - Arduino Uno의 TX SoftwareSerial HC06(HC06RX,HC06TX); void setup(){ Serial.begin(9600); HC06.begin(9600); } void loop(){ if(HC06.available()){ Serial.write(HC06.read()); } if(Serial.available()){ HC06.write(Serial.read()); } } | cs |
실행 결과
위 코드를 업로드 후 PC 시리얼 모니터에서 AT AT+VERSION AT+BAUD4 와 같은 AT 커맨드 명령을 보내는 경우 정상적으로 응답이 오는 것을 확인 할 수 있습니다.
HC-06 AT Command 테스트
마무리
이번 포스트에서는 HC-06 모듈의 기본적인 사양과 주요 기능에 대해 소개하고 AT 명령어를 사용하여 HC-06 모듈을 테스트하는 방법에 대해 소개하였습니다. 이후 포스트는 스마트폰을 사용하여 Arduino Uno와 통신하는 방법에 대해 소개할 예정입니다.
- HC-06 Datasheet : https://www.olimex.com/Products/Components/RF/BLUETOOTH-SERIAL-HC-06/resources/hc06.pdf [본문으로]
'Embedded > Arduino' 카테고리의 다른 글
아두이노 코딩 : 스마트폰 블루투스로 HC-06 연결하여 아두이노 LED 제어 (0) | 2020.10.16 |
---|---|
아두이노 강좌 #44 HC-06으로 스마트폰과 아두이노 연동하기 (0) | 2020.10.15 |
아두이노 코딩 : RTC를 사용하여 SD 카드에 로그 기록하기 (DS1302, SD-Card) (2) | 2020.10.06 |
아두이노 강좌 #42 SD Card 카드 인식, 파일 쓰기, 파일 읽기 (1) | 2020.09.27 |
아두이노 강좌 #41 SD-Card 주의 사항 및 Cardinfo 예제 사용 방법 (0) | 2020.09.26 |