코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2017-06-20 09:19:24
보통 아두이노에서 블루투스 모듈을 사용한다고 하면 스마트폰 어플과 연동하여 무선으로 아두이노를 제어하거나 값을 받아올 때 많이 사용합니다.
이 부분에 있어서는 어플만 존재하면 어렵지 않고, 검색하면 많은 예제들이 존재하기 때문에 쉽게 따라할 수 있는 편입니다.
이번에 소개하는 통신은 2개의 블루투스 모듈(HC-06)을 통해 아두이노 간 무선통신을 하는 방법에 대해 알아보겠습니다.
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 2 | |
2 | 블루투스 모듈 | 2 | HC-06 |
3 | 점퍼 케이블 | 8 |
부품명 | 오렌지 보드 | 블루투스 모듈 | 점퍼케이블 |
파트 |
※ 아두이노간 통신이기 때문에 아래와 같은 회로 연결이 2개 필요합니다.
블루투스 간 통신을 하기위해서는 HC-06모듈이 2개 필요하지만 버전도 중요합니다.
이전에는 HC-06의 모듈이 Master와 Slave가 고정되어 나왔지만 버전이 올라감에 따라 모듈의 Master/Slave를 ATcommand로 세팅할 수 있게 되었습니다.
블루투스 모듈의 펌웨어를 확인할 수 있는 ATcommand는 AT+VERSION입니다.
<AT+VERSION을 입력 시, 위의 시리얼 모니터와 같이 버전이 출력>
버전을 확인하고 모듈의 버전이 v1.7이상이면 블루투스 간 통신을 할 수 있습니다.
버전을 확인 했으면 블루투스 간 통신을 위해 블루투스 모듈의 역할을 지정해주어야 합니다.
블루투스모듈(hc-06)의 기본 세팅은 Slave로 세팅되있기 때문에 블루투스간 1:1통신을 위해서는 하나는 Master, 다른 하나는 Slave가 되어야 합니다.
각각의 모듈은 ATcommand를 통해 역할을 지정할 수 있습니다. 명령어는 AT+ROLE=M 또는 S입니다.
<AT+ROLE=M 또는 S을 입력 시, 위의 시리얼 모니터와 같이 모듈의 역할을 지정>
※ 블루투스 모듈이 Slave모드일 때는 LED가 빠르게 깜빡거리지만
Master모드로 변경되었을 때는 LED의 깜빡거리는 속도가 느려집니다.
만약 모드를 변경했을 때 제대로 변경됐는지 확인하려면 LED의 깜빡거리는 속도를 확인하세요.
(모드 변경 후 모듈을 껐다가 다시 켜야 변경사항이 적용됩니다!!!!)
블루투스 모듈 A | 블루투스 모듈 B | |
버전(Version) | v1.7이상 | v1.7이상 |
역할(Role) | M(Master) | S(Slave) |
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //블루투스의 Tx, Rx핀을 2번 3번핀으로 설정
void setup() {
// 시리얼 통신의 속도를 9600으로 설정
Serial.begin(9600);
while (!Serial) {
; //시리얼통신이 연결되지 않았다면 코드 실행을 멈추고 무한 반복
}
Serial.println("Hello World!");
//블루투스와 아두이노의 통신속도를 9600으로 설정
mySerial.begin(9600);
}
void loop() { //코드를 무한반복합니다.
if (mySerial.available()) { //블루투스에서 넘어온 데이터가 있다면
Serial.write(mySerial.read()); //시리얼모니터에 데이터를 출력
}
if (Serial.available()) { //시리얼모니터에 입력된 데이터가 있다면
mySerial.write(Serial.read()); //블루투스를 통해 입력된 데이터 전달
}
}
두 개의 아두이노에 위 코드를 업로드 후 블루투스 모듈을 서로 가까이 대면 스스로 페어링되면서 통신이 됩니다.
(꼭 가까이 대지 않더라도 마스터 슬레이브가 통신 공간내에 존재하면 서로 연결이 되는 거 같습니다.)
페어링이 됐는지 여부 확인은 블루투스 모듈의 LED를 확인하세요!
서로의 LED가 깜빡거리지 않는다면 페어링이 된 상태입니다.
<두 블루투스의 LED가 깜빡거리지 않는다면 페어링이 된 상태이다>
COM212에 해당하는 아두이노에서 Hi~ bluetooth!를 입력 후 전송하면 COM211에 해당하는 아두이노에 전달됩니다.
<Hi~ bluetooth!를 입력>
<반대쪽 아두이노 시리얼 모니터에 출력>
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!