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