> For the complete documentation index, see [llms.txt](https://docs.sysout.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sysout.co.kr/base-language/arduino/arduino-network/bluetooth/hc-06.md).

# HC-06

## 블루투스(HC-06)

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

### 라이브러리

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

### 결선도

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

![](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6xzoEfZqbSYS_klK3%2Fimage.png?alt=media\&token=d976b25c-bac5-49c7-8523-1573c79fae34)

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

### 샘플 코드

```cpp
#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](https://play.google.com/store/apps/details?id=com.hardcopy.btchat)을 설치하여 테스트를 진행한다.

### 블루투스 접속 및 테스트

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

<div align="center"><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6y5te8wsQ37wVSX2D%2Fimage.png?alt=media&amp;token=8ad054b1-d9d8-4a73-9d76-795415dc83d1" alt="BT Chat 초기 화면"></div>

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

![블루투스 탐색](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6yCwZRcYRSXKKkY6j%2Fimage.png?alt=media\&token=098a296f-da7e-4af4-ba82-c40f16e68c2b)

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

![PIN 번호 입력](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6yGsTqfjCJ4aZWTyd%2Fimage.png?alt=media\&token=60aee468-0875-4c62-bafc-1f6066dcdef5)

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

![연결 성공 상태 확인](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6yR0etW_YchexAq0k%2Fimage.png?alt=media\&token=fe25f2f2-2e4a-40ca-99d8-f35e5cc33c27)

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

![모바일(BT Chat) 전송 화면](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6yVhO0FnwRRd4j_5-%2Fimage.png?alt=media\&token=868a2a41-a586-49bf-889c-e56ee7fdd33a)

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

![시리얼 수신 화면](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6yn0DeaxlZLud5atR%2Fimage.png?alt=media\&token=3874b2c7-8e81-4b11-9376-152a31af4ad6)

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

![시리얼 전송 화면](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6ysNeJ9dkjtGP4KK-%2Fimage.png?alt=media\&token=5a7d4b21-0587-46a3-9990-e8d8adde17a6)

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

![모바일 전송 화면](https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-Mf5YpxdeV6Xjd6IvtJV%2F-Mf6ytt92CawuOrtqcoF%2Fimage.png?alt=media\&token=8050e8a9-45a9-4b44-ba44-7bcb4f2df977)
