아두이노 블루투스(HC06) 연동
이번에는 아두이노끼리 블루투스 통신 하는 방법에 대해 알아보겠습니다.
블루투스 통신을 위해 다음 모듈이 필요합니다.
HC06 모듈입니다.
제원은 다음과 같습니다.
○ 범위 : ~10M
○ 동작 전원 : 3.6 ~ 6V
○ 사용 전력 : ~30mA
○ 크기 : 36 x 15 mm
○ 기본 통신 속도(Baud rate) : 9600
○ 초기 페어링 비밀번호 : 1234
핀은 다음과 같이 배치합니다.
● VCC : 5V (전원)
● GND : GND (그라운드)
● RX : Digital 2 pin (데이터 수신)
● TX : Digital 3 pin (데이터 송신)
아두이노 스케치에서 시리얼 모니터를 열어서 다음과 같이 명령어를 입력합니다.
☆ AT : 블루투스 통신이 유효한지 확인합니다. (성공시 OK출력)
☆ AT+VERSION : 블루투스 모듈의 버전을 확인합니다.
☆ AT+ROLE=M : 통신 모드를 Master로 변경합니다.
☆ AT+ROLE=S : 통신 모드를 Slave로 변경합니다
☆ AT+BAUD4 : 기본 Baud rate를 변경합니다. (1~8까지)
1 : 1200 / 2 : 2400 / 3 : 4800 / 4 : 9600 / 5 : 19200 / 6 : 38400 / 7 : 57600 / 8 : 115200
☆ AT+NAMEdevicename : 블루투스 명칭을 변경합니다. (성공시 OKname 출력)
☆ AT+PIN**** : Pin Code(비밀번호)를 변경합니다.(성공시 Oksetpin 출력)
☆ AT+INQ : 주변 블루투스 모듈을 검색합니다.
☆ AT+CLRBAND : 블루투스 연결을 해제합니다.
* 자세한건 여기를 확인하세요.
위 설정을 모두 끝냈다면 다음 코드를 작성합니다.
1. 컴퓨터가 2대 이상 있는 경우 - 각각의 컴퓨터에 아두이노를 연결하고 다음과 같이 작성합니다.
* 스케치 - 라이브러리 포함하기 - SoftwareSerial 을 선택합니다.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //블루투스의 Tx, Rx핀을 2번 3번핀으로 설정
void setup() {
// Baud rate 9600으로 설정
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
if (mySerial.available()) { //블루투스에서 넘어온 데이터가 있다면
Serial.write(mySerial.read()); //시리얼모니터에 데이터를 출력
}
if (Serial.available()) { //시리얼모니터에 입력된 데이터가 있다면
mySerial.write(Serial.read()); //블루투스를 통해 입력된 데이터 전달
}
}
2. 컴퓨터가 1대 있는 경우 - Master 및 Slave 모듈을 번갈아가며 작성합니다.
· Master 코드
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //블루투스의 Tx, Rx핀을 2번 3번핀으로 설정
void setup() {
Serial.begin(9600);
mySerial.begin(9600); // baud rate 9600으로 설정
}
void loop() {
if (mySerial.available()) { // 넘어온 데이터가 존재하면
Serial.write(mySerial.read()); // 시리얼에 출력
}
}
· Slave 코드
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //블루투스의 Tx, Rx핀을 2번 3번핀으로 설정
int a= 0;
void setup() {
Serial.begin(9600);
mySerial.begin(9600); // baud rate 9600으로 설정
}
void loop() {
mySerial.println(a); // 블루투스 시리얼에 입력
a++;
delay(500);
}
2.의 실행 화면입니다.
정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.
질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.
'Arduino' 카테고리의 다른 글
[Arduino] 아두이노 DIY 스마트 책상 만들기! (7) | 2018.08.21 |
---|---|
[Arduino] 아두이노 ESP8226 OV2640 영상처리 및 패턴인식 프로그래밍 (3) | 2018.08.17 |