• 전체강좌

    [BLE 5.0 강좌 04] Peripheral 모드 테스트

    twitter facebook

    안녕하세요? 착한이입니다.


    Nordic 사의 nRF52840을 이용한 BLE 5.0 강좌를 시작합니다.

    본 강좌에서는 nRF52840을 장착한 nRF52840 Dongle(USB 방식)과

    nRF52840 DK(Development Kit) 보드를 이용하여 BLE 5.0 펌웨어 개발에 대해 알아 보고자 합니다.


    nRF52840 관련 자세한 사항은 다음 사이트에서 확인하실 수 있습니다.

    https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF52840


    nRF52840 Dongle 제품에 대한 자세한 사항은 다음 사이트에서 확인하실 수 있습니다.

    https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle


    nRF52840 DK 보드에 대한 자세한 사항은 다음 사이트에서 확인하실 수 있습니다.

    https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK


    [BLE 5.0 강좌 02] nRF52840 BLE 5.0 개발 준비 과정 2 - SEGGER Embedded System 설치 및 예제 빌드하기

    http://www.wearedev.net/?m=bbs&bid=lecture&uid=188

    [BLE 5.0 강좌 03] Central 모드 테스트 - nRF52840 Dongle로 Scan 하기

    http://www.wearedev.net/?m=bbs&bid=lecture&uid=190


    지난 강좌에서 nRF52840 Dongle을 Central 모드로 동작시키고 스마트폰과 연결하는 것에 대해 알아보았습니다.

    본 강좌에서는 nRF52840 Dongle을 Peripheral 모드로 설정하고 테스트 하는 방법에 대해 살펴 보겠습니다.

    nRF Connect 의 Bluetooth Low Energy 툴을 이용하면 간단히 테스트할 수 있습니다.


    BLE 5.0 장치는 Central 모드와 Peripheral 모드로 동작할 수 있습니다.

    각 모드의 차이점은 간단히 다음과 같습니다. 

    -Central 모드 : 주변의 BLE 장치를 Scan 할 수 있으며, 장치와 Connect(연결)할 수 있습니다.

    -Peripheral 모드 : Advertising을 하면서 Connect를 기다립니다.


    1. nRF52840 Dongle을 Peripheral 모드로 동작 시키기


    nRF52840 Dongle을 Peripheral 모드로 동작시켜야 스마트폰으로 Scan 해서 연결할 수 있습니다. 

    nRF Connect의 Bluetooth Low Energy 프로그램을 이용하면 Peripheral 모드로 설정할 수 있습니다.

    nRF5 SDK를 이용하여 소스 코드로도 설정할 수 있습니다.

    본 강좌에서는 Bluetooth Low Energy 프로그램을 이용하는 방법에 대해 설명하겠습니다.


    nRF Connect를 실행합니다. 다음 화면에서 "Bluetooth Low Energy"를 실행합니다.


    다음과 같이 Bluetooth Low Energy 프로그램이 실행됩니다.


    PC에 BLE 5.0 장치를 연결하면 Driver가 자동으로 설치되고 Bluetooth Low Energy 프로그램에

    인식된 장치가 표시 됩니다.

    장치가 인식되지 않는다면 DFU 모드로 변경해 주시면 됩니다.

    nRF52840 Dongle의 경우 "Reset" 버튼을 클릭해 주시면 됩니다. 


    nRF52840 Dongle을 PC에 연결합니다. 다음과 같은 팝업이 나타나면 "Yes" 버튼을 클릭합니다.

    Programming이 진행되며 완료되면 장치가 인식이 됩니다.


    "Select device" 콤보박스에 연결된 장치를 선택합니다. 


    Bluetooth Low Energy 프로그램에 nRF52840 Dongle 이 표시됩니다.

    "Generic Access"를 클릭하면 다음과 같이 정보가 표시됩니다.

    장치 명과 Appearance, Service 등을 알 수 있습니다.


    이제 nRF52840 Dongle을 Peripheral 모드로 설정할 수 있습니다.

    장치명 옆의 설정 버튼(톱니바퀴 모양)을 클릭하면 다음과 같이 메뉴가 표시됩니다.

    "Start advertising" 을 선택하면 장치가 advertising을 시작합니다.

    장치는 Peripheral 모드로 동작하고 스마트폰에서 이 장치를 Scan 할 수 있습니다.


    Advertising을 시작하면 다음 그림과 같이 설정 버튼 아래에

    안테나 모양 아이콘이 표시됩니다.


    Advertising을 중단 하려면 설정 버튼을 클릭 한 후, 메뉴 중에서

    "Stop advertising" 을 선택하면 됩니다. 


    여기까지 nRF52840 Dongle을 Peripheral 장치로 설정하고 Advertising 하는 방법에 대해 알아 보았습니다.


    2. 스마트폰으로 nRF52840 Dongle Scan하기 및 연결하기 : Central 모드


    Nordic 사에서 제공하는 스마트폰 용 nRF Connect App을 이용하면 BLE 5.0 장치를

    Scan 할 수 있습니다.

    nRF Connect App은 Android, iOS를 지원하며, Store에서 "nRF Connect" 로 검색하셔서

    설치하시면 됩니다. Bluetooth 사용 권한을 허용해 주셔야 합니다.


    그럼 스마트폰으로 nRF52840 Dongle 장치를 Scan 하는 방법에 대해 알아 보겠습니다.

    먼저 nRF52840 Dongle을 Peripheral 모드로 설정하고 Advertising을 설정합니다.

    본 강좌에서는 Android 기준으로 설명합니다.

    App 설치 후에, nRF Connect App을 실행합니다.

    화면의 "SCANNER" 를 클릭하면 다음의 화면이 나옵니다.

    화면 오른쪽의 "SCAN" 를 클릭하면 BLE 장치를 검색하게 됩니다.


    다음 화면과 같이 검색된 Bluetooth 장치의 표시 이름과 Address가 표시 됩니다.

    연결이 가능한 장치의 경우 "CONNECT" 버튼이 표시 됩니다.

    목록에서 nRF Connect는 nRF52840 Dongle입니다.

    "CONNECT" 버튼 클릭하면 연결을 시도합니다. 


    BLE 5.0 장치가 연결이 되면 장치간에 BLE 5.0 통신으로 데이터 송수신이 가능하며,

    속성이나 Service의 정보 읽기 및 변경이 가능합니다. 


    다음 화면의 "Device Name" 항목의 오른쪽 부분에 아래 방향의 화살표 아이콘을 클릭하면

    nRF52840 Dongle의 장치명을 읽어 올 수 있습니다.

    "nRF5x" 값을 가지며 nRF Connect의 표시된 이름과 같음을 알 수 있습니다. 


    장치가 연결이되면 PC의 Bluetooth Low Energy에서 다음과 같이 연결된 장치가 표시됩니다.

    지난 강좌와는 다르게 스마트폰이 "Central" 모드로 표시된 것을 확인할 수 있습니다. 


    지금까지 nRF Connect 를 이용해서 nRF52840 Dongle을 Peripheral 모드로 설정하는 방법과

    스마트폰으로 Scan 해서 Dongle과 연결하는 방법에 대해 알아 보았습니다.

    향후 강좌에서 프로그래밍으로 이를 구현하는 방법에 대해서 알아 보겠습니다.

    다음 강좌에서 뵙겠습니다.

    즐거운 개발하시길 바랍니다.


    본 강좌는 다음 유튜브 채널에 동영상으로 제공됩니다.

    https://www.youtube.com/c/WeAreDev

    구독 부탁 드립니다.