Arduino Uno HC-06 스마트폰Arduino Uno HC-06 스마트폰

HC-06을 사용하여 스마트폰과 아두이노 시리얼 통신하기

지난 포스트에서 HC-06 모듈을 소개하고, AT Command 를 주고 받는 방법에 대해 소개하였습니다. 이번 포스트는

스마트폰의 블루투스 통신으로 HC-06을 연결하여 아두이노와 통신하는 방법

을 소개합니다. HC-06 에 대한 기초적인 내용은 하단의 관련 포스트를 참고해주세요.

하드웨어 연결

회로도 및 연결

아래와 같이 Arduino Uno 보드와 HC-06 모듈을 연결합니다. Arduino Uno와 HC-06 Module은 SoftwareSerial 라이브러리를 사용한 시리얼통신을 사용하기 때문에, D0/D1번 포트를 제외한 핀을 사용하시면 됩니다. 저는 아래와 같이 아두이노의 A0, A1으로 HC-06을 연결 하였습니다.

Arduino Uno HC-06 연결 회로도 및 연결 예시Arduino Uno 와 HC-06 연결 회로도 및 연결 예시


HC-06 설정 (AT 커맨드)

스마트폰으로 HC-06을 연결하기 전에 AT 커맨드로 HC-06 모듈의 이름과 UART 통신 설정을 진행합니다.

코드

AT-Command를 사용하여 HC-06 환경 설정을 하기 위해 아래의 아두이노 코드를 업로드 하였습니다. 지난 포스트의 내용과 동일합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <SoftwareSerial.h>
 
#define HC06RX A0 //HC-06의 TX Pin - Arduino Uno의 RX
#define HC06TX A1 //HC-06의 RX Pin - Arduino Uno의 TX
SoftwareSerial HC06(HC06RX,HC06TX);
 
void setup(){
    Serial.begin(9600);
    HC06.begin(9600);
}
 
void loop(){
    if(HC06.available()){
        Serial.write(HC06.read());
    }
    if(Serial.available()){
        HC06.write(Serial.read());
    }
cs

AT 커맨드로 HC-06 설정

프로그램을 업로드 후 시리얼 모니터 프로그램을 열어 아래의 명령으로 HC-06 모듈을 설정합니다.

  • AT : 동작테스트
  • AT+VERSION : HC-06 펌웨어 버전 확인
  • AT+ROLE=S : HC-06을 Slave 모드로 설정, 설정 후 재부팅이 필요함
  • AT+NAMEHC06 : HC-06 Module 블루투스 기기 이름을 HC06으로 변경
  • (Default)AT+BAUD4 : UART 통신 속도를 9600 bps 로 설정
  • (Default)AT+PN : UART 통신 Parity 없음 적용
  • AT+PIN0000 : PIN번호를 0000으로 설정합니다.

HC-06 모듈 설정을 하기 위해 PC에서 ComPortMaster 프로그램을 사용하여 AT-Command 를 전송하고 HC-06 응답을 확인하였습니다. ComPortMaster 프로그램을 꼭 쓸 필요는 없고, 기존 Arduino IDE 의 시리얼 모니터를 사용하시면 됩니다. 

HC-06 AT Command 설정HC-06 AT Command 설정

※ HC-06에서 지원 하는 추가적인 AT 커맨드가 필요하신 분은 아래의 표를 참고해주세요. 아래 표는 HC-06 펌웨어 LinvorV1.8 기준입니다.

HC-06 AT CommandHC-06 AT Command 명령어 리스트


스마트폰과 HC-06 연결

본 포스트는 안드로이드 스마트폰을 기준으로 설명합니다.

스마트폰 HC-06 모듈 장치 등록

스마트폰에서 HC-06 Module 블루투스 장치를 등록된 디바이스로 등록합니다. 등록하는 방법은 스마트폰의 블루투스 설정 -> 연결 가능한 디바이스에서 'HC06' 을 찾고 '0000' PIN 번호를 입력하여 장치를 등록합니다.

스마트폰 HC-06 블루투스 장치 등록스마트폰 HC-06 블루투스 장치 등록


블루투스 시리얼 앱 설치 및 장치 등록

블루투스로 시리얼 통신을 지원하는 앱은 여러가지가 있지만, Bluetooth Terminal 이란 앱을 사용하여 테스트 하는 방법을 소개합니다. 안드로이드 Play 스토어에서 Bluetooth Terminal 을 검색하여 해당 어플을 설치 후 실행합니다. 어플이 실행되면 왼쪽의 메뉴 버튼을 눌러 Bluetooth Devices 메뉴를 선택하여 등록된 블루투스 기기 HC06을 선택 합니다.

블루투스 터미널 앱에서 HC-06 등록블루투스 터미널 앱에서 HC-06 등록


스마트폰과 아두이노 시리얼 통신

HC06 디바이스를 선택하고 정상적으로 연결되면 아래 그림과 같이 Connected to HC06 메세지가 출력되고, 블루투스로 시리얼 통신이 가능해집니다. 아래 그림은 스마트폰 Bluetooth Terminal 앱에서 Hello 메세지를 보내서 아두이노의 시리얼 포트가 연결된 PC의 시리얼 모니터에서 Hello 를 수신한 그림입니다.

스마트폰 블루투스 터미널엡에서 PC와 통신하기스마트폰 블루투스 터미널엡에서 PC와 통신하기

위의 연결이 모두 정상적으로 되는 경우 스마트폰과 HC-06과 블루투스로 연결되고, 블루투스 SPP 프로파일을 사용하여 HC-06이 아두이노에게 시리얼 통신을 보내고, 아두이노는 시리얼 통신의 중간 전달자 역할을 합니다. 결론적으로 아두이노에 위의 코드를 적용하는 경우 스마트폰과 PC가 마치 시리얼 포트가 직접 연결되어 통신 하는 것처럼 데이터를 주고 받을 수 있습니다.


마무리

본 포스트의 내용을 요약하면 아래와 같습니다.
  • Arduino Uno 보드와 HC-06 연결
  • AT-Command로 HC-06 환경설정 - 블루투스 장치명/PIN 설정, 통신 사양(Buadrate, Parity)
  • 스마트폰에서 블루투스 기기 HC-06를 등록
  • 스마트폰 블루투스 터미널 앱에서 HC-06를 선택
  • 스마트폰과 아두이노 또는 스마트폰과 아두이노의 시리얼포트와 연결된 PC 통신

끝까지 읽어 주셔서 감사합니다.😄


관련포스트

2020/10/13 - [Embedded/Arduino] - 아두이노 강좌 #43 HC-06 모듈 소개, 주요 기능 및 AT Command 주고 받기


댓글
댓글쓰기 폼