본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 무선으로 코드 업로드 해보기

by 오마이엔지니어 2017. 3. 7.
반응형

Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해서 무선으로 코드를 업로드 해보는 프로젝트 입니다

Arduino 에 코드를 업로드 하는 가장 기본적인 방법은 USB 데이터 케이블을 사용해서 코드를 업로드 하는 것 입니다
하지만 블루투스와 아두이노가 연결되어 있다면 다른 컴퓨터에서 블루투스와 통신해서 무선으로 아두이노에 코드를 업로드 할 수 있습니다
 

먼저 기초적인 HC-06 블루투스 슬레이브 모듈의 소개와 AT 커맨드 통신 방법은 아래의 포스팅을 참고 하도록 합시다


Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 AT커맨드 통신하기
Arduino Uno 로 HC-06 블루투스 슬레이브 모듈을 사용해 LED 깜박이기

사용된 부품

Arduino Uno R3 (Italy)
HC-06 블루투스 슬레이브 모듈

점퍼케이블

일단 먼저 HC-06 블루투스 슬레이브 모듈의 통신속도(Baud Rate)를 115200으로 변경해 줍니다
HC-06 블루투스 슬레이브 모듈은 기본적으로 통신속도가 9600 으로 설정되어 있습니다
하지만 아두이노에 코드를 업로드 할때는 통신속도가 115200 이기때문에 115200으로 통신속도를 변경해 줍니다


구성 배선도(HC-06 블루투스 슬레이브 모듈의 통신속도를 115200으로 변경)



위와 같이 배선을 한 후에 아래 첨부된 예제코드를 업로드해 줍니다

AT Baud.txt


--------------------------------------------------------------------------------------
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3);   //bluetooth module Tx:Digital 2 Rx:Digital 3

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600);
  Serial.println("ATcommand");  //ATcommand Start
}

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

그리고 나서 시리얼 모니터를 엽니다



시리얼 모니터에 AT 라고 치면 OK 라는 메세지가 뜹니다
이어서 AT+BAUD8 을 입력해 주면 ------>OK115200 이라는 메세지가 나옵니다
통신속도가 115200으로 정상적으로 변경된 것 입니다


BAUD8 이 통신속도 115200 으로 변경입니다, 만약 다른 속도로 변경하고 싶다면 아래를 참고해서 입력하면 됩니다

AT+BAUD8 //통신 속도를115200으로 변경

1 - 1200,  2 - 2400, 3 - 4800,  4 - 9600

5 - 19200,  6 - 38400, 7 - 57600,  8 - 115200

여기서 확인하고 넘어가야 할것은 만약에 통신속도를 다시 9600으로 되돌리고 싶을때 입니다
만약 통신속도를 다시 9600으로 되돌리고 싶을때는

--------------------------------------------------------------------------------------

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3);   //bluetooth module Tx:Digital 2 Rx:Digital 3

void setup() {
  Serial.begin(115200);
  BTSerial.begin(115200);
  Serial.println("ATcommand");  //ATcommand Start
}

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


블루투스 슬레이브 모듈이 115200 으로 통신속도가 변경된 상태이기 때문에

위처럼 코드의 빨간 부분 통신속도를 115200 으로 수정해서 업로드해 주어야 합니다
그리고 시리얼 모니터를 켜고 보드 레이트 역시 115200 으로 변경후 AT+BAUD4 를 입력하면 통신속도를 9600으로 바꿀 수 있습니다


이점 꼭 확인하고 넘어가도록 합시다~  


통신속도 변경이 성공적으로 끝났으면 아래와 같이 배선을 변경합니다

구성 배선도(HC-06 블루투스 슬레이브 모듈로 무선으로 코드 업로드해 보기)



위와 같이 배선을 하고 아두이노 IDE가 설치된 컴퓨터의 제어판에서 하드웨어/장치추가 메뉴에서

HC-06 블루투스 슬레이브 모듈을 추가해 줍니다


장치 검색이 끝나면 컴퓨터 마다 다른것 같지만 장치 번호를 입력하는것이 나오는 것 같습니다
장치번호를 입력해주면 정상적으로 장치가 인식이 됩니다 (정상적으로 장치가 인식이 되는게 중요합니다)


HC-06 블루투스 슬레이브 모듈이 인식이 되면 장치관리자를 열어서 포트를 확인해 봅니다


COM182 와 COM190 이 잡힌것이 확인 됩니다

(두개중 작은 숫자의 포트가 연결된 블루투스 슬레이브 모듈의 포트일 확률이 높습니다)

확인이 끝났으면 Arduino IDE를 실행 후 "도구----->보드----->Arduino Uno" , "도구----->포트----->COM182"
로 설정을 해줍니다
 



"파일---->예제----->Basic----->Blink" 코드를 업로드 해 줍니다
업로드 할때 주의해야 할 점은 컴파일 에서 업로드로 넘어가는 순간에

타이밍을 잘 맞춰서 아두이노 우노의 리셋버튼을 눌러주어야 한다는 것 입니다
(사용된 HC-06 블루투스 슬레이브 모듈에는 리셋 기능이 없기 때문에 아두이노 우노로 수동으로 리셋 버튼을 눌러 주어야 합니다)

프로젝트 동영상


동영상에서 보는 것 처럼 포트가 불안정해서 그런지 업로드 에러가 나기도 하고

업로드 과정중에 리셋버튼도 눌러줘야 하고 코드를 업로드 하는데 썩 그렇게 좋은 방법은 아닌것 같습니다


하지만 아두이노는 위처럼 블루투스 모듈을 사용해서 무선으로도 코드 업로드가 가능하고
또 다른 다양한 방법으로도 코드 업로드를 할 수 있다는것 확인하고 넘어가면 좋겠습니다~ 


AT Baud.txt
0.0MB
반응형

댓글