지난번에는 HRM sensor의 값만을 받아왔다.
지난번 포스팅 : http://refrin.tistory.com/4
이번에 진행할 부분은 Gear S3가 지원하는 모든 센서들의 값을 받아 핸드폰으로 전송하는 부분이다.
먼저 기어와 스마트폰의 블루투스 연결을 하고, 기어가 지원하는 센서들의 값을 받아올 것이다. 그리고 그 값들을 스마트폰에 전송할 것이다. 스마트폰에서는 이를 받아 출력할 것이다.
- 사용 샘플
BLE : HelloAccessory
Sensor : UI -> (Circle)Sensors
HelloAccessory는 Provider와 Consumer로 구분되는데 센서의 값을 받을 것이기 때문에 Provider를 Gear(Tizen)로 Consumer를 Smartphone(Android)으로 하여 진행한다.
Sample에 UI -> (Circle)Sensors를 이용하여 센서들의 값을 받고 출력하는 앱을 만든다.
샘플의 적용 방법은 지난 포스팅에서 설명하였으니 따로 작성하지 않겠다.
스마트폰의 경우 지난 포스팅에서 설치한 HelloAccessory 가 설치되어 있다는 전제하에 진행하겠다.
- 네트워크 환경
Gear - Computer Wifi(같은 네트워크)
Gear - Smartphone : BLE
※ TIP : Gear S3의 경우 초기설정에서 블루투스 연결 시 와이파이 해제 라는 부분이 체크되어 있다. 이를 해제하고 와이파이를 항상 연결상태로 바꾸면 위의 네트워크 환경을 껏다 킬 필요 없이 항상 유지할 수 있다.
※ TIP : BLE는 SAP 방식의 블루투스를 사용하므로 이를 지원하기 위해 Smartphone에 Samsung Gear 앱을 설치한다. Tizen Studio 에서는 Package Manager에서 Extension SDK - Samsung Wearable Extension 을 설치한다.
- 사용툴
Tizen studio 1.2, werable SDK 2.3.1 (3.0도 가능), Android studio 2.3.1, Android SDK 4.2 (Android SDK 버전은 별로 큰 상관은 없는 듯)
- 순서
1. 위의 프로젝트의 네트워크 환경을 구축한다.
- Gear S3 <-> Computer : Wifi(using Tizen studio)
- Gear S3 <-> Smartphone : BLE
위의 TIP 대로 Samsung Wearalbe Extension 과 Samsung Gear App 이 설치되어야 한다.
2. HelloAccessory sample 의 sap 부분과 sensor sample 의 sensor 부분을 가져온다.
- SAP
- Sensor
- 위의 사진의 메소드들만 있으면 실행가능하다.
※ TIP : app_create 에서 initalize_sap() 메소드를 실행하는 것을 꼭 잊지 말자!
3. Gear S3 에서 지원하는 것은 다음 7가지 센서다. (Test 결과)
- Accelerometer, Gravity, Linear Acceleration, Gyroscope, Light, Pressure, HRM
- 센서들의 설명은 타이젠 홈페이지에 자세히 설명되어 있다. 해당 URL을 첨부한다.
- Gear S3 에서 지원하는 센서들의 값을 확인 하는 메소드 API도 다음 URL 에서 설명하고 있으니 참고하세요.
4. 우리가 사용하는 sensor 관련 메소드는 다음과 같다
- sensor_get_default_sensor, sensor_create_listener,
sensor_listener_set_event_cb, sensor_listener_set_interval,
sensor_listener_set_option, sensor_listener_start,
sensor_listener_read_data
- Sensor의 type은 다음과 같다.
- Sensor 옆의 숫자는 Sensor의 Index 번호다. O / X 는 Gear S3 의 지원여부다. ?는 따로 테스트해보지 않았다. 0, 1, 2, 6, 7, 9, 13 (Accelerometer, Gravity, Linear Acceleration, Gyroscope, Light, Pressure, HRM) 총 7개의 센서가 지원가능하다.
5. 프로젝트를 빌드하면 #inlcude <sap.h> 에서 오류가 발생할 것이다. 다음과 같이 해결하자.
- 프로젝트 오른쪽 클릭 Properties 클릭
- C/C++ Build - Tizen Settings -> Framework 를 차례로 누르면 samsung-sap 라는 항목이 있다. 이를 체크하면 오류가 사라진다.
6. 테스트
- 값들에 각각 로그를 달아 안드로이드에 전송하도록 코드를 수정하였다. 다음은 Gear의 화면, 지원 가능한 센서의 index 를 출력하도록 하였다. 전송속도는 10Hz
- 다음은 값을 받는 SmartPhone의 화면
- 값을 받아오는 순서는 (Type) 0 ~ 13순인데 특이하게도 값이 표시되는 순서는 ACC - Gravity - Linear ACC - HRM - Gyroscope - Light - Pressure (0 - 1 - 2 - 13 - 6 - 7 - 순으로 고정적이였다.(재빌드 및 프로그램 재실행, 코드 변경 후에도 일치)
다음번 포스팅에서는 Gear 에서 메시지 패킷을 만들어 SmartPhone으로 보내고 SmartPhone 에서 값을 파싱하는 것을 해보도록 하겠다.
< - Error - >
1. 프로젝트 빌드 시 sap.h 를 못찾을 경우
- 프로젝트 속성 - C/C++ Build - Framework - samsung-sap 체크 후 재빌드
- Error : fatal error: 'sap.h' file not found
- 참고 URL
Gear Sensor
- https://developer.tizen.org/dev-guide/2.3.1/org.tizen.sampledescriptions/html/mobile_n/sensorapp_sd_mn.htm
'프로젝트 > Tizen' 카테고리의 다른 글
TIZEN - SAMSUNG GEAR S3 SENSORS 연동3 (4) | 2017.06.09 |
---|---|
TIZEN - SAMSUNG GEAR S3 SENSORS 연동2 (1) | 2017.05.30 |
TIZEN - Native Data type Convert (0) | 2017.05.29 |
TIZEN - Samsung Gear S3 HRM sensor 연동 (5) | 2017.05.25 |
TIZEN Studio 설치 및 예제 실행 (0) | 2017.05.22 |