針對特定用戶的大都會反烏托邦期貨廣告,這是湯姆·克魯斯電影《少數派報道》 所展示的,但這并不是反烏托邦的未來:技術已經存在。盡管它不依賴于使用視網膜進行快速識別,但它確實使用了藍牙。 iBeacon由Apple開發,旨在為iOS用戶提供基于位置的信息,它使用設備附近的位置觸發個性化廣告或跟蹤用戶的移動。 Google也創建了自己的通用Beacons規范,盡管目前對它的支持很有限,因為開發人員無法使用它。
毫無疑問,您可以使用通過添加藍牙低功耗(BLE)USB模塊將Raspberry Pi作為iBeacon。更有趣的是,我們可以選擇這項技術,而放棄未來的廣告方法,而轉向在家庭中使用。
iBeacon的工作原理
構建一種智能設備的低能耗藍牙發射器應用程序可以檢測到很簡單,但是iBeacon如何工作?
BLE是專為短距離傳輸而設計的,但是功耗較低(單枚紐扣電池應持續三年)。信標廣播小型數據包,稱為“廣告”(不是營銷意義上的數據),并用于觸發智能手機應用程序中的操作,可能會顯示商業消息,或提示讀者執行操作。
除了營銷之外,iBeacon通常用于應用程序的topush位置狀態,例如在博物館周圍漫步時顯示有關展覽的信息。
使用Raspberry Pi和藍牙構建自己的iBeacon加密狗
要將樹莓派用作iBeacon,您需要一個藍牙USB適配器。但是,您不能僅連接任何舊的Bluetooth USB設備。相反,您需要使用BLE(藍牙低能耗)設備,該設備可以從Amazon或Adafruit相對便宜地購買。您可以在標準的Raspbian安裝上運行該項目,可以以通常的方式安裝,也可以通過NOOBS安裝。
(如果您想要所有這些的快捷方式,PiBeacon映像是RadiusNetworks最好的選擇。只需下載,
但是,在連接BLE之前,是時候安裝一些庫了:
sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
現在完成了,您需要安裝用于Linux的藍牙堆棧Bluez。
sudo mkdir bluez
cd bluez
sudo wget www.kernel.org/pub/linux/bluetooth/bluez-5.11.tar.xz
一旦下載,必須構建Bluez 。
sudo unxz bluez-5.11.tar.xz
sudo tar xvf bluez-5.11.tar
cd bluez-5.11
sudo 。/configure --disable-systemd
sudo make
(此步驟可能需要一些時間。去喝杯茶。或者烤一個樹莓派。)
sudo make install
您幾乎已經準備就緒。發出關閉命令,然后在Pi掉電時,連接BLE。
sudo shutdown -h now 廣播PiBeacon
為廣播配置PiBeacon ,請首先檢查是否已檢測到BLE模塊
hciconfig
您會注意到,如果檢測到BLE模塊,則其狀態當前為DOWN。
要解決此問題,請配置設備:
sudo tools/hciconfig hci0 up
sudo tools/hciconfig hci0 leadv 3
sudo tools/hciconfig hci0 noscanc
(請注意,最后一行會禁用藍牙掃描,因為這可能會引起問題。)
重復運行hciconfig的早期命令:
hciconfig
您現在將看到設備狀態為“正在運行”。
如何使用PiBeacon進行廣告?
因此,您有了一個由Raspberry Pi驅動的iBeacon。但是如何使用它來識別附近的藍牙設備呢?正如Adafruit解釋的那樣,信標需要輸入廣告數據。他們建議使用hcitool命令輸入以下字符串:
sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61 00 00 00 00 C8 00 數據包中有什么?
是的,那是一長串數字和字母。它是用十六進制編寫的,盡管我們看不到它,但字符串卻分成了幾個部分。例如,標記FF表示將遵循制造商特定的數據,在本例中為4C 00,即Apple的ID。可以適當地更改該字符串。
我們將其分解:
如您所見,該字符串在直到您可以看到每個數據段的用途。請注意,ID始終相同,以標識數據包類型,并且數據長度需要轉換為十進制才能欣賞數據包的實際長度。
帶有FF標記的是128比特ID,如上所述,然后是主要數據和次要數據。這些以分層方式(主要是第一,次要是第二)識別位置或注釋。最后,TX Power有助于估算距離。
PiBeacon與iBeacon一樣,具有三個范圍:即時范圍(定位到幾厘米),近距離(幾米)和遠距離(約10米)。任何測量的距離僅是近似值,因為家具,門和墻壁會削弱BLE信號。
如果您計劃使用iBeacon技術,那么為您的應用提供唯一的ID至關重要。您可能會使用www.uuidgenerator.net之類的文件,或者如果使用aMac,則命令行 uuidgen 實用程序將生成一個唯一的ID。
PiBeacon已啟用!
使用輸入此信息后,PiBeacon現在正在投放廣告。您現在需要做的就是在iOS商店中找到一個合適的iBeacon應用,例如Beacon Toolkit [No Nower Available]來檢測它,選擇 Listen 。上面的字符串在Beacon中作為UUID提供。工具包應用程序。可以使用其他UUID,但這些UUID不能與該應用程序一起使用:使用價格稍高的Beacon工具箱(4.99美元),該工具箱應該能夠識別范圍內的大多數iBeacon。
對專用Raspberry Pi感到不滿意完成這項任務?不用擔心-只要您具有BLE防護罩(您的Arduino入門套件中可能提供),您就可以構建Arduino iBeacon。這是一個演示:
喜歡冒險嗎?價值10美元的電子產品和一些焊接技能也可以使您自己動手做iBeacon。
責任編輯:wv
-
樹莓派
+關注
關注
117文章
1710瀏覽量
105883 -
iBeacon
+關注
關注
5文章
43瀏覽量
30355
發布評論請先 登錄
相關推薦
評論