고급 예제

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

블루투스 통신으로 아두이노에 무선으로 코드 업로드하기

2017-02-27 10:37:39

개요

 

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

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

 

 

 

 

 

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

 

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

 

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

 

 

 

 

필요한 사전 지식

 

블루투스 모듈 ATcommand모드 사용하기 - https://kocoafab.cc/tutorial/view/619

 

 

 

 

부품 목록

 

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

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

아두이노, arduino, 블루투스, bluetooth, ATcommand, 업로드, 코드

홍성진 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

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