고급 예제

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

(1)안드로이드x아두이노 블루투스 통신- LED 불 깜박이기

2015-03-16 15:11:41

개요

 

* 이 컨텐츠를 보시기 전에 안드로이드와 아두이노 간의 블루투스 통신 기초를 보고 오시기 바랍니다.

 

안드로이드와 아두이노 간의 블루투스 통신 기초에서 아두이노 블루투스 모듈을 이용하여 안드로이드와 블루투스 통신을 해보았습니다. 이제부터 간단한 예제들을 통해서 아두이노의 각 부품들을 제어해 보겠습니다.

 

이 컨텐츠에서는 안드로이드에 버튼을 하나 띄워서 그 버튼을 누를시 오렌지 보드에 내장 LED(13번 LED)를 깜박이는 예제를 실습해 보겠습니다.

 

 

 

 

부품 목록

 

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

 

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

 
 

 

하드웨어 MaKing

 

회로도

브레드보드 레아아웃


`

소프트웨어 Coding

 

 

#include <SoftwareSerial.h> // 블루투스 통신을 위한 SoftwareSerial 라이브러리를 불러온다.
  
  SoftwareSerial BTSerial(2, 3); // SoftwareSerial(RX, TX)
  byte buffer[1024]; // 데이터를 수신 받을 버퍼
  int bufferPosition; // 버퍼에 데이타를 저장할 때 기록할 위치
  boolean temp = 0;
  
void setup(){
  BTSerial.begin(9600); 
  Serial.begin(9600); 
  pinMode(13, OUTPUT);
  bufferPosition = 0; // 버퍼 위치 초기화
}

void loop(){
  if (BTSerial.available()){ // 블루투스로 데이터 수신
    byte data = BTSerial.read(); // 수신 받은 데이터 저장
    Serial.write(data); // 수신된 데이터 시리얼 모니터로 출력
    buffer[bufferPosition++] = data; // 수신 받은 데이터를 버퍼에 저장
  
    if(data == '1'){  // 블루투스를 통해 '1' 이 들어오면
      if(temp == 0){  // LED가 꺼있을 경우 LED를 켭니다.
        digitalWrite(13, HIGH);
        temp = 1;
      }else{          // LED가 켜져있을 경우 LED를 끕니다.
        digitalWrite(13, LOW);
        temp = 0;
      }
    }
      
    if(data == '\n'){ // 문자열 종료 표시
      buffer[bufferPosition] = '\0';
      bufferPosition = 0;
    }  
  }
}

 

 

 

소프트웨어 설명

 

우선 아두이노에 블루투스 모듈을 연결하고 위의 코드를 업로드 합니다. 아두이노에서는 이 두 과정만 하면 준비가 완료됩니다.

 

아두이노 준비가 완료되었으면, 그다음으로는 블루투스 모듈과 스마트폰을 페어링 합니다. 디바이스 설정 -> 블루투스를 들어가셔서 검색을 누르시면 맨 왼쪽 화면과 같이 목록이 나옵니다. 그중에서 블루투스 모듈을 찾아서 선택합니다.(위에서 사용한 블루투스 모듈은 HC-05입니다.)

 

블루투스 모듈을 선택하면 가운데 사진과 같이 PIN번호를 입력하는 화면이 나옵니다. 여기에 1234나 0000을 입력하신 후 확인을 누르세요.(HC-05는 1234를 입력하시면 됩니다.)

 

PIN번호를 입력하셧으면 마지막 사진과 같이 등록된 기기에 블루투스 모듈이 있는것을 확인할 수 있습니다. 여기까지 하셧으면 블루투스 모듈과 스마트폰 사이에 페어링이 완료 되었습니다.

 

그다음 링크를 통해 블루투스로 LED를 제어할 안드로이드 어플(BT_Button1.apk)을 받으신 후, 실행하시면 등록된 블루투스 모듈 목록이 나옵니다. 이 목록에서 자신의 블루투스 모듈을 선택합니다. 그러면 밑의 화면과 같이 나옵니다. LED Control 버튼을 누르시면 아두이노 내장 LED의 불이 켜집니다.(13번 LED)

 

  if (BTSerial.available()){ // 블루투스로 데이터 수신
    byte data = BTSerial.read(); // 수신 받은 데이터 저장
    Serial.write(data); // 수신된 데이터 시리얼 모니터로 출력
    buffer[bufferPosition++] = data; // 수신 받은 데이터를 버퍼에 저장
  
    if(data == '1'){
      if(temp == 0){
        digitalWrite(13, HIGH);
        temp = 1;
      }else{
        digitalWrite(13, LOW);
        temp = 0;
      }
    }

스마트폰에서 버튼을 누르게 되면 '1'이라는 문자값을 보냅니다.( ★ 숫자 1이 아닙니다.) 아두이노에서는 블루투스를 통해 신호가 들어오면 data라는 변수에 저장하고, 이 값을 비교해서 '1'일 경우엔 LED를 제어하고 그 외일 경우는 무시합니다.(안드로이드 어플에서 다 제어해서 보내므로 1아니면 \n(엔터)값만 들어오게 됩니다.)

 

LED의 상태값을 저장하기 위해 temp 변수를 선언하여 LED가 켜져있을 경우 temp값은 1로, LED가 꺼져있을 경우 temp값을 0으로 저장 합니다.

 

이 컨텐츠를 응용하여 아두이노의 다른 부품을 제어하실 경우 버튼을 누를 때 '1' 문자값이 오는것을 기억하시고 이를 이용해서 if문을 통해 제어하시면 됩니다.(안드로이드 어플을 수정하실 수 있으신 분은 댓글로 문의 남기시면 어플 코드를 직접 보내드립니다.)

* 다음 컨텐츠는 블루투스를 이용하여 아두이노 3색 LED를 각각 제어해 보겠습니다.(Seekbar or Button)

 

kocoafabeditor

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

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

김선호 2015-05-02 11:51:09

그대로 따라했는데 안되네요. 아마 수신을 못하는 것 같은데(시리얼 모니터에서 스마트폰으로 데이터 보내기는 성공했습니다.) 불량일까요? 아니면 제가 뭔가 놓친부분이 있나요?

박태훈 2015-05-03 14:41:19

안드로이드 어플코드를 얻을 수 있을까요? 블루투스통신 관련으로 개발중 참고하고 싶습니다. a1176065228@gmail.com입니다.

전성운 2015-05-17 20:50:23

안녕하세요. 혹시 안드로이드 어플 코드를 얻을 수 있을까요? tjddns6480@naver.com 입니다!

자바자 2015-05-22 22:09:24

안녕하세요~ 어플코드 소스를 얻고싶습니다~ jihun5008@naver.com입니다 감사합니다.

김희진 2015-05-23 00:20:40

어플소스좀 얻고싶습니다 블루투스관련공부중인데 참고좀하고싶어요. heejin0355@naver.com 입니다!.

이찬섭 2015-06-07 16:19:08

앱소스를 받고 싶습니다. cscs@naver.com입니다.

김병원 2015-06-15 14:50:23

어플소스좀 부탁드립니다. byyj18@naver.com 입니다.

오영균 2015-06-22 11:05:34

어플 소스를 얻고싶습니다. 블루투스도 공부중이라 oyk0212@naver.com 이요 . 감사합니다.!!!

정은영 2015-07-18 11:41:12

어플소스부탁드릴게요! aouj36@gmail.com

김지영 2015-08-14 09:52:30

어플소스 부탁드립니당! whl3538@gmail.com

이효인 2015-08-19 10:39:05

안녕하세요. 아두이노 열심히 공부하고 있는 초보 개발자 입니다. 어플소스가 필요한데 어플 소스좀 부탁 드립니다.
2hyoin@naver.com .
수고하세요

송규명 2015-09-11 13:59:02

제가 버튼으로 LED제어하는 어플을 만들고싶은데 어플소스좀 부탁드리겠습니다 songgyumyung@gmail.com
입니다

윤지호 2015-09-15 17:43:38

안드로이드 어플 소스 좀 부탁드려요 ㅠㅠ dbswlgh16@naver.com 여기로 보내주시면 감사하겠습니다!

김진우 2015-09-20 17:49:41

안드로이드 어플 소스좀 부탁드릴게요ㅠ nennen2@naver.com 부탁드립니다 ㅠㅠ

봉자씨 2015-09-23 17:07:47

앱 소스 부탁을 드리고 싶어요.... come-here@daum.net 부탁드립니다^^

kocoafab 2015-09-25 08:44:40

앞으로 모바일 어플리케이션 및 다양한 소스가 "튜토리얼 > 다운로드"에 공개될 예정입니다.
다양한 활동을 통해 획득한 포인트로 다운로드 가능하니, 자주 방문하셔서 여러분의 많은 이야기를 나눠주세요. ^^
특히 프로젝트 공간에 여러분의 하시는 것에 대한 이야기를 나눠주시면 많은 도움이 되실거에요.

서민정 2015-10-23 17:16:39

안녕하세요~ 해당 글에 대한 안드로이드 소스를 부탁드리고 싶어서요~ kse4931@hanmail.net 로 부탁드릴 수 있을까요?

이슬기 2015-12-19 23:21:28

안녕하세요 해당 글에대한 안드로이드 소스코드를 참고하고 싶은데ㅜㅜ 보내주실 수 있으시면 lsg3514@naver.com 로 보내주시면 감사하겠습니당!

박남혁 2016-02-22 15:47:26

안드로이드 소스코드를 수정하고 싶습니다. 메일부탁드립니다. hot.chuu@gmail.com

kocoafabeditor 2016-02-22 16:34:18

죄송합니다. 위에서 만든 어플은 apk 파일만 공유하고있습니다. ble관련 어플 소스는 튜토리얼 > 다운로드 탭에 있는 어플 소스 코드를 이용하셔서 해보시면 좋을 것 같습니다!

탁혜진 2016-04-04 12:50:50

안녕하세요!! 제가 Led제어를 공부하고 있는데 모르는 게 너무 많아서요ㅜㅠ
어플소스코드 부탁드려요!!! thj0905@naver.com

조은비 2016-05-02 18:47:00

안녕하세요~ 안드로이드 어플 소스 부탁드립니다ㅠㅠ
jombie94@naver.com

조은비 2016-05-02 18:47:04

안녕하세요~ 안드로이드 어플 소스 부탁드립니다ㅠㅠ
jombie94@naver.com

김국회 2016-05-17 12:07:07

안드로이드 어플소스 좀 보내주실수 있을까요 공부하는데 꼭 필요할거 같습니다
제 메일은 kgh4803@nate.com 입니다

제임스킴 2016-05-23 20:56:35

안녕하세요! 안드로이드 아두이노 블루투스통신 공부하는 학생입니다.
안드로이드 소스 좀 공유 가능하신가요!
제 메일은jinm1357@naver.com입니다.

강영재 2016-05-31 01:15:02

아두이노 안드로이드 연동으로 플젝진행하려는 학생입니다.
소스좀 보내주시면 공부하는데 많은 도움이 될 것 같습니다!!
grabass@naver.com 메일주소입니다.
부탁드리겠습니다!! 감사합니다~~!!

강영재 2016-05-31 01:15:07

아두이노 안드로이드 연동으로 플젝진행하려는 학생입니다.
소스좀 보내주시면 공부하는데 많은 도움이 될 것 같습니다!!
grabass@naver.com 메일주소입니다.
부탁드리겠습니다!! 감사합니다~~!!

김정욱 2016-07-19 10:20:22

안녕하십니까! 좋은 글 감사합니다!!
저도 어플 소스를 좀 보내주시면 도움이 많이 될 것 같습니다!!
kimmail93@naver.com 로 시간이 가능하실 때 보내주시길 바랍니다!
감사합니다!!!

조여규 2016-07-27 16:11:04

안드로이드 어플 소스 부탁드립니다!! dualsrjsqkd@gmail.com입니다 :)

조여규 2016-07-27 16:11:05

안드로이드 어플 소스 부탁드립니다!! dualsrjsqkd@gmail.com입니다 :)

강상호 2016-09-12 14:16:11

안녕하세요
이번에 아두이노 관련 프로젝트를 하고 있습니다.
이번 예제의 안드로이드 소스코드를 보면서 공부하고 싶습니다.
sh21kang@naver,com 으로 안드로이드 소스좀 부탁드립니다.

김희진 2016-10-14 16:52:04

아두이노 블루투스 모듈관련 프로젝트진행중입니다.
안드로이스 소스에서 많은 도움을 받을수 있을 것 같습니다.
dhakdd@naver.com 으로 안드로이드 소스좀 보내주실수 있으신가요?

임은성 2016-11-01 09:58:58

아두이노 블루투스 모듈관련 프로젝트진행중입니다.
소스를 보면서 공부하고 싶습니다.
소스좀 보내주실수 있으신가요? 부탁드립니다.
dmstjdnet@naver.com

강희환 2016-11-04 11:03:14

버튼으로 LED제어하는 어플을 만들고싶은데 어플소스좀 부탁드리겠습니다. heehwan120@naver.com
입니다

강성태 2016-11-10 18:50:37

안녕하세요. 졸업 작품으로 블루투스에서 아두이노로 신호를 넘기는 부분에서 막혀서 조언 부탁드립니다.(블루투스에서 아두이노 센서로 신호를 넘겨서 DC 모터의 속도를 바꾸는 겁니다.) 관련 소스도 같이 받을수 있을까요? kst911005@nate.com

Jw6319 2016-11-21 17:25:41

안녕하세요 대학교 1학년 전공수업 프로젝트에서 안드로이드 신호를 블루투스로 넘겨야하는데 apk파일의 소스코드가 궁금해서요 부탁드립니다 jw6343@naver.com

이형호 2017-02-10 12:00:59

채팅 프로그램을 가지고 수정을 해야 하는거군요 ㅜ

김남렬 2017-02-14 18:54:05

안녕하세요! 아두이노와 안드로이드를 공부하고있는 대학생입니다!
어플소스 좀 받아볼수있을까요??ㅠㅠ kaee4@naver.com 으로 꼭부탁드립니다!

이형호 2017-02-17 11:25:03

안녕하세요 hyungho76@gmail.com 안드로이드 어플 소스 받아 봤으면 합니다.

이카루스 2017-03-31 16:20:51

소스 요청이 엄청 많네요..

오징어 2017-04-07 14:51:31

안녕하세요 tmddnjs103@naver.com 안드로이드 어플 소스 받을수있나요 ㅠㅠ?
지금 안드로이드랑 아두이노를 공부중인데 안드로이드에서 너무 막혀서요ㅠㅠ..

스타붴 2017-04-19 20:13:08

어플 소스좀 받을 수 있을까요 ㅠㅠ..? alswl775@naver.com 입니다 부탁드립니다ㅠㅠ

위버 2017-04-23 20:35:42

혹시 어플 소스 공유해주실 수 있으신가요ㅠ dpswpf97@gmail.com 입니다 부탁드리겠습니다ㅠ

은수짱 2017-05-14 16:27:33

대학생 작품에 안드로이드로 아두이노를 블루투스 통신하여 안드로이드를 제어하는것을 연구중인데 잘 안되서 소스를 참고하고 싶습니다 소스좀 보내주세요 dmstn1124@naver.com입니다 부탁드립니다~

뤼타민 2017-05-19 09:46:50

안드로이드 블루투스 공부하고있는데 어플소스를 참고해서 테스트 해보고 싶습니다. 공유 부탁드릴게요. khr8160@nate.com 입니다.

최인재 2017-06-02 21:37:55

안녕하세요! 블루투스 공부하고 있습니다. 어플소스 참고해서 테스트해보고 싶습니다. 소스 좀 부탁드립니다!
eois@naver.com

보름달 2017-06-09 16:11:10

안녕하세요, 블루투스를 공부하고 있는데 아두이노와 통신해서 led 연결하는 데 연결이 잘 안되서 소스를 통해 테스트하고 싶습니다. 공유 부탁드려요!
hhjung97@naver.com

룰루랄라 2017-06-09 19:25:56

안녕하세요 안드로이드와 아두이노간 블루투스 통신을 하려 합니다 혹시 안드로이드 어플 소스를 테스트 하고 싶은데 코드 공유 가능하신가요 부탁드립니다 uyh1023@naver.com

지꺼리 2017-07-18 17:17:43

안녕하세요 블루투스 통신공부하다가 잘안되서 그런데 어플소스 공유부탁드려요 op227@naver.com

임소영 2017-08-15 21:57:05

안녕하세요 블루투스 공부중인 학생입니다. 혹시 앱 소스를 공유해주실수 있으신가요??ㅠㅠㅠㅠ s2017s35@e-mirim.hs.kr 입니다. 부탁드립니다 ㅠㅠ 너무 좋은 자료여서요 ㅠㅠㅠ

김규전 2017-09-15 15:09:15

안녕하세요. 아두이노 안드로이드 통신 공부중인 학생입니다.
혹시 안드로이드 소스 공유해주실 수 있으신가요?
지금 안드로이드에서 막혀서 아무것도 못하는 상태여서
공유부탁드리고싶습니다.rlarbwjs@naver.com

아인 2017-09-25 16:32:33

아두이노 블루투스 관련 프로젝트 진행하고 있는 학생입니다. 혹시 앱소스코드를 따로 공유해주실 수 있으신가요?
가능하시다면 ain5977@hanmail.net으로 부탁드립니다!!!

김혜리 2017-10-22 20:10:50

안드로이드 소스 공유해주시면 안될까요?ㅠㅠ
harry5948@naver.com

digital 2018-02-02 14:00:01

안녕하세요
대학교에서 공부중인데 어플리케이션 소스좀 보면서 더 공부하고싶은데
어플소스좀 부탁 드려도 될까요????
rjsdud5635@naver.com 부탁드립니다.

푸푸민우 2018-05-17 23:05:17

안녕하세요
전자공학과 학생입니다.
안드로이드로 아두이노 led를 제어하는 공부를 하는중인데
어플 소스코드좀 참고 하고싶습니다.
vnvnalsdn1@naver.com
부탁드립니다ㅠ.ㅠ

공학생 2018-08-19 21:46:33

안녕하세요! 전자공학과 학생입니다!
아두이노 사용해서 led 제어법 공부하는 학생인데, 어플소스쫌 정말 간곡히 부탁드립니다!!
jeong4726@naver.com

Ssoobly 2018-11-11 21:11:04

안녕하세요 매번 좋은 자료로 많은 공부하고 있습니다!!
혹시 죄송하지만 어플소스 좀 부탁드려도 될까요~
ash950310@naver.com

김용준 2018-12-02 22:52:48

임베디드 시스템 공부하고 있는 학생입니다.
어플 소스 부탁드립니다
yog0810@naver.com