TESTO사의 BLE기반 온도계를 KISOK(윈도 OS)에 연결하여야 할 프로젝트를 진행한 후기입니다.
단계별로 관련 내용과 C# 소스 코드 공개합니다.
스니핑툴로 nRF52832 DK를 사용하기로 하고 Wireshark을 통해 패킷분석 진행후 C#으로 윈도용 프로그램을 개발한 내용입니다.
링크를 통해 노르딕 인포센터에 접속하면 nRF Sniffer를 만드는 방법에 대해서 자세히 나와 있습니다.
1. nRF Sniffer를 사용해 블루투스 패킷을 확인하는데 필요한 프로그램인 Wireshark를 다운로드
2. Windows Installer (64-bit, *OS따라 선택 필요)를 선택해 설치 과정 중 따로 변경하지 않고 기본 설정으로 설치하시면 됩니다.
3. nRF52 DK를 Packet sniffer로 만들어주기 위한 nRF Sniffer 소프트웨어를 사이트에 접속해 다운로드
(bluetooth le 버전중 최신 버전을 선택하시면 됩니다.)doc 폴더에는 nRF Sniffer 사용 방법에 대한 문서가 들어 있다.
4. 다운로드한 ZIP파일을 압축해제하한 extcap 폴더에는 nRF Sniffer를 사용하기 위한 파이썬 코드가 들어있습니다.
hex 폴더에는 nRF Sniffer 펌웨어인 hex 파일이 들어있습니다.
Profile_nRF_Sniffer_Bluetooth_LE 폴더에는 Whireshark에서 사용할 수 있는 프로파일 설정이 들어있습니다.
Development kit/dongle | Firmware file name |
nRF52840 DK (PCA10056) | sniffer_nrf52840dk_nrf52840_*.hex |
nRF52840 Dongle (PCA10059) | sniffer_nrf52840dongle_nrf52840_*.hex |
nRF52 DK (PCA10040) | sniffer_nrf52dk_nrf52832_*.hex |
nRF51 DK (PCA10028) | sniffer_nrf51dk_nrf51422_*.hex |
nRF51 DK (PCA10031) | sniffer_nrf51dongle_nrf51422_*.hex |
5. 펌웨어 파일을 nRF52 DK에 다운로드하기 위해서 nRF Connect for Desktop 프로그램을 설치해야 합니다.
(판매중인 nRF52* DK 관련 펌웨어가 사전 설치된 경우도 있으나, 그냥 재설치 한다 생각하시면 편함~)
6. 설치 과정 중 별도의 설정을 변경하지 않고 기본 설정 그대로 설치하셔도 됩니다.
7. nRF Connect fo Desktop을 설치하고 실행하면 APP을 설치할 수 있는 창이 나타납니다.
7. Search 창에서 Programmer를 검색하면 nRF Programmer 항목이 나타나며 Install 버튼을 눌러 설치하시면 됩니다.
8. 설치가 끝나면 Install 버튼이 Open 버튼으로 변경되며 이 버튼을 눌러 Programmer를 실행할 수 있습니다.


9. Programmer가 실행되면 Select device 항목을 눌러 연결된 nRF52 DK 장치가 연결된 포트를 선택
10. File 카테고리의 Add HEX file을 선택해 설치할 nRF Sniffer 펌웨어 선택
11. Device 카테고리에서 Erase & Write 항목을 선택해 nRF52 DK의 플래시 메모리에 남아있는 내용을 삭제하고, nRF Sniffer 펌웨어를 nRF52 DK에 다운로드

** 여기까지 nRF52 DK를 nRF Sniffer로 만드는 방법 입니다.
** 이제부터 Wireshark을 통해 블루투스 패킷을 확인할 수 있도록 프로그램 세팅이 필요합니다.
12. Wireshark 프로그램을 실행하고 메뉴바에서 Help > About Wireshark를 선택하고 Folders 탭으로 이동
13. Global Extcap path의 Location 부분을 더블클릭하여 폴더 오픈
14. \nrf_sniffer_for_bluetooth_le_***\extcap 폴더 안의 파일들을 복사해 \Wireshark\extcap 폴더에 붙여 넣기
** 지금부터는 파이썬 3.4이상이 설치되어 있어야 진행 가능합니다.
** AI, Bigdata에 있어 필수인 파이썬 겸사겸사 같이 설치하시죠~~~
15. Window키 + R, cmd 엔터로 명령 프롬프트 실행 또는 PowerShell을 실행하고 다음 명령어를 입력
> pip3 install -r .\requirements.txt > .\nrf_sniffer_ble.bat--extcap-interfaces |
위 그림이 보이면 정상설치 완료~~~
(Wireshark 프로그램에서 외부 캡처 플러그인(Plugin for nRF Sniffer Capture Tool)을 사용할 수 있도록 설정 완료)
16. Wireshark 프로그램의 시작 화면에서 F5 키를 눌러 인터페이스 목록 새로고침
17. Wireshark 메뉴바에서 View > Interface Toolbars > nRF Sniffer for Bluetooth LE 항목 선택

18. Wireshark 메뉴바에서 Help > About Wireshark를 선택, Folders 탭으로 이동한 다음 Personal configuration의 Loaction을 더블클릭해 폴더를 열고 profiles 폴더로 이동
19. \nrf_sniffer_for_bluetooth_le_3.***폴더 안의 Profile_nRF_Sniffer_Bluetooth_LE 폴더를 \Wireshark\profiles 폴더에 복사
20. 메뉴바에서 Edit > Configuration Profiles를 선택하고 Profile_nRF_Sniffer_Bluetooth_LE를 누른 다음 확인 버튼 클릭
** Wireshark 프로그램에서 nRF Sniffer로 블루투스 패킷을 캡처할 수 있는 프로파일 설정 끝났습니다.

nRF Sniffer 사용하기
블루투스 패킷을 캡처하려면 컴퓨터와 nRF Sniffer가 연결된 상태에서 다음 사진과 같이 블루투스 장치를 배치한다.

Wireshark 프로그램을 실행하면 시작 화면에 Interface Toolbar가 있으며 nRF Sniffer가 정상적으로 연결 상태라면 포트가 확인된다.
nRF Sniffer for Bluetooth LE COMx를 더블 클릭하면 블루투스 패킷 캡처 화면으로 전환되며 주변의 블루투스 패킷들을 스니핑 할 수 있다.

댓글
댓글 쓰기