3 回答

TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊
是! 您可以使用Raspberry Pi掃描iBeacons。我們在下面組合了一個腳本來執(zhí)行此操作,您也可以按照以下步驟自行進(jìn)行操作:
啟動進(jìn)行藍(lán)牙LE掃描的后臺進(jìn)程:
sudo hcitool lescan --duplicates &
使用該--duplicates設(shè)置,掃描將不會忽略來自同一iBeacon的多個數(shù)據(jù)包。
啟動hcidump并將原始輸出通過管道傳遞到腳本,該腳本將過濾iBeacon數(shù)據(jù)包:
sudo hcidump --raw
過濾是一個棘手的部分,原始的輸出hcidump格式不正確,并且還會顯示不是iBeacon傳輸?shù)臄?shù)據(jù)包。為了解決這個問題,我們制作了一個過濾器腳本,該腳本逐行讀取輸出,并從其他輸出(例如,MAC地址等)中分離出原始數(shù)據(jù)包。我們在Radius Networks的iBeacon藍(lán)牙配置文件上做了很多研究,我們用來識別iBeacon數(shù)據(jù)包并從其他設(shè)備的數(shù)據(jù)包中過濾掉它們。
我們將所有內(nèi)容整合到一個ibeacon_scan腳本中,該腳本可以完成所有工作,包括將原始標(biāo)識符轉(zhuǎn)換為人類可讀的形式。您可以在這里下載。很快,我們會將其包含在iBeacon開發(fā)工具包中以增加掃描功能。
下面是從腳本輸出的一個例子:
$ ./ibeacon_scan
UUID: 74278BDA-B644-4520-8F0C-720EAF059935 MAJOR: 0 MINOR: 73 POWER: -50
UUID: 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 MAJOR: 1 MINOR: 6 POWER: -59
UUID: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 MAJOR: 6 MINOR: 9 POWER: -55
我們還-b提供了裸輸出選項,該選項易于解析為其他腳本,下面是一個示例:
$ ./ibeacon_scan -b
2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 1 6 -59
E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 6 9 -55
74278BDA-B644-4520-8F0C-720EAF059935 0 73 -50
您可以使用此選項并將腳本的輸出通過管道傳遞到腳本,以在檢測到帶有某些標(biāo)識符的iBeacon時觸發(fā)操作。
編輯:我們對該腳本進(jìn)行了重新設(shè)計,以使其響應(yīng)速度更快且更可靠,并將其合并到開發(fā)工具包的最新版本中。此更新可從此處下載。
編輯2:正如@ sai-ramachandran指出的那樣,除了POWER之外,您還可以擴展此腳本以捕獲每個iBeacon數(shù)據(jù)包的RSSI。為此,將以下行添加到腳本中:
RSSI=`echo $packet | sed 's/^.\{132\}\(.\{2\}\).*$/\1/'`
RSSI=`echo "ibase=16; $RSSI" | bc`
RSSI=$[RSSI - 256]
并確保將RSSI添加到輸出中:
echo "UUID: $UUID MAJOR: $MAJOR MINOR: $MINOR POWER: $POWER RSSI: $RSSI"

TA貢獻(xiàn)1876條經(jīng)驗 獲得超7個贊
您是正確的,iBeacon開發(fā)套件并非旨在檢測iBeacon,而是旨在作為iBeacon進(jìn)行傳輸。
也就是說,可以使用@ChrisStratton在他的評論中建議的變體,用Raspberry Pi檢測iBeacon 。
添加回答
舉報