[BLUE-ON V1 노드모듈과 안드로이드 폰 연결]
안드로이드 스마트폰과 블루투스 무선 데이터를 주고 받아볼까?
본 포스팅에서는 "저전력 블루투스 모듈 1편"의 Pass-through 스케치 예제를 사용해서 안드로이드 폰과 시리얼로 데이터를 주고 받아 보겠습니다.
안드로이드 앱 설치 과정이 조금 시간이 걸릴 뿐 테스트는 오래 걸리지 않습니다.
시작하겠습니다.
먼저 BLUE-ON V1과 연결할 안드로이드 앱을 설치하겠습니다.
사용할 안드로이드 앱은 "구글 플레이"에 등록되지 않았습니다.
따라서 안드로이드 스마트폰에 해당 앱을 설치하기 위해서는 펌테크 홈페이지에서 APK 파일을 다운로드 받아 설치할 수 있습니다.
1. 안드로이드 폰에서 모바일 브라우저를 엽니다. (본 예는 크롬 브라우저를 사용했습니다)
2. 검색창에 "펌테크"를 입력, 검색하여 해당 사이트를 눌러 이동합니다.
3. 홈페이지가 열리면 상단 맨 좌측의 "블루투스 제품군"을 눌러 이동합니다.
4. 제품소개 페이지에서 "블루투스 저저력(Low Energy)"을 눌러 이동합니다.
5. Bluetooth Low Energy (임베디드 모듈) 페이지에서 "FBL780BC"를 눌러 이동합니다.
6. FBL780BC 페이지에서 "FBL780BC 전용 APP [UART-serial] (Android)"를 눌러 다운로드 받습니다.
다음의 화면 이미지는 안드로이드 스마트 폰의 종류에 따라 다소 차이가 있을 수 있습니다.
7. 파일을 열때 사용할 브라우저를 선택하고 "이번만"을 누릅니다.
8. 하단에 경고 메시지가 나타마년 "확인"을 눌러 다운로드를 시작합니다.
9. 하단에 다운로드 완료 메시지가 나타나면 "열기"를 누릅니다.
10. 설치 차단 메시지가 나타나면 "설정" 버튼을 눌러 이동합니다.
12. 출처를 알 수 없는 앱 메시지에서 "이번만 설치 허용"을 체크하고 "확인" 버튼을 눌러 설치를 진행합니다.
13. 설치가 정상적이면 안드로이드 폰에 "BLE_Serial" 앱이 나타납니다.
위에서 설치한 BLE_Serial 안드로이드 앱과 연결하기 위해 APPSKIT 모듈 구성을 설명하겠습니다.
본 설명에서는 아래 사진 처럼 U-HUB V1과 PWR-ON V1을 결합하여 NODE-STAND V1에 장착하고, BLUE-ON V1을 NODE-STAND V1에 장착해서 동작시켜 보겠습니다.
(U-HUB V1과 BLUE-ON V1 두 모듈만 결합해서도 사용할 수 있습니다.)
[BLUE-ON V1과 NODE-STAND V1 결합 사진]
PC와 USB 케이블을 통해 U-HUB V1의 Hardware Serial에 연결하고 BLUE-ON V1 모듈의 UART는 아두이노(U-HUB V1)의 Software Serial(10번 핀, 11번 핀)로 연결해서 시리얼모니터에서 Bluetooth를 통해 안드로이드 폰으로 데이터를 송/수신하려고 합니다.
위에서 모듈을 체결하고 나면 통신에 대한 하드웨어 구성은 다음과 같습니다.
[U-HUB V1 허브모듈의 소프트시리얼을 경유한 BLUE-ON V1의 UART 연결 도시]
해당 동작을 위해서는 다음과 같은 3단계의 조작이 필요합니다.
첫째, 아두이노의 Software Seril(10번 핀, 11번 핀)과 BLUE-ON V1 모듈의 시리얼 포트를 연결하기 위해 BLUE-ON V1 노드-모듈의 "시리얼 선택 스위치"를 위로 올립니다.
둘째, 아두이노 시리얼 포트에서 블루투스가 연결된 소프트시리얼 간 Pass-through 스케치를 업로드합니다. 다음 스케치는 소프트시리얼의 입력을 받으면 시리얼 입력으로, 시리얼 입력은 소프트시리얼 입력으로 전송합니다.
[시리얼모니터를 통한 아두이노시리얼과 소프트시리얼 Pass-through 스케치 예제]
세째, 아두이노 IDE 환경 내 시리얼 모니터를 실행시키고 통신속도는 "9600", 줄끝 옵션은 "캐리지리턴"을 선택합니다.
[아두이노 IDE 환경 내 시리얼모니터 실행 후 옵션 설정 화면]
위 단계를 마쳤으면, U-HUB V1에는 Pass-through 스케치가 업로드 되어 있으며, PC와 연결되고 BLUE-ON V1은 Adverting 상태(STATUS LED가 깜박임)로 동작하게 됩니다.
[PC와 NODE-STAND V1 구성 및 연결 사진]
안드로이드 폰에서 BLE 장치를 스캔할 때 사용할 디바이스 명을
AT 명령어를 사용하여 변경해보겠습니다.
첫째, 현재 설정된 디바이스 이름을 읽어 보겠습니다. 사용할 AT 명령어는 "AT+GETDEVNAME" 입니다.
[BLE 디바이스 이름 확인하기]
둘째, 다른 이름으로 변경합니다. 사용할 명령어는 "AT+SETDEVNAME########"입니다. "########" 위치에 변경하려는 이름을 적습니다. AT 명령어와 변경 이름는 꼭 붙여서 작성합니다.
정상적으로 변경되었으면 "OK"가 반환됩니다.
[BLE 디바이스 이름 변경하기]
세째, 변경된 이름을 적용하려면 BLUE-ON V1 노드-모듈을 리셋해야 합니다. 사용할 AT 명령어는 "ATZ" 입니다.
정상적으로 리셋되면 "OK" 반환 후 디바이스 초기 메시지가 출력됩니다.
[BLUE-ON V1 소프트웨어 리셋하기]
네째, 설정된 디바이스 이름을 읽어오는 "AT+GETDEVNAME"으로 변경된 이름을 확인합니다.
앞서 설치한 BLE_Serial 안드로이드 앱을 실행시켜 서로 데이터를 송/수신해보겠습니다.
1. 안드로이드 폰의 "BLE_Serial"을 실행시킵니다. 안드로이드 폰의 블루투스가 꺼져 있을 경우 "예"를 눌러 켭니다. 디폴트 디바이스 이름은 "BLUE-ON V1" 입니다.
2. BLE_Serail 앱이 자동으로 스캔을 시작합니다. 나타나는 디바이스 목록 중, "BLUE-ON V1"을 누릅니다.
3. BLUE-ON V1과 성공적으로 연결되면 "DISCONNECT" 버튼으로 변경되고, 상태표시창에 디바이스 주소와 데이터 상태가 나타납니다.
4. 동시에 아두이노 "시리얼모니터"에는 "CONNECT 주소" 메시지가 나타납니다.
5. 안드로이드 폰에서 BLUE-ON V1에 문자를 전송하겠습니다. 하단에 전송할 문자(최대 20바이트) "hello!"를 입력합니다.
6. 하단 우측의 "SEND" 버튼을 누르면, 상태표시창에 전송된 "Tx:hello!"가 표시됩니다.
7. BLUE-ON V1 노드-모듈에서 전송된 "hello!" 문자를 아두이노 "시리얼모니터" 창에 표시합니다.
8. 이번에는 아두이노 "시리얼모니터"를 통해 BLUE-ON V1에서 안드로이드 폰으로 문자를 전송하겠습니다.
상단 입력란에 "Nice to see you."라고 입력 후, 상단 우측 "전송" 버튼을 누릅니다.
9. 전송이 완료되면 "SUCCESS" 메시지가 출력됩니다.
10. 안드로이드 폰의 BLE_Seiral 앱에 수신된 문자가 표시됩니다.
다음은 위에서 설명한 내용을 테스트해 보는 예제 동작 영상입니다.
(전송하는 문자는 "test"와 "test test" 입니다.)
[아두이노 Software Serial을 통해 BLUE-ON V1 모듈 간접 제어하기]
지금까지 BLUE-ON V1 노드-모듈을 사용하여 안드로이드 폰과 문자를 전송하는 예제를 살펴보았습니다.
이상으로 "저전력 블루투스_2편"을 마치겠습니다.
감사합니다.