아두이노 블루투스 모듈 중 가장 유명한 것은 HC-05, HC-06이다.
이번 블루투스 프로젝트를 진행하면서 많은 사람들이 놓치고 가는 것을 짚고 가려 한다.
이 글은 HC-05, HC-06 모듈이 있다는 가정하에 진행된다.
HC-05, HC-06
수중에 가지고 있는 블루투스 모듈인 HC-05이다.
HC-05, HC-06과 같은 블루투스 모듈은 사전에 프로그래밍 된 AT 명령어를 통해 쉽게 제어할 수 있어 많은 인기가 있다.
블루투스 모듈에는 이미 기능이 구현돼있으며, 우리는 AT 명령어만 사용하면 되니 굉장히 간편하다. 만약 블루투스 모듈을 구매하기 전이라면, UART to USB 도같이 구매하는 것을 추천하고 싶다.
이유는 나중에 아두이노 구조에 대해 설명할 때 작성하겠다.
선 연결
HC-05를 설정하기 위해 HC-05와 UART to USB를 연결해야 한다.
UART to USB는 HC-05, HC-06 와 컴퓨터 연결을 도와주는 역할을 한다. 만약 UART to USB를 구매하지 않았다면, 아두이노로 대체 가능하다.
UART to USB와 HC-05, HC-06의 선 연결은 그림과 같다. TX와 RX는 서로 교차하는 것이 맞다.
GND - GND
VCC(5V) - VCC(5V)
TX - RX
RX -TX
UART to USB와 HC-05, HC-06을 올바르게 연결했다면, UART to USB를 컴퓨터에 연결한다.
올바르게 연결됐으면, [장치 관리자]에서 확인할 수 있다.
Teraterm
터미널 프로그램인 teraterm은 인터넷에서 쉽게 다운로드 받을 수 있다. 아두이노 serial monitor을 사용해도 되는데 굉장히 답답하다.
1. Teraterm을 실행하면 아래와 터미널 창이 열린다. 시리얼 포트는 우리가 연결한 UART to USB를 선택한다.
2. [설정] - [시리얼 포트]를 클릭한다.
3. [시리얼 포트]를 클릭하여 HC-05, HC-06 모듈에 맞게 설정한다. 만약 처음 구매 시 사용하는 것이라면 기본적으로 아래와 같을 것이다. 만약 제대로 동작하지 않는다면 속도를 115200으로 다시 설정해 볼 것.
속도 (Baudrate) - 9600 or 115200
데이터 비트 - 8bit
패리티 비트 - none
스톱 비트 - 1bit
4. 이제 터미널을 설정해야 한다. [설정] - [터미널]을 클릭한다.
5. [줄바꿈]에서 수신(R)과 송신(M)을 CR에서 CR+LF로 변경한다. 왜 이렇게 변경해야 하는지는 나중에 포스팅하겠다. 우선 정의만 알고 넘어간다.
(CR : Carriage Return (\r) LF : Line Feed (\n). 해당 용어(CR, LF)와 이 용어들의 조합(CRLF)은 새로운 줄 (New line)으로 바꾸는 방식)
AT command 테스트
AT command를 사용하는 모듈 같은 경우, 처음 테스트를 위해 "AT"를 입력하여 "OK"를 확인다. 올바르게 UART to USB와 HC-05, HC-06 모듈이 연결됐다면, 터미널에 OK라고 출력된다. 만약 아무 값도 출력되지 않는다면, 위 과정을 천천히 다시 해본다.
그럼에도 아무 반응이 나오지 않는다면 추측건대 HC-05, HC-06의 UART 설정값을 올바르게 설정하지 않은 것이다. 나 같은 경우에도 예전에 사용했던 HC-05를 다시 사용하는 것이므로 설정값을 잊어 먹을 수 있으므로 모듈 뒤편에 설정값을 따로 적어 놓았다. 설정값을 따로 알 수 있는 방법이 없으므로, 결국 때려 맞추는 수밖에 없다.
HC-05 AT command 설정
1. 버전 확인
AT+VERSION // VERSION:3.0-20170609 OK
2. 블루투스 이름 "Test"로 변경
AT+NAME=Test // OK
3. 블루투스 이름 확인
AT+NAME? // +NAME:Test OK
4. 블루투스 연결을 위한 비밀번호 변경, 초기 비밀번호 : 1234
AT+PSWD=9999 // OK
5. 블루투스 비밀번호 확인
AT+PSWD? // +PIN:"9999"
6. UART 설정 확인
AT+ UART? // +UART:115200,0,0
Baudrate는 115200으로 올렸지만, 스탑비트나 패리티 비트는 따로 설정하지 않았다.
더 다양한 AT명령어를 확인하기 위해 아래의 HC-05, HC-06 데이터시트를 확인하면 된다. 혹시 몰라 나는 HC-05 모듈을 사용하기 때문에 위 명령어를 사용했지만, HC-06 AT 명령어는 HC-05 명령어와 살짝 다르므로 HC-06 데이터시트를 따로 참고해야 한다.
'Embeded SW > Arduino' 카테고리의 다른 글
[아두이노 초급] 아두이노 UNO와 블루투스 모듈(HC-05, HC-06) 연결... (0, 1번을 사용하면 안 되는 이유) (0) | 2022.07.22 |
---|---|
[Arduino] Arduino IDE 2.0 베타 사용 후기. (자동완성, 디버깅 등등) (0) | 2022.02.02 |
[아두이노] MQ 시리즈 공기질 센서 PPM으로 변환하기! (3) Python으로 변환( 번외 편) (0) | 2021.01.23 |
[아두이노] MQ 시리즈 공기질 센서 PPM으로 변환하기! (2) 회로도 (Schematic) (2) | 2021.01.21 |
아두이노, 안드로이드를 블루투스로 연결해서 센서값 읽어오기!(3) (5) | 2020.12.16 |