아두이노와 블루투스 통신을 하기 위해서는 블루투스 모듈이 필요합니다.
저는 HC-06이라고 가장 저렴한 모듈을 구매해서 테스트해봤습니다.
지금은 어느 쇼핑몰에 가도 3000원 후반 ~ 4000원대에 판매가 되고 있습니다.
HC-06 블루투스 모듈을 이용한 아두이노 블루투스 통신은 굉장히 간단합니다.
아두이노 보드를 다음과 같이 구성해줍니다.
VCC는 아두이노 5V에, GND는 아두이노 GND에, TXD는 7번핀, RXD는 8번핀에 연결해줍니다.
그리고 다음 코드를 업로드합니다.
#include <SoftwareSerial.h>
int RX=7;
int TX=8;
SoftwareSerial bluetooth(RX, TX);
void setup(){
Serial.begin(9600);
bluetooth.begin(9600);
}
void loop(){
if (bluetooth.available()) {
Serial.write(bluetooth.read());
}
if (Serial.available()) {
bluetooth.write(Serial.read());
}
}
HC-06센서가 잘 연결되었는지 확인하기 위해서 시리얼 모니터를 켜고 AT를 입력합니다.
OK가 출력된다면 잘 연결된 것입니다.
이때 아두이노 HC-06 AT 무응답인 경우가 있습니다.
9600 보드레이트가 맞는지, 또한 line ending 없음으로 잘 맞췄는지 확인해봅니다.
안된다면 line ending 없음이 아니라 새 줄, 캐리지 리턴, Both NL&CR로도 다 해보시는 걸 추천합니다.
보드구성, 코드를 다시 점검해보시고, 이것저것 다 해봐도 안된다면 모듈이 고장 났을 경우도 생각해보셔야 합니다.
실제로 저는 해커톤 가서 블루투스 모듈 고장인지 모르고 엄청나게 삽질했던 적이 있습니다.
모듈을 여러 개 들고 갔는데 2~3갠가 빼고 다 고장이었던,, 모듈은 안전한 곳에 잘 보관하셔야 합니다;ㅅ;
AT 명령어가 잘 되시는 분들은 블루투스 모듈 이름을 변경할 차례입니다.
블루투스 모듈은 처음 사면 이름이 없습니다.
블루투스 기기가 많은 곳에서 테스트한다면 헷갈릴 수 있으니 꼭 변경해주셔야 합니다.
AT+NAME "변경하고 싶은 이름" 명령어를 통해서 이름을 변경합니다.
AT
// OK
AT+VERSION
// OKlinvorV1.8
AT+NAME Arduino // 블루투스 이름을 Arduino로 변경
// OKsetname
그리고 구글 플레이스토어에서 Arduino Bluetooth Controller 앱을 다운받습니다.
아래 어플이 아두이노 블루투스 통신 테스트용 앱 중에 제일 깔끔합니다.
실행하면 Arduino라는 이름의 기기가 존재합니다.
클릭해서 통신을 시작합니다.
처음 연결할 때는 블루투스 연결 요청이라는 팝업창이 뜹니다.
그때 1234를 입력해주면 정상적으로 연결이 됩니다.
Terminal mode로 통신을 시작합니다.
이제 스마트폰에서 문자를 보내면, 아두이노 시리얼 모니터에서 출력하는 것을 확인할 수 있습니다.
기쁨도 잠시, 스마트폰→아두이노는 데이터 전송이 잘 되는데, 아두이노→스마트폰 데이터 전송은 잘 안 되는 문제가 있었는데, line ending 없음을 Both NL&CR로 변경해주니 금방 해결되었습니다. 지금은 아두이노↔️스마트폰 양방향 통신이 원활하게 잘 됩니다.
제가 산 HC-06 모듈은 AT 세팅을 할 때는 line ending 없음으로, 블루투스 통신할 때는 Both NL&CR로 설정해줘야 하네요. 모듈마다 버전도, 통신도 다르니까 안돼도 이것저것 시도해보시길 바랍니다!
잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.
이 포스팅이 도움이 되었다면 공감 부탁드립니다.
궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D
'관리하지않음 > 아두이노' 카테고리의 다른 글
[아두이노] 진동센서(충격센서) 사용법 (2) | 2020.09.26 |
---|---|
[아두이노] RGBW 네오픽셀링 사용법 (1) | 2020.09.25 |
[아두이노] DM860H 드라이버로 NEMA 23각 스텝모터 제어하기 (3) | 2020.08.14 |
[아두이노] 가변저항 사용법 및 예제 - led, 스텝 모터 (2) | 2020.08.11 |
[아두이노] 8X8 도트매트릭스 사용법 및 예제 (1) | 2020.08.10 |