: Current Time Profile 의 client 역할 테스트 예제입니다.
1> 프로젝트 위치
<InstallFolder>\examples\ble_peripheral\ble_app_cts_c
2> Nordic Document 사이트
https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/ble_sdk_app_cts_c.html
3> 테스트 방법
: 매뉴얼 상에는 10단계로 되어 있고 ,2대의 nRF52 보드가 필요합니다. ( Current Time Profile client / server)
3-1> 첫번째 보드에 ble_app_cts_c 프로젝트를 빌드후 이미지를 다운로드 합니다.
>> 저는 SES를 사용해 build && Download 했습니다.
리셋시 아래와 같이 Teraterm 창에 메시지가 출력됩니다.
<포트 설정>
- Baud rate: 115.200
- 8 data bits
- 1 stop bit
- No parity
- HW flow control: None
3-2> 2번째 보드를 연결한후 nRF Connect for Desktop 을 통해
Current Time Service (CTS) server 를 만들어 줍니다.
▶ Bluetooth Low Energy 어플의 Open 버튼 클릭
▶ Bluetooth Low Energy 어플의 SELECT DEVICE 선택후 "nRF52_DK" 보드 선택해 줍니다.
▶ Confirm 창이 나오면 "Yes" 버튼 클릭해 줍니다.
▶ 아래 화면처럼 나오면 정상입니다.
▶ 아래화면처럼 SERVER SETUP ==> 설정버튼 ==> "Load setup..." 을 눌러줍니다.
▶ cts_central.ncs 파일 선택후 열기버튼 클릭해주세요.
▶ Current Time Service 가 보이면 "Apply to device" 버튼 클릭
▶ CONNECTION MAP 으로 이동후 "Current Time Service " 가 존재하면 OK 입니다.
3-3> nRF Connect 어플에서 'Nordic_CTS' 장치 연결하기
:저는 여기부터는 2대의 PC를 사용했습니다.
( Serial 창이나 usb 장치 2개가 보이니 헤갈려서...아마 한대의 PC로 하셔도 동작은 잘 할꺼요.)
▶ 아래 그림 처럼 Security parametters... ==> Perform bonding 도 체크해주시고 "Apply" 버튼 눌러주세요.
▶ 아래그림처럼 Start scan 눌러서 "Nordic_CTS" 장비를 검색후 Connect 버튼을 눌러줍니다.
: 장치 검색에서 안보이시면 "Current Time Profile client " 장비를 리셋후
다시 Start scan 클릭해주세요.
▶ 정상적으로 연결 완료되면 다음 화면처럼 보이실 겁니다.
3-4> UART에 "Current Time Service discovered on server." 메시지 확인합니다.
<info> app_timer: RTC: initialized.
<info> app: Current Time service client started.
<info> app: Fast advertising
<info> app: Connected.
<info> peer_manager_handler: Connection secured: role: Peripheral, conn_handle: 0, procedure: Bonding
<info> peer_manager_handler: Peer data updated in flash: peer_id: 0, data_id: Bonding data, action: Update
<info> peer_manager_handler: Peer data updated in flash: peer_id: 0, data_id: Peer rank, action: Update
<info> ble_cts_c: Current Time Service discovered at peer.
<info> app: Current Time Service discovered on server.
3-5> Current Time (UUID 0x2A2B) characteristics 에 'C2 07 0B 0F 0D 25 2A 06 FE 08' 값 쓰기
==> UART 로는 출력 되는 메시지가 없습니다.
3-6> "Current Time Profile client " 장비의 Button1 을 눌러줍니다.
: Teraterm 창에 아래의 메시지가 출력 되면 OK
<info> app: Current Time received.
<info> app:
Current Time:
<info> app:
Date:
<info> app: Day of week Saturday
<info> app: Day of month 15
<info> app: Month of year November
<info> app: Year 1986
<info> app:
Time:
<info> app: Hours 13
<info> app: Minutes 37
<info> app: Seconds 42
<info> app: Fractions 254/256 of a second
<info> app:
Adjust reason:
<info> app: Daylight savings 1
<info> app: Time zone 0
<info> app: External update 0
<info> app: Manual update 0
3-7> nRF Connect 어플에서 연결 끊기 및 LED1 상태 확인하기
▶ "Current Time Profile client " 장비의 LED1 이 블링킹을 하고 있으면 advertising 상태입니다.
Teraterm 출력메시지
<info> app: Fast advertising with WhiteList
<info> app: Disconnect Complete.
<info> app: Disconnected.
<info> app: Slow advertising with WhiteList
<info> app: Slow advertising
3-8> 보드가 system-off 될때까지 대기
:"Current Time Profile client " 장비의 LED1 이 블링킹을 안할때 까지 대기
fast advertising (30초) , slow advertising (180초)
UART 출력 메시지는 없습니다.
3-9> Button1 을 누르고 nRF Connect 에 재연결 테스트
▶ "Current Time Profile client " 장비의 Button1 을 눌러 Wakeup 을 시켜줍니다.
UART 메시지
<info> app_timer: RTC: initialized.
<info> app: Current Time service client started.
<info> app: Fast advertising with WhiteList
<info> app: Slow advertising with WhiteList
<info> app: Slow advertising
▶ nRF Connect 에서 Start Scan 및 Connect 을 해줍니다.
연결시의 UART 메시지
<info> peer_manager_handler: Peer data updated in flash: peer_id: 0, data_id: Peer rank, action: Update, no change
<info> app: Connected.
<info> peer_manager_handler: Peer data updated in flash: peer_id: 0, data_id: Central address resolution, action: Update
<info> peer_manager_handler: Connection secured: role: Peripheral, conn_handle: 0, procedure: Encryption
<info> peer_manager_handler: Peer data updated in flash: peer_id: 0, data_id: Peer rank, action: Update, no change
<info> ble_cts_c: Current Time Service discovered at peer.
<info> app: Current Time Service discovered on server.
3-10> nRF Connect 어플에서 연결 끊기
그럼 오늘도 수고하세요.
'Nordic_nRF52' 카테고리의 다른 글
[nrfutil ] 명령어 사용법 (0) | 2022.04.14 |
---|---|
[secure_bootloader ] 프로젝트 분석 (0) | 2022.04.11 |
[ble_app_beacon ] 프로젝트 분석 (0) | 2022.04.05 |
[ble_app_interactive ] GettickCount() 만들기 (0) | 2022.04.04 |
[nRF52 ] NRF_LOG 출력 UART 에서 RTT 로 변경하기 (0) | 2022.03.25 |