?>

Hard Copy World

HCW

Communication module

Home > Info >

Communication module

블루투스 HC-06 슬레이브 모듈 아두이노 소스 + 안드로이드 앱 소스

페이지 정보

작성자 최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일14-10-05 00:04 조회16,540회 댓글12건

본문

1. HC-06 블루투스 슬레이브 모듈

모 카페에서 공구로 저렴하게 HC-06 모듈을 구해서 테스트 해봤습니다. 연결도 간단하고 사용도 쉽고 무선이라 편리한 점이 많네요. 특히 안드로이드 앱만 좀 다룰 줄 알면 다양한 응용이 가능해서 좋습니다. 테스트하면서 사용한 아두이노 연결법과 코드, 안드로이드 소스코드 공유합니다. 제작하는데 참고하세요.

 

2. 연결방법

제원은 다음과 같습니다.

- EDR 블루투스 2.0, 2Mbps - 3Mbps 변조
- 2.4GHz 안테나 내장

- 외부 8Mbit FLASH
- 3.3V 저전압 동작
- 옵션 PIO 제어
- 표준 HCI 포트 (UART)
- SMD 배치 프로세스로 모듈
- RoHS 규제 절차
- 디지털 2.4GHz 무선 송신

- CSR BC04 블루투스 칩 기술
- 크기 (27mm × 13mm × 2mm)
- 블루투스 클래스 2 전력 레벨
- 보관 온도 : -40 +85도, 작동 온도 : -25으로 75도

전 HC-06 슬레이브 모듈이 백보드와 결합된 버전을 구입했습니다. 위 그림처럼 생겼는데 WAKEUP, STATE 핀까지 총 6개의 핀이 있습니다만 동작하는데는 그림처럼 4개 핀만 사용하면 됩니다.

VCC -> 3.3V, GND -> GND 연결하고 TX, RX 핀은 아두이노 D2, D3에 연결 했습니다. (HC-06 모듈은 3.3V, 베이스보드에 납땜된 모듈은 5V를 공급해야 한다고 하네요. 전 그냥 3.3V에 해서 동작 됐습니다.).

블루투스와의 통신을 위해 SoftwareSerial 라이브러리를 사용하는데 라이브러리가 Interrupt pin을 사용하도록 되어있다고 합니다. 인터럽트 핀은 UNO 기준 D2, D3 핀 입니다.

 

3. 동작방법

모듈이 정확하게 연결이 되었다면 아두이노에 전원을 넣었을 때 HC-06 모듈의 LED가 깜빡거릴 겁니다. 마스터 모듈이나 다른 장치와 연결이 완료되면 LED가 켜진 상태로 유지됩니다.

먼저 아래 스케치를 업로드 합니다. PC에서 Serial 통신으로 아두이노로 메시지를 던지면 아두이노에서 HC-06으로 다시 메시지를 던져줍니다. 다른 장치와 페어링 된 상태라면 그쪽으로 메시지가 전달되겠죠. 반대로 HC-06이 메시지를 받으면 아두이노를 통해 PC로 전달됩니다. 시리얼 모니터에서 수신 메시지 확인할 수 있습니다. 아두이노와 HC-06 간의 통신을 위해 SoftwareSerial 을 사용합니다.

#include 

SoftwareSerial BTSerial(2, 3); //Connect HC-06. Use your (TX, RX) settings

void setup()  
{
  Serial.begin(9600);
  Serial.println("Hello!");

  BTSerial.begin(9600);  // set the data rate for the BT port
}

void loop()
{
  // BT –> Data –> Serial
  if (BTSerial.available()) {
    Serial.write(BTSerial.read());
  }
  // Serial –> Data –> BT
  if (Serial.available()) {
    BTSerial.write(Serial.read());
  }
}

 

HC-06 모델은 초기 BAUD RATE 값이 9600으로 설정되어 있고, Name=linvor, Password=1234 로 되어있습니다. 일단 위 소스를 업로드 하고, 모듈이 깜빡거리는지 Serial Monitor 창에 Hello!! 가 찍히는지 확인합니다. 그리고 Serial Monitor 창에서 아래 명령을 던지면 HC-06 모델의 설정을 바꿀 수 있습니다.

장치명 변경: AT+NAMExxxx (이름을 mybt01 로 바꾼다면 : AT+NAMEmybt01)

페어링 암호 변경 : AT_PINxxxx (비번을 1111 로 바꾼다면 : AT_PIN1111)

통신속도 변경 : AT_BAUDx (1200=1, 2400=2, 4800=3, 9600=4, 19200=5, 38400=6, 57600=7, 115200=8 중 택 1)

만약 정상적으로 값이 변경 되었다면 Serial Monitor 창에 메시지가 뜰겁니다. BAUDRATE를 변경하면 연결을 끊고 Serial Monitor 창 닫고 다시 연결, 실행해 보세요. 여기까지 완료되면 BT 관련한 아두이노 설정은 끝.

 

4. 코드 (스케치)

GitHub 에 BluetoothChat 프로젝트가 있습니다. 위에서 설정한 아두이노 보드와 안드로이드 앱을 연결해서 서로 메시지를 주고 받을 수 있게 한 프로젝트입니다. 이 프로젝트를 응용해서 새롭게 제작한 BT Chat 안드로이드 앱을 사용하세요.

 

# 앱 다운로드(Google Play) : https://play.google.com/store/apps/details?id=com.hardcopy.btchat (구글 플레이에서 BT Chat 아두이노 검색 후 설치)

# 앱 소스 다운로드 : https://github.com/godstale/BTChat

 

 

아래 순서로 연결이 되는지 테스트하세요.

  1. 먼저 아두이노를 켜서 HC-06 슬레이브 모듈이 페어링 대기상태에 들어가도록 합니다. (LED 깜빡깜빡)
  2. 위 GitHub 에서 받은 소스를 빌드하거나 아래 링크에서 APK 파일을 받아서 폰에 설치합니다.
  3. 폰의 설정 > 블루투스 에서 off 상태이면 BT on 으로 바꿉니다.
  4. BluetoothChat 앱을 실행 - 메뉴키 - Connect a device 선택
  5. Device List 에 HC-06 슬레이브 모듈이 보이는지 확인. 안보이면 Scan 버튼을 눌러서 찾아보고 그래도 안되면 1부터 다시합니다.
  6. HC-06 모듈이 보이면 선택 - 연결이 정상적으로 완료되면 챗팅 가능
  7. 폰으로 글 적으면 PC의 Serial Monitor에서 보이는지 확인합니다. 반대도 확인.

 

BTChat 안드로이드 관련 파일 다운로드

# 앱 다운로드(Google Play) : https://play.google.com/store/apps/details?id=com.hardcopy.btchat

# 앱 소스 다운로드 : https://github.com/godstale/BTChat

# BT Chat 앱 상세사항 : http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=tech_comm&wr_id=31 

 

 

추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

dmswl2546님의 댓글

dmswl2546 이름으로 검색 작성일

안드로이드앱과 아두이노를 블루투스를 연결하여 앱으로 아두이노를 제어할 수 있다면
아두이노를 이용하여 안드로이드앱과 pc를 연결시켜 앱으로 pc제어가 가능한가요?

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

안드로이드와 PC 앱을 그리 만들면 가능은 하겠습니다만...
굳이 중간에 아두이노가 낄 필요는 없어 보이네요.

Akasha님의 댓글

Akasha 이름으로 검색 작성일

터치스크린-터치 컨트롤러-아두이노-블루투스모듈을 연결하여 터치스크린을 무선으로 이용할 수 있을까요?

th2님의 댓글

th2 이름으로 검색 작성일

아두이노 2대와 블루투스 2개(HC-06) 으로 블루투스 통신을 하고싶은데, 잘 되지않습니다.. 코드 도움좀 부탁드리겠습니다

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

코드보다 모듈을 마스터/슬레이브 모듈을 구매해서 서로 다른 역할을 하도록 해줘야 합니다. 그럼 두 모듈이 자동으로 연결이 가능합니다.

민승덕님의 댓글

민승덕 이름으로 검색 작성일

안녕하세요  이모듈을 사용해서  차량에 블루투스 기능으로  사용 가능 한가요?? 차량  오디오에 블루투스  없는 기능을  추가로 넣을 수있는지 궁금 하네요

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

위에서 사용한 블루투스 모듈은 일반 통신용으로 나온 모듈이라 말씀하신 목적에는 맞지 않습니다. 오디오/핸즈프리 같은 기능을 위해서는 전용 프로파일이 탑재된 모듈을 사용해야 합니다. 아래 링크에 있는 모듈을 사용해야 할 것 같네요.
http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=tech_comm&wr_id=8&page=2
그리고 이런 모듈을 쓰더라도 차량의 오디오를 분해해서 전원, 스피커 연결 등등을 직접 작업해줘야 해서 쉽진 않을거 같아요.