카테고리 없음

앱인벤터 블루투스 통신 어플 살펴보자.

abc0123 2017. 12. 5. 22:23
반응형

 

아직 앱인벤터를 익히고 있는 과정에서 새롭게 뭔가를 만들기 전에 이미 만들어진 예제들을 분석하면서 왜 그렇게 만들어졌는지 살펴보는 것도 공부가 될 거 같다는 생각이 든다. 특히 앱인벤터 블루투스 통신 관련된 건 한 번 만들어놓거나 분석을 해놓으면 계속 사용할 예제일 것 같아서 이미 만들어진 예제를 다시 하나씩 만들어보면서 완전한 내 것으로 만들어보고자 한다.

 

오늘 살펴볼 예제는 안드로이드 화면에 두 개의 버튼을 배치하고 [연결](listPicker) 버튼을 클릭하면 내 핸드폰에 등록된 블루투스 장치들의 목록을 보이게 하고 장치를 선택하면 그 녀석을 연결한다. 그리고 [종료] 버튼을 누르면 블루투스 연결을 끊도록 하는 예제인데 일단 앱 인벤터 홈페이지에서 버튼 등 필요한 컴포넌트를 배치해보자.

 

1. 앱인벤터 블루투스 디자인

 

레이아웃

 

▲ 먼저 my_bluetooth라는 프로젝트를 생성한 후 화면을 절반으로 나눠서 위쪽에 버튼 두 개를 가로로 배치하기 위해서 'HorizontalArrangement' 레이아웃을 넣고 가로는 화면을 가득 채우도록 했다.

 

 

버튼 배치

 

▲ [HorizontalArrangement] 레이아웃 위에 버튼 두 개(listPicker와 button)를 넣은 후 각각 배경색을 다르게 해서 구분을 해봤으며 가로와 세로 크기는 모두 [fill parent]로 설정한 후 text는 '연결하기'와 '종료하기'라고 입력을 했다.

 

블루투스 기능

 

▲ 다음으로 블루투스 기능을 사용하기 위해서 BluetoothClient와 공지 메시지를 띄우기 위한 Nofifler를 추가했다. 이제 이제 블록 도구로 이동해서 이것들을 제어할 코딩을 해보자.

 

2. 앱인벤터 블루투스 코딩

 

코딩 1

 

 

▲ 첫 번째 버튼인 [연결하기] (ListPicker1)을 눌렀을 때는 블루투스 주소 리스트를 출력하도록 하고 있는데& 만약 현재 핸드폰의 블루투스 기능이 켜져 있지 않다면 기능이 ON 상태이지 확인하라는 메시지를 출력하고 있다. 그리고 리스트가 출력된 후에 목록 중 장치를 선택하면 Connected라는 함수를 호출하도록 하고 있는데 이 함수는 바로 아래에서 만들기로 한다.

 

그리고 스크린의 타이틀에는 "연결되었습니다."라는 문자열을 출력하게 하고 공지 메시지를 띄워서 연결된 걸 다시 한 번 확인해주고 있다.

 

 

반면 [종료하기] 버튼을 클릭했을 때는 disconnected 함수를 호출하고 있는데 이 역시 바로 만들 함수이며 스크린 타이틀에는 "종료되었습니다."라는 문자열을 출력하고 역시 Alert 메시지를 띄워서 종료되었다는 걸 다시 한 번 알려주고 있다.

 

다음으로 각각의 버튼을 클릭했을 때 호출되었던 함수 connect와 disconnect 함수를 만들어보자.

 

코딩 2 함수

 

▲ connect 함수에서는 trueOrFalse 변수를 선언해서 블루투스에 연결이 된 후에는 첫 번째 버튼인 ListPicker1은 사용할 수 없는 상태로 만들고 두 번째 종료하기 버튼만 사용 가능한 상태로 만들고 있다. 그리고 disconnected 함수에서는 블루투스의 연결을 끊고 있으며 연결 상태를 false로 해주고 있는 모습이다.

 

전체 코딩

 

▲ 만들어본 앱 인벤터 예제 중에서는 조금 복잡한 편에 속하지만 직접 블록을 쌓으면서 하나씩 만들어보니 확실히 이해가 빠르다. 이제 앱을 핸드폰에 설치한 후 테스트를 해볼 텐데 먼저 핸드폰의 블루투스 기능이 꺼진 상태에서 실행을 해보면....

 

기능 켜기

 

▲ 이처럼 코딩 과정에서 입력한 대로 블루투스의 상태를 확인하라는 메시지가 출력된다. 이제 기능을 켜고 다시 앱을 실행해볼 텐데 여기서는 지난 글에서 만들어봤던 MY_TANK라는 아두이노 블루투스 모듈에 연결을 해볼 것이다.

 

 

영상처럼 앱을 실행해서 [연결하기] 버튼을 누르면 블루투스 목록이 나타나고 해당 장치를 선택하면 입력한 메시지인 "블루투스가 연결 되었습니다."가 출력된다. 참고로 장치가 연결되었다는 건 탱크 위에서 깜빡이고 있는 블루투스 모듈로도 확인할 수 있다. 이 녀석은 대기 상태에서 깜빡거리다가 연결이 되면 LED가 계속 켜져 있기 때문에 쉽게 확인이 가능하며 [종료하기] 버튼을 누르면 연결이 종료되었다는 메시지가 출력되는 걸 확인할 수 있다.

 

이렇게 해서 앱 인벤터의 블루투스 어플을 이해하기 위해서 이미 만들어진 예제를 다시 하나씩 만들어보면서 내 걸로 만들어봤다.

반응형