고급 예제

다양한 도구들을 가지고 마음껏 응용해보세요.

블루투스통신-무선으로 코드 업로드

2017-02-27 10:37:39

개요

 

Arduino에 코드를 업로드하기 위해서는 대부분의 경우(99%이상) USB케이블로 연결하여 사용합니다.

가장 기본적인 방법이자 제일 무난한 방법이죠.

 

 

 

 

 

하지만 USB케이블로 연결하여 사용하는 방법 외에 블루투스통신으로 무선으로 코드를 업로드할 수 있습니다.

 

그 방법이 그렇게 복잡하지 않기 때문에 쉽게 따라해볼 수 있습니다.

 

이번 글에서는 무선으로 아두이노코드를 업로드 하는 방법에 대해 알아보겠습니다.

 

 

 

 

부품 목록

 

NO 부품명 수량 상세설명
1 오렌지보드 1 UNO 호환보드
2 블루투스 모듈 1 HC-06
3 브레드보드 1  
4 점퍼 케이블 4 M/M케이블

 

부품명 오렌지 보드 블루투스 모듈 브레드보드 점퍼 케이블
파트
 

 

 

 

 

하드웨어 making

 

 

 

※ ATcommand를 사용할 시에는 Tx핀과 Rx핀을 0번, 1번 핀이 아닌 2, 3번 핀 사용

   무선으로 코드 업로드 시에 0번, 1번 핀 사용(위 사진)

 

 

 

 

소프트웨어 coding

 

ATcommand를 사용하여  BTSerial통신속도 변경하기

 

#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());
}

 

 

 

 

코드 무선 업로드하기

 

먼저 무선으로 코드를 업로드 하기 위해서는 HC-06의 통신속도를 9600에서 115200으로 변경해야 합니다.

 

위의 코드를 업로드 시킨 다음에 ATcommand를 사용하여 통신속도를 115200으로 변경합니다.

 

 

※ 통신속도를 115200으로 변경하는 이유는 아두이노에 코드가 올라가는 속도가 115200입니다.

 

 

 

 

<AT+BAUD8을 통해 HC-06의 통신속도를 115200으로 변경>

 

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

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

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

 

 

 

 

통신 속도를 변경하였으면 블루투스의 Tx핀과 Rx핀을 각각 아두이노의 0번, 1번 핀에 다시 꽂습니다.

(아두이노의 0번 핀과 1번 핀은 아두이노가 컴퓨터와 UART통신을 할 때 사용하는 핀입니다.)

 

그 다음 코드를 업로드 시킬 컴퓨터에서 HC-06모듈을 장치추가합니다.

 

 

 

 

 

 

 

장치추가가 끝나면 일반 소스코드 업로드와 마찬가지로 아두이노IDE에서 포트를 설정하고 코드를 업로드합니다.

단 포트를 체크할때는 bluetooth의 포트 중 Rx포트를 체크합니다.

(포트를 찾는 방법은 둘 중에 번호가 낮은 번호를 체크하면 되는 듯 합니다. 만약 못찾겠다 싶으면 두 포트를 모두 체크해보시면 됩니다.)

 

 

 

 

동영상

 

 

 

 

 

위의 영상은 blink코드를 무선으로 업로드한 영상입니다.

 

보시면 알겠지만 처음 상태에서는 아두이노의 13번 LED는 깜빡거리지 않지만 코드를 업로드하고 나서는 0.1초 간격으로 13번 LED가 깜빡거립니다.

 

업로드 할 때 주의하실점은 IDE에서 업로딩이 뜨는 순간 아두이노의 리셋버튼을 클릭해주어야 합니다.

리셋버튼을 누르지 않았을 경우 업로드가 되지 않습니다.

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

블루투스모듈, 아두이노, 오렌지보드

홍성진 2017-06-07 14:37:55

여기서 그대로 보고 따라했는데요..mpu6050 각도소스를 무선으로 업로드할려고 하니깐..리셋버튼을 눌렀는데도 업로드 완료가 안되고 계속 업로드인 상태입니다..그리고 결국엔 port busy가 떠서 오류가 나는데..해결방법좀알려주시면감사하겠습니다..ㅠ

YJU 2017-08-11 20:58:12

혹시 아두이노와 레고 마인드 스톰 nxt간 블루투스 통신으로 문자나 숫자 전송이 가능한가요? 가능하다면 어떻게 하는 건가요?

김준협 2017-08-16 12:12:29

정말감사합니다!

임관민 2017-08-18 16:50:41

혹시 블루투스 모듈 HC-06이 아닌 BT05-A 인 BLE 모듈을 사용해서는 무선 업로드가 안되는 건가요??
가능하다면 방법을 알려주시면 감사하겠습니다 ^^

하마 2017-08-29 12:11:50

blink 예제를 업로드 하니,
avrdude: ser_open(): can't open device "\\.\COM13": 세마포 제한 시간이 만료되었습니다.
이런 메세지가 뜨네요 ㅠㅠ

박재현 2017-10-09 18:27:09

무선으로 보드에 데이터를 줘서 센서를 작동시키려는 실험을 하고 있는 데 많은 도움이 되었습니다. 감사합니다.

지에프솔 2018-05-29 01:41:48

좋은 자료 감사합니다.

BLUUU 2018-11-03 23:24:24

잘 읽었습니다.

김우정 2018-11-23 17:06:00

혹시 HM-10으로 무선 업로드가 가능한가요??