아두이노 블루투스 2.0 HC-06 사용하기

2 minute read

안녕하세요! 이번 포스트에서는 새로운 프로젝트에 이용할 블루투스 제품인 HC-06을 간단히 다뤄볼까 합니다. 자동차 관련 프로젝트를 진행하다 보니 속도, pwm 값 등 자동차와 관련된 데이터를 받아 봐야 하는 경우가 많은데요, 값을 받아보거나 수정해야 할 떄 일일히 다시 연결하고 수정해야 하는 것에 많은 번거로움을 느끼게 됩니다. 떄문에, 무선으로 자동차를 조종하는 것이 더 편리할 거라 생각하게 되었고, 결과적으로 블루투스를 사용해야겠다는 결심을 하게 되었습니다.

왜 블루투스 2.0?

이전 프로젝트에 사용했던 HC-10 모듈을 사용할까 봤더니 블루투스 4.0 BLE를 지원하는 모델이라 표준적인 장치가 정해져 있지 않아 새로 프로그램을 짜야 사용할 수 있었고 아두이노 IDE에서도 지원을 하고 있지 않아 시리얼 모니터, 플로터 등을 바로 사용할 수 없는 단점이 있었습니다. 그래서 쉽게 연결해 사용할 수 있는 블루투스 2.0 모듈을 사용하기로 하였습니다. 마침 가지고 있는 모듈이 HC-06이어서 이 모듈에 대해 살펴보겠습니다.

HC-06 스펙

  • 통신 방법: 블루투스 2.0 무선 시리얼 통신
  • 동작 범위: ~10M
  • 동작 전원: 3.6 ~ 6V
  • 사용 전력: ~30mA
  • 모듈 크기: 3.6 x 1.5 cm
  • 기본 이름: linvor
  • 페어링 번호: 1234

HC-06 핀 배치

  • VCC : 아두이노 5V
  • GND : 아두이노 GND
  • RX : 수신 (아두이노의 TX 역할을 하는 핀에 연결)
  • TX : 송신 (아두이노의 RX 역할을 하는 핀에 연결)

회로도

HC-06이라고 이름이 붙어 있더라도 사용하는 전압이 서로 다르게 회로가 꾸며진 경우가 있으므로 전원을 연결할 때 주의하여야 합니다. 전원과 데이터 송수신 모두 5 볼트로 작동하는 모듈들도 있고, 3.3 볼트에서만 동작하는 모듈도 있는데, 제가 사용한 모듈은 전원은 5볼트, 데이터 수신 및 송신은 3.3볼트를 사용하는 것이었습니다.

3.3V 이용

이 모듈듈 TX에서 아두이노로 신호를 보낼 떄는 아두이노가 3.3볼트를 HIGH로 인식하기에 별 문제가 없지만, 아두이노에서 모듈의 RX로 신호를 보낼 때는 모듈이 5볼트를 감당하지 못하게 되면서 문제가 생기게 됩니다. 때문에 아두이노의 TX 역할을 하는 핀과 모듈의 RX 핀을 연결할 때 5볼트 신호를 3.3볼트 신호로 바꾸는 회로를 구상해야 하는데요, 저는 아래 회로도에서 볼 수 있듯 1K옴과 2K옴 저항을 사용하여 볼티지 디바이더를 만들었습니다.

회로도

HC-06 설정

설정 코드

아래 코드를 아두이노에 올리고, 시리얼 모니터를 연 후 AT 코멘드를 입력하여 HC-06을 설정하면 됩니다. 처음 시리얼 모니터를 열 때는 line ending은 없음, 속도는 9600 baud로 설정해야 합니다.

AT 커멘드

많은 명령어가 있지만 자주 사용하는 명령어를 아래와 같이 정리해 보았습니다.

설정 명령 반환값 기본값 설명
통신 테스트 AT OK   통신이 되고 있는지 확인
이름 변경 AT+NAMEname OKsetname linvor 장치의 이름을 name으로 변경
속도 변경 AT+BAUDn OK보레이트 (예: OK1200) 9600 n에 해당하는 속도로 보드의 속도 변경
PIN 설정 AT+PINxxxx OKsetpin 1234 페어링 비밀번호를 xxxx로 변경

AT+BAUD 뒤에 바로 이어서 숫자를 주면 장치의 통신 속도를 설정할 수 있습니다. 숫자에 해당하는 보레이트를 아래 표에 정리해 보았습니다. 기본값은 9600 baud로 설정되어 있습니다. 가능하면 빠른 통신 속도로 설정하여야 많은 데이터를 주고 받을 수 있지만, 아두이노의 SoftwareSerial 라이브러리가 57600 baud 이상은 지원하지 못한다는 한계가 있으므로 프로젝트에 맞는 적절한 통신 속도를 선택하여야 합니다.

AT+Baud 파리미터 보레이트
1 1200
2 2400
3 3600
4 4800
5 19200
6 38400
7 57600
8 115200

사용 방법

기본 설정을 완료했다면 블루투스를 사용할 수 있는 상태가 됩니다. 블루투스를 사용해주기 위해서는 우선 컴퓨터에서 블루투스 기기와 연결을 해야 합니다. 저는 맥 오에스를 쓰고 있어서 이를 기준으로 설명 드리겠습니다. 아두이노에 전원을 연결한 후, 맥 오에스의 시스템 환경 설정에서 블루투스 패널을 열면 다음 그림과 같이 linvor라는 이름의 장치를 찾을 수 있습니다.

과정 1

처음 연결할려면 Pair 버튼을 누릅니다. 이 때 맥 오에스에서 기본으로 사용하는 페어 코드인 0000과 다르기 때문에 옵션을 누른 후 다음과 같이 기본 페어 코드인 1234를 입력하고 페어링을 합니다.

과정 2

페어링이 성공하면 아래와 같이 ‘connected’ 상태로 전환됩니다.

과정 3

여기까지 진행한 후 아두이노의 port를 보면 아래 그림과 같이 linvor라는 이름을 포함한 포트를 찾을 수 있습니다. 이를 선택한 후 시리얼 모니터나 시리얼 플로터를 열면 블루투스를 통해 데이터를 주고 받을 수 있습니다.

과정 4