IoT의 요(카나메)! BLE 통신을 Mac만으로 디버깅할 수 있게 되는 방법!

8692 단어 IoTBLE
이 게시물은 Bluetooth Low Energy Advent Calendar 2014의 6 일째 기사입니다!

지난 몇 개월 동안 iOS 앱과 BLE로 통신하는 기기를 개발하고 있다 @kazuph
원래는 단순한 웹 프로그래머였습니다만, 어느새 마이크로컴퓨터의 임베디드 프로그래밍을 할 때까지 되었습니다.

서버, 앱, 마이크로 컴퓨터를 포함하여 소위 "소프트웨어"라고 부를 수있는 부분은 전부 쓰고 있습니다만, 그 근처의 습득까지의 흐름이라든지는 맛있는 블로그에 써 가고 싶습니다.

이번은 평상시 일로 BLE 개발을 하는 중에서 습득한, GATT의 내용이나 어드버타이징 패킷 내용을 Mac만으로 확인하는 방법을 쓰고 싶습니다.

해보자



아무것도 도구를 설치합니다.

사용하는 것은 다음 두 가지입니다.
  • LightBlue
  • PacketLogger

  • LightBlue





    AppStore에서 설치하십시오.

    LightBlue는 iOS 앱으로도 있지만 Mac 버전도 있으므로 이번에는 이것을 사용합니다.

    인스톨하고 기동하면 즉시 스캔을 개시해 주변에 있는 BLE 기기의 리스트를 내 줍니다.

    이대로 클릭하면 GATT(서비스와 characteristic)를 볼 수 있습니다. 읽기, 쓰기도 무엇이든 할 수 있습니다! !

    lightblue

    본래는 앱을 사용하지 않으면 동작시킬 수 없는 기기를 이것으로 움직여 보세요. 「에, 지금 어떻게 했어!?」라고 말하면 도야 얼굴입니다( ・`д・´)

    그리고 주의점으로서 GATT를 재기록하면서 개발하고 있으면 LightBlue가 갱신되어 있지 않을 때가 있습니다. 이것은 OS 레벨에서 캐시되어 버리는 것이 원인이므로 한 번 Mac의 Bluetooth를 OFF → ON하고 LightBlue도 재부팅하십시오. 그러면 고칠 것입니다 (아마).

    PacketLogger





    이는 게시된 앱이 아니라 Apple의 Downloads for Apple Developers에서 다운로드해야 합니다. Dev 등록을 하고 다운로드하세요. URL은 이하.

    packetlogger

    packet으로 검색하면 나옵니다만, Hardware IO Tools for Xcode는 녀석입니다.

    열면 PacketLogger가 들어있는 것을 알 수 있습니다.

    packet

    시작하자! 덧붙여서 로그를 흘리려면 관리자 권한이 필요합니다.

    log

    어라, 아무것도 나오지 않아? Mac이 BLE를 스캔하지 않기 때문입니다.
    스캔을 시작하는 방법은 간단합니다. LightBlue를 시작하기만 하면 됩니다! ! (그것을 위한 복선!!)

    다양한 로그가 흐르기 시작하지만 가장 흥미로운 것은 파란색 로그입니다.
    드디어 라고 Type2라고 쓰고 있으면 그것은 iBeacon입니다! !

    이번에는 근처의 iPhone을 iBeacon으로 할 수있는 Locate Beacon이라는 앱을 사용했습니다.

    slack_for_ios_upload.png

    그럼 실제로 Type2의 로그를 전개해 봅시다.

    giflog

    다음과 같은 설명이 있습니다.
    LE Meta Event - LE Advertising Report - 0 - 9C:F3:87:29:D3:B5  -34 dBm - Type 2
    Parameter Length: 42 (0x2A)
    LE Advertising Report
    Num_Reports: 0X01
    Event_Type: Connectable undirected advertising (ADV_IND)
    Address_Type: Public Device Address
    Peer_Address: 9C:F3:87:29:D3:B5
    Length_Data: 0X1E
    Flags: 0x1a
    Manufacturer Specific Data: -- 
    Data: 02 01 1A 1A FF 4C 00 02 15 74 27 8B DA B6 44 45 20 8F 0C 72 0E AF 05 99 35 00 0C 00 63 C5 
    RSSI:  -34 dBm
    

    Data 안에 있는 바이너리가 광고 패킷입니다. 광고하는 내용을 알면 다양한 디버깅이 가능하네요!

    ( ・`д・´)

    결론



    이번에는 BLE를 디버깅하는 도구에 대해 이야기했습니다. 특히 PacketLogger를 도입한 직후는 개발이 조금 가속했습니다. 하야리 추측보다 관측이 중요하네요.

    내일 담당도 저입니다.

    기대하세요! !

    좋은 웹페이지 즐겨찾기