반응형

아두이노 블루투스 모듈 중 가장 유명한 것은 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 데이터시트를 따로 참고해야 한다.

HC-06 Datasheet.pdf
0.74MB
HC-05 Datasheet (4).pdf
0.82MB

728x90
반응형
반응형

해당 글은 아래 posting으로 이전함

https://m.blog.naver.com/younjung1996/223364514538

 

[BLE 실내 측위 프로젝트] Indoor Positioning System 포스팅 리스트

BLE 실내 측위 프로젝트 1. Flutter_blue 설정 (feat.안드로이드12 권한 이슈) : https://m.blog.naver...

blog.naver.com

BLE 실내 측위 프로젝트

1. Flutter_blue 설정 (feat.안드로이드12 권한 이슈) : https://m.blog.naver.com/younjung1996/223334840714

2. Bluetooth Low Energy(BLE) 통신 스케줄, 안드로이드 함께 이해하기 : https://m.blog.naver.com/younjung1996/223357207874

3. Flutter BLE Scan Demo Program, RSSI monitoring : https://m.blog.naver.com/younjung1996/223357242785

4. BLE advertising packet 기본 구성 : https://m.blog.naver.com/younjung1996/223363785615

5. BLE Beacon의 RSSI 값에서 거리를 계산하는 방법 (feat.log distance path loss model) : https://m.blog.naver.com/younjung1996/223363790198

6. RSSI 변동을 해결하기 위한 이동 평균 필터 : https://m.blog.naver.com/younjung1996/223363794361

7. NRF51822 비콘 테스트 및 초기 설정 : https://m.blog.naver.com/younjung1996/223363798262

8. Flutter 좌표 그리기 (데카르트 좌표계) : https://m.blog.naver.com/younjung1996/223363801930

9. Flutter 좌표에 실시간으로 원 그리기 : https://m.blog.naver.com/younjung1996/223363804574

10. 삼변측량 정리 및 구현 : https://m.blog.naver.com/younjung1996/223363808851

11. Flutter BLE indoor position(실내 위치 추적) system demo, 실내 네비게이션 : https://m.blog.naver.com/younjung1996/223364500752

 

관련 이슈 & 디버깅

1. [Debug] Dart matrix2d Transpose debuging, "'double' is not a subtype of type 'int'" : https://m.blog.naver.com/younjung1996/223367275545

728x90
반응형

+ Recent posts