2014年6月29日 星期日

[Linux] 如何使用BlueZ,取得ibeacon資訊

Bluetooth 基本架構,使用BlueZ介紹ibeacon Packet Format 分析 和 , 簡單介紹Bluetooth的基本理論,以及ibeacon的Packet Format,接下來則介紹要如何使用BlueZ來取得ibeacon的Packet。若需要自行製作ibeacon,可參考Reference[1]。

1. 安裝BlueZ至Linux
  • Download Page 
  • Compiler and  Install
    • configure
    • ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental --with-systemdsystemunitdir=/lib/systemd/system --with-systemduserunitdir=/usr/lib/systemd
    • compiler
    • make ; make install
2. 接上Bluetooth Device,確認Bluetooth Device是否已經Running
#hciconfig -a ; hciconfig hci0 up
//Note : 如果想知道HCI Command,則可以下
#hciconfig -a | hcidump
圖一: 尋找device
3. 都準備就緒了,就可以收詢ibeacon
#hcitool -i hci0 lescan --duplicates | hcidump -i hci0

圖二:  HCI Event
4. 分析封包
圖三藍色框框是HCI Event等相關訊息,紅色框框(PDU Payload)則是ibeacon device提供的重要資訊。(圖四提供Payload欄位定義)。

圖三: ibeacon raw data

圖四: iBeacon packet format


Reference :
[1]  How To Make a Raspberry Pi Turn on a Lamp with an iBeacon

沒有留言:

張貼留言