728x90

이제 아두이노로 블루투스를 해보자.

블루투스를 쓰려면 당연히 블루투스 모듈이 필요하다.

필자는 HC-06으로 해볼것이다.



앞면은 이렇게 생겼다. 다리가 4개이다.



이것이 뒷면이다. HC06은 RX,TX,GND,VCC이렇게 총 4가지가 있다.

RX가 보내는 선이고 TX가 보내는 선이다. GND와 VCC는 아리라 믿는다.

먼저 블루투스를 쓰기전에는 AT커맨드를 입력해야한다.


일종의 블루투스가 뭔지 확인하는 절차라고할 수 있다.

기본적으로 블루투스 모듈을 사면 보드레이트 9600으로 되어있다.

비밀번호는 손대지 않으면 0000인곳도 있고 1234인곳도 있다.

어쨋건 통일시키기 위해서 AT커맨드를 사용해보자.

먼저 회로를 연결하자.



위와같이 연결해준다. TX는 2에, RX는 3에 연결한다.



이런 느낌으로 만들어주면 되시겠다.

이제 AT코드용 임시코드를 넣자.


#include<SoftwareSerial.h>

SoftwareSerial BTSerial(2,3);

int val;

void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
}

void loop() {
if(BTSerial.available()){
Serial.write(BTSerial.read());
}
if(Serial.available()){
BTSerial.write(Serial.read());
}
}

AT커맨드를 입력시키기위해서 위의 코드를 아두이노에 입력시킨다.

그 다음 실행해서 아래와 같이한다.



먼저 AT를 입력해서 OK가 나오는지 확인하자.

만약 안나온다면 선이 잘못 입력됬거나 보드레이트가 안맞는 것이다. 



AT+VERSION를 입력하면 버전을 볼 수 있다.

사실 버전을 볼 필요는 없다.



만약 보드레이트가 다르게 설정되있다면 AT+BAUD4를 해주면된다.

근데 사실 건드릴 필요는 없다. 왠만하면 건들지 마라.


AT+PIN<4자리>

마지막으로 핀번호를 입력한다. 일종의 비밀번호이다.

이제 설정은 끝났다. 사실 마지막 핀번호만 설정하면 될것이다.



컴퓨터와 블루투스를 연결해준다. 만약 비밀번호를 입력해야되면 핀번호를 입력하면된다.

이제 블루투스를 사용한 예제를 만들어보도록 하자.


#include<SoftwareSerial.h>

SoftwareSerial BTSerial(2,3);

int count;

void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
}

void loop() {
BTSerial.println(count++);
}

이 코드는 아두이노에서 블루투스와 컴퓨터와 연결하는 예제이다.

BTSerial.println을 하면 블루투스에 쓰게된다.

블루투스를 쓰려면 SoftwareSerial을 포함해줘야한다. 그리고 BTSerial을 생성자를 호출할때 각각 TX핀과 RX핀을 넣는다.

우리는 2번과 3번을 했으므로 2번 3번을 한다. 그리고 setup에서 블루투스 시리얼도 함께 열어준다.

이제 컴퓨터쪽을 보자.


import serial

ser = serial.Serial(
port='/dev/cu.HC-06-DevB',
baudrate=9600,
)

while True:
if ser.readable():
print(ser.read().decode(), end='')

컴퓨터쪽은 시리얼 예제와 비슷하다. 애당초 블루투스도 시리얼통신으로 전송하기 때문이다.

위 코드는 시리얼 데이터를 읽어오고 그 값을 출력해주는 예제이다.

이제 출력값을 보도록하자.



값이 제대로 찍히고 있음을 확인할 수 있다.


+ Recent posts