HC-06

블루투스(HC-06)

이 문서에서는 HC-06 블루투스 모듈을 사용하여 모바일 기기와 블루투스 통신을 하는 예제를 살펴본다.

라이브러리

블루투스 통신을 위해서는 SoftwareSerial 라이브러리가 필요하다. 아두이노 내장 라이브러리이므로 설치할 필요는 없다.

결선도

RXD to Digital PIN 2
TXD to Digital PIN 3
GND to GND
VCC to 5V

RXD(Receiver X-tal Data) - 수신부 TXD(Transmitter X-tal Data) - 송신부

샘플 코드

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3);//TX, RX

void setup(){
  Serial.begin(9600);
  BTSerial.begin(9600);
  Serial.println("Enter AT Command");
}

void loop(){
  if(BTSerial.available()){
    Serial.write(BTSerial.read());
  }
  if(Serial.available()){
    BTSerial.write(Serial.read());    
  }
}

컴파일

Ctrl+R 또는 스케치 메뉴의 확인/컴파일을 눌러 컴파일을 진행한다.

업로드

Ctrl+U 또는 스케치 메뉴의 업로드를 눌러 업로드를 진행한다.

실행 결과

시리얼 모니터를 열고 다음과 같이 입력한다.

AT

OK라는 글자가 출력되면 정상적으로 연결된 것이다. BAUD rate 확인 및 line ending 없음을 선택한 후 진행한다.

AT Command

AT Command를 이용하여 블루투스 초기 설정을 수행할 수 있다.

버전 확인

AT+VERSION
  • OKlinvorV1.8

  • OKlinvorV3.0

위의 두 가지 경우가 발생하며, 버전이 다르면 사용 가능한 명령이 완전히 다르므로 반드시 확인하여야 한다. 이 문서에서는 1.8 버전으로 진행한다.

이름 설정

외부에서 탐색할 때 보여질 이름을 설정할 수 있다.

AT+NAME이름

AT+NAME을 작성하고 바로 뒤에 보여질 이름을 작성한다. OKsetname 메세지가 출력되면 성공적으로 실행된 것이다.

이 문서에서는 arduinotest라는 이름으로 설정한다.

AT+NAMEarduinotest

BAUD rate 설정

BAUD rate를 설정하여 시리얼 통신 속도를 조절할 수 있다.

AT+BAUD값

AT+BAUD입력 후 1부터 8사이의 숫자를 작성한 뒤 실행한다. OK9600과 같은 메세지가 출력되면 성공적으로 실행된 것이다.

BAUD rate

1

1200

2

2400

3

4800

4

9600

5

19200

6

38400

7

57600

8

115200

이 문서에서는 다음과 같이 9600으로 설정하였다.

AT+BAUD4

PIN 설정

외부 접속 시 입력해야 할 PIN 번호를 설정할 수 있다.

AT+PIN네자리숫자

AT+PIN 바로 뒤에 네 자리 숫자를 연속하여 입력한 뒤 실행한다. OKsetPIN이라는 메세지가 나오면 성공적으로 수행된 것이다.

이 문서의 예제에서는 다음과 같이 설정하였다.

AT+PIN1234

블루투스 앱 설치

블루투스 통신을 테스트하기 위하여 모바일 기기에 블루투스 통신 앱을 설치해야 한다. 다양한 종류가 있지만 이 문서에서는 BT Chat을 설치하여 테스트를 진행한다.

블루투스 접속 및 테스트

BT Chat을 실행하면 다음과 같은 초기화면이 나온다.

Scan for devices를 눌러 미리 만들어둔 arduinotest라는 이름의 블루투스 장치를 탐색한다.

미리 설정해둔 PIN 번호(1234)를 입력한다

연결이 성공되면 하단에 연결 상태가 출력된다.

BT Chat에서 아두이노로 hello라는 메세지를 전송한다.

hello라는 메세지가 정상적으로 수신되어 시리얼 화면에 출력된다.

반대로 시리얼에서 Welcome이라는 메세지를 입력해본다.

모바일 기기의 BT Chat 앱에서 정상적으로 Welcome이 출력되는 것을 확인할 수 있다.

Last updated