중급 예제

약간은 익숙하시거나 익숙해지셨나요? 그렇다면 조금더 깊이 다뤄볼까요?

앱 인벤터2를 이용하여 BLE 통신을 해봅시다.

2018-04-10 09:31:54

개요

 

지난번 앱 인벤터2를 이용하여 블루투스 통신을 해봅시다. 을 통해서 앱인벤터에 대해 간단히 알아보면서 블루투스 통신이 가능한 어플을 만들어 봤습니다.

 

이번 컨텐츠에서는 블루투스가 아니라 BLE(블루투스 4.0) 를 이용하여 통신하는 어플을 만들어 오렌지 BLE보드와 통신을 해보고, 이 어플을 이용하여 간단하게 오렌지 BLE보드의 13번 LED를 제어해보겠습니다.

 

 

 

 

이 컨텐츠는 전에 올려놓은 "앱 인벤터2를 이용하여 블루투스 통신을 해봅시다." 컨텐츠에서 기초 사용법을 익히고 보시는 것을 추천 드립니다.

 

 

부품 목록

 

NO 부품명 수량 상세설명
1 오렌지 BLE 보드 1  

 

부품명 오렌지 BLE 보드
사진

 

 

 

 

소프트웨어 Coding

 

아두이노 소스 코드

코드를 작성 후 오렌지보드에 업로드 해줍니다.

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(4, 5);   

void setup() {  
  BTSerial.begin(9600);
  pinMode(13, OUTPUT);
}

void loop() {
  if (BTSerial.available()){
    char data = BTSerial.read();
    Serial.println(data);
    
    if(data == '0'){
      digitalWrite(13, HIGH);
    }

    else if(data == '1'){
      digitalWrite(13, LOW);
    }
  }
}

 

 

오렌지보드에 코드를 업로드 하셨으면, 이번에는 앱 인벤터2를 이용하여 블루투스 통신이 가능한 어플을 만들어 봅시다.

 

앱인벤터2에서 BLE 기능을 추가하기 위해서는 간단한 절차가 필요합니다.

 

우선 http://appinventor.mit.edu/extensions 에 접속하셔서 빨간 네모칸에 있는 BluetoothLE.aix 파일을 다운 받습니다.

 

 

그다음 http://ai2.appinventor.mit.edu/ 에 접속하신 후 새 프로젝트를 만들어 준 후, 팔레트 -> Extension -> import extension 에서 파일 선택버튼을 누른 후 위에서 받은 bluetoothLE.aix 를 선택해줍니다.

 

 

 

제대로 설치가 되었으면 Extension에 BluetoothLE 가 추가됩니다.

 

 

 

설치가 되었으면 Viewer화면에서 밑의 이미지와 같이 도구들을 배치해 줍니다.

* 꼭 똑같이 만드실 필요는 없습니다. 부품들만 빠지지 않고 들어 갈 수 있도록 배치해주세요.

 

 

 

 

 

레이아웃을 만드신 후 Blocks 탭에 들어가서 아래와 같이 블럭을 만들어 줍니다.

* 블럭은 해당 블럭의 이름을 보시고 그 이름에 해당하는 탭에 들어가시면 있습니다.(EX : BluetoothLE1.StartScanning 블럭의 경우 BluetoothLE1 탭에 있습니다.)

 

 

 

위 블럭을 다 만드셨으면 Build 메뉴에서 QR코드나 APK 파일로 바꿔 핸드폰에 설치해 봅시다.

* QR코드의 경우 QR코드 리더 어플을 이용하시고, APK파일의 경우 USB케이블을 통해 파일을 스마트폰에 넣고 설치하시면 됩니다.

 

 

 

어플을 실행하시면 밑의 화면과 같이 어플이 실행됩니다. 아래 SCAN 버튼을 누르면 밑 검은색 부분에 주변 BLE보드 목록이 나옵니다. 목록 중에 BLE보드를 찾으셧으면 선택한 후 CONNECT 버튼을 눌러주시면 연결됩니다.

 

 

 

연결 후 ON / OFF 버튼을 누르시면 오렌지 BLE 보드 내장 LED를 제어할 수 있습니다.

 

 

 

 

소프트웨어 설명

 

 

BLE 장치를 호출하여 리스트에 출력하는 블럭입니다. 호출 BluetoothLE1.StartScanning 블럭이 실행되면 오른쪽에 언제 BluetoothLE1.DeviceFound 함수 블럭이 활성화 되고 검색된 BLE 장치들이 리스트에 하나씩 추가되게 됩니다.

 

 

 

호출 BluetoothLE1.연결 블럭은 현재 리스트에서 선택한 BLE 장치를 연결하는 블럭입니다. BLE 장치가 연결이 되면 오른쪽에 언제 BluetoothLE1.Connected 함수 블럭이 활성화 되며, 함수가 활성화 되면 BLE 장치 검색 리스트가 사라지며 CONNECT 버튼이 DISCONNECT로 바뀌게 됩니다.

 

 

 

호출 BluetoothLE1.연결 끊기 블럭은 현재 연결된 BLE 장치의 연결을 끊는 블럭입니다. BLE 장치와의 연결이 끊기게 되면 오른쪽에 언제 BluetoothLE1.Disconnected 함수 블럭이 활성화 되며, 함수가 활성화 되면 DISCONNECT 버튼이 CONNECT 로 바뀌게 됩니다.

 

 

 

스마트폰에서 BLE를 통해 데이터를 전달하는 블럭입니다. 맨 밑 블럭 마지막 줄에 values 부분이 BLE를 통해 전달되는 데이터 값입니다.(* 위 이미지에서는 '0' 이 전달되게 됩니다.)

 

맨 위 Initailze 블럭 2개는 BLE통신을 하기 위해 사용되는 고정 값이므로 수정하지 마세요!(수정 할 경우 데이터 전달이 안됩니다.)

 

위에서 연결부분만 만들어 놓고 밑에 데이터를 전달하는 블럭을 수정하여 이용하면 BLE 통신이 가능한 다양한 기능의 어플을 만들 수 있을 겁니다!

 

다음에는 위 어플을 간단하게 응용하여 스마트 홈과 연계한 프로젝트를 소개드리도록 하겠습니다!! 그럼 다음 컨텐츠에서 봐요~

 

 

 

kocoafabeditor

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

오렌지보드, 오렌지 BLE보드, 앱인벤터2, App inventor2, BLE

은쟘 2018-04-19 20:13:59

그대로 따라했는데 폰에 어플을 다운받은 후 클릭하면 앱이 중지되었다고 뜨는데 왜 그런건가요??

건뚱구 2018-06-30 21:28:14

왜 그대로 따라했는대 BLE 연결이 안되죠..ㅠㅠ