본문 바로가기
Arduino/Module

[아두이노]블루투스 모듈을 배워보자!! (HC-06)

by Alan_S 2016. 8. 13.

우선 오늘 공부한거나 여러가지 알고있는 정보들을 정리하며 올릴 생각입니다.ㅎㅎ

제가 했던 것들을 남기고 하는 마음으로 첫 글을 시작합니다!

 

우선 아두이노와 호환되는 블루투스(HC-06)을 다루어 보겠습니다.

 

 

 HC-06입니다! HC-06은 본래 SLAVE모드로 제작이 되어있다고 합니다.(요즘은 MASTER,SLAVE 변경 할 수 있는 것들도 나오고 있다고 하고, 또 MASTER로 지정되어 있는 모듈도 나온다고 합니다!)

제껀 SLAVE만 가능한 모듈입니다ㅎㅎ

 

 

제껀 요렇게 생겼습니다! 앞면, 뒷면!

사진에서도 나와있듯이 5V ,GND, TX, RX 순으로 연결합니다!

 

 

연결하면 이런 형태가 됩니다!! 브래드보드에 안 연결해도 되니 너무 좋네요ㅎㅎ

이렇게 연결하고 나면 불이 방정맞게 깜빡이기 시작합니다!! 5V가 정상적으로 들어오고 있다는 뜻입니다!

 

우선 이녀석을 다루려면 AT 명령어가 필요합니다!! 아두이노 스케치를 켜고

 

 

이렇게 소스를 짜보았습니다!! 우선 시리얼 모니터로 AT명령어를 다뤄야 하는데 컴퓨터와 시리얼 통신을 하기위해선

 

#include<SoftwareSerial.h>

       SoftwareSerial BT(2,3);              

 

가 필요합니다. 여기서 BT는 제가 이름지은 함수 이름입니다!(색도 까맣게 뜹니다)

BT(2,3); 에서 2,3 은 포트 번호인데, 차례로 RX, TX를 가리킵니다. RX는 받는 거고 TX는 보내는 거라고 생각하면 됩니다!! ......음 그러니깐 아두이노의 RX부분에 블루투스의 TX를 연결시켜주고 아두이노의 TX부분에 블루투스의 RX부분을 연결시켜주면 됩니다!

한쪽이 주면 다른 쪽은 받는 부분이 되기 때문입니다!ㅎㅎ 그러면 아두이노의 2번에 블루투스의 TX를, 3번에 블루투스의 RX를 연결한 것이 됩니다!

 

Serial.begin(9600); 은 보드레이트(통신속도) 를 9600으로 시작해준다는 것입니다.

BT.begin(9600); 은 제 블루투스 통신속도도 9600으로 맞춰준다는 것을 의미합니다.

 

loop문에서의 구문들은 영어 조금 해석해보시면 이해할수 있으니 패스~

 

이렇게 돌려주고 스케치에서 시리얼 모니터를 띄웁니다!

 

 

띄우면 이런 창이 하나가 생기는데, line ending 없음 설정해주시고, 9600 보드레이트로 우리가 코딩해줘었던 속도를 맞춰줍니다!!

 

기본으로 AT를 쳐주게 되면 OK가 뜹니다. 정상적으로 잘 연결되었단 뜻이지요.

그리고 기본적인 AT커맨드로

 

AT+NAME###

AT+PIN####

AT+BAUD#

 

# 있는 부분에 넣을 것을 넣어주시면 됩니다! 띄어쓰기 없이 해주셔야 합니다.

예를 들면 AT+NAMEIMYOURFATHER 로 하면 블루투스 이름이 IMYOURFATHER 가 되는 것이지요 PIN번호는 AT+PIN0000 으로 하면 0000으로 핀번호가 설정되게됩니다. (보통 대부분의 블루투스 모듈들은 0000이나 1234로 초기설정이 되어있다고 하네요) AT+BAUD는 통신속도를 말하는데요 AT+BAUD4 라고 하면 9600 으로 설정이 되는 것 같이 각 숫자에 통신속도들이 지정되어 있습니다! 

 

그 외에도 다른 명령어들이 많은데 인터넷에 조금만 검색해봐도 많이 나오니 생략하도록 하겠습니다!

아! 참고로 안되는 명령어들도 조금 있고 HC-06도 각기 조금씩 다르다보니 정확한 정보는 해당 모듈의 데이터시트를 보는것이 가장 좋을듯 합니다!

저같은 경우에는 ADDR(주소) 알아보는 커맨드가 안먹혀서 핸드폰으로 블루투스 연결하여 앱으로 주소를 따왔었습니다....알고보니 HC-06은 대부분이 어드레스를 AT명령어로 못안다고 하네요.....ㅠㅠ

 

여기까지 HC-06 블루투스 모듈에 대해 공부했습니다!

 

소스파일은 여기 첨부했습니다!

BT.ino
다운로드