안녕하세요. 애드라이프 입니다.
정말 오랜만에 DIY프로젝트 글을 쓰는것 같네요..
개인적으로 많이 바빠서 하고 싶은건 많은데
시간이 없었어요.ㅠㅠ
이번에 준비한 프로젝트는
아두이노 블루투스 모듈편과
안드로이드 어플의 꼴라보레이션!!!
[ 준비물 ]
Arduino Nano 1EA
HC-06 bluetooth module
점퍼선 4EA
브레드 보드
usb케이블(아두이노 전원공급 및 통신용)
안드로이드 폰
아두이노는 어떤걸 쓰셔도 상관없지만
이번 포스팅에서 나노를 사용할 예정이므로
준비물에 나노를 적었습니다!!
Arduino Nano보드 사용법은 아래링크 참고해주세요.
먼저 아두이노 세팅부터 시작하겠습니다.
HC-06을 사용하기 위해선 AT명령을 통해
모듈 세팅을 해야합니다.
HC-06의 연결 및 아두이노 프로그램과
AT명령어에 대한 포스팅은 이미 진행 하였으니
아래 포스팅 참고하시면 쉽게 따라오실 수 있습니다.
해당 포스팅은 다른사람이 만들어 놓은
블루투스 어플을 이용하여 아두이를 통해
LED를 제어하는 방법을 다루고 있습니다.
그런데 저는 제 방식대로 표현하고 싶은게
많아서 어플을 만들어 버렸어요..
우선 결과를 먼저 보여드릴께요!!
우선 제가 만든 어플 초기화면 입니다.
여러가지 기능을 넣어 사용하고 싶은 마음에
제작한 어플이고 이번에 간단하게 보여드를건
가장 위에 있는 안드로이드와 다른창치
버튼을 눌러 나오는 화면으로 진행합니다.
data-ad-unit = "DAN-rkxb4pi9ix4n"
data-ad-width = "300"
data-ad-height = "250">
안드로이드와 다른창치 버튼을 눌렀을때
나오는 화면입니다. 블루투스 모듈과 페어링을
위해선 연결 버튼을 클릭합니다.
개인정보 보호를 위해 블러 처리하였습니다.
위와 같이 페어링 가능한 기기들의 목록이 뜹니다.
해당 목록에서 자신이 연결하고자 하는 기기를
선택하면 연결을 시도합니다.
선택된 기기와 연결이 성공하면
Connected to 기기 이름:기기 주소
식으로 텍스트가 표기됩니다.
잠깐 주의 사항으로 어플사용전
블루투스 모듈을 안드로이드 폰에
사용가능 기기목록으로 추가를 한다음 진행해주세요.
폰에서 지원하는 기본 블루투스로 목록추가는 가능합니다.
이제 연결도 되었으니 아두이노와 통신이 잘되는지 볼까요?
먼저 어플에서 Data를 전송하겠습니다.
데이터를 보내면 어플에는 이런식으로 보이게 되고
아두이노 쪽에는 시리얼 모니터로 확인시
받은 데이터와 길이를 함께 표현해주고 있습니다.
위 사진처럼 데이터가 보이게 하려면
블루투스 모듈에 AT명령을 끝낸 후
아래 프로그램을 업로드 해주세요.
#include <SoftwareSerial.h> //시리얼통신 라이브러리 호출
int blueTx = 2; //Tx (보내는핀 설정)at
int blueRx = 3; //Rx (받는핀 설정)
String ReciveBTString;
String ReciveSRString;
const char *ReciveSR_CRLF;
char ReciveBT;
char ReciveSR;
SoftwareSerial mySerial(blueTx, blueRx); //시리얼 통신을 위한 객체선언
void setup()
{
Serial.begin(115200); //시리얼 9600
mySerial.begin(115200); //블루투스 9600
}
void loop()
{
while(mySerial.available()) //블루투스 수신데이터가 있는동안
{
ReciveBT = (char)mySerial.read(); //mySerial int 값을 char 형식으로 변환
ReciveBTString+=ReciveBT; //수신되는 문자를 myString에 모두 붙임 (1바이트씩 전송되는 것을 연결)
// Serial.println(ReciveBTString);
delay(5); //수신 문자열 끊김 방지
}
while(Serial.available()) { //시리얼 수신데이터가 있는동안
ReciveSR = (char)Serial.read();
ReciveSRString+=ReciveSR;
// Serial.println(ReciveSRString);
delay(5); //수신 문자열 끊김 방지
}
if(!ReciveBTString.equals("")) //ReciveBTString 값이 있다면
{
Serial.print("Recive : ");
Serial.println(ReciveBTString);
Serial.println(ReciveBTString.length());
ReciveBTString=""; //초기화
}
if(!ReciveSRString.equals("")) //ReciveSRString 값이 있다면
{
Serial.print("Send = ");
Serial.println(ReciveSRString);
mySerial.println(ReciveSRString+"\r\n");
Serial.println(ReciveSRString.length());
ReciveSRString=""; //초기화
ReciveSR_CRLF="";
}
}
저는 블루투스와 아두이노의 통신 속도를 115200으로
설정해서 하고 있지만 여러분들은 자신이 설정하고자 하는
값으로 변경하셔서 사용하셔야합니다.
예를들어 AT명령으로 블루투스 설정시
통신속도를 9600으로 했는데 위 프로그램에
통신속도를 저랑 같은 115200으로 설정하면
통신이 될리가 없겠죠?
어플에서 데이터를 보내봤으니
이제 아두이노에서 데이터를 보내보겠습니다.
아두이노 시리얼 모니터에
Welcome이라고 입력했더니
위 사진처럼 잘 수신되는 것을 볼 수있습니다.
이렇게만 사용할수 있더라도 정말 많은 TEST에
활용 할 수 있겠죠?
해당 어플은 구글 플레이스토에 출시해 놓았으니
마음껏 쓰시면 되구요.
어플 간단 사용법은 아래 링크 참고해주세요.
[안드로이드/어플 론칭] - [ 안드로이드 ] Between Bluetooth 어플 출시
제가 어플제작하는 고수가 아니라
부끄러워 코드를 공개하진 않지만
제가 어플에 사용한 기능중에 궁금하신점이
있다면 알려드릴 수 있습니다!!
아닌건 저도 잘 몰라요!!!
여기까지 줄이겠습니다...
다음에는 더욱 유익한 포스팅으로 돌아오겠습니다.
by 애드라이프
'DIY 프로젝트' 카테고리의 다른 글
미세먼지를 오염도와 온습도까지 측정해주는 측정기 만들기 - 3편(완성) (1) | 2019.01.27 |
---|---|
미세먼지를 오염도와 온습도까지 측정해주는 측정기 만들기 - 2편 (0) | 2019.01.24 |
미세먼지를 오염도와 온습도까지 측정해주는 측정기 만들기 - 1편 (0) | 2019.01.23 |
간단하게 어디든 두고 쓸 수 있는 푸시형 LED등 만들기 (0) | 2019.01.20 |
아두이노(Arduino) 어두운 통로를 밝혀줄 인체감지센서등 만들기 2편 (0) | 2019.01.11 |