Bygg en DIY iBeacon med en Raspberry Pi

Bygg en DIY iBeacon med en Raspberry Pi / DIY

Annonser som riktar sig till en viss användare som går genom ett storstadscenter är saker av dystopiska futures, som demonstreras särskilt av Tom Cruise-filmen Minoritetsrapport. Men det är inte en dystopisk framtid: tekniken är redan här. Även om det inte är beroende av snabb identifiering med din näthinna, använder den Bluetooth. Utvecklad av Apple utvecklades iBeacon för att ge platsbaserad information till iOS-användare Hur Bluetooth 4.0 formar framtiden för mobilanslutning Hur Bluetooth 4.0 formar framtiden för mobilanslutning Bluetooth är den bortglömda stjärnan på enhetens specifikationsblad. Läs mer, med hjälp av enhets närhet för att utlösa en personlig annonsering eller spåra användarens rörelser. Google skapade också sin egen mångsidiga Beacons-specifikation, även om stöd för det är begränsat för närvarande eftersom utvecklare tar hand om det.

Inte överraskande, du kan använda en Raspberry Pi som en iBeacon, genom att lägga till en Bluetooth-låg energi (BLE) USB-modul. Mer intressant kan vi samordna denna teknik och överge de futuristiska annonseringsmetoderna till förmån för användningar runt hemmet.

Hur fungerar iBeacon

Att bygga en Bluetooth-sändare med låg energi som smarta enheter kan upptäcka är okomplicerat, men hur fungerar en iBeacon?

BLE är utformad speciellt för överföring över korta avstånd, men med lägre effektbehov (ett enda myntcell batteri ska vara tre år). Små paket med data, känd som “annonser” (inte i marknadsföringssyfte) sänds av sändaren och används för att utlösa åtgärder i smartphone-appar, kanske visa ett kommersiellt meddelande eller uppmana läsaren att utföra en åtgärd.

Utöver marknadsföring används iBeacons vanligtvis för att driva platstillstånd till en app, som att visa information om en utställning medan du går runt ett museum.

Bygg din egen iBeacon med en Raspberry Pi och en Bluetooth Dongle

För att använda din Raspberry Pi som en iBeacon behöver du en Bluetooth USB-adapter. Men du kan inte bara bifoga någon gammal Bluetooth USB-enhet. Istället måste du använda en BLE-enhet (Bluetooth-låg energi), som kan köpas relativt billigt från Amazon eller Adafruit. Du kan köra detta projekt på en standard Raspbian-installation Optimera kraften i din Raspberry Pi med Raspbian Optimera kraften i din Raspberry Pi med Raspbian Såsom passar en man med för mycket teknik på händerna har jag spelat med min Raspberry Pi nyligen , konfigurera enheten så att den fungerar till sin fulla potential. Det fortsätter att springa som ... Läs mer, antingen installerat det vanliga sättet Så här installerar du ett operativsystem till din hallon Pi Så här installerar du ett operativsystem till din Raspberry Pi Så här får du ett nytt OS installerat och kört på din Pi - och hur att klona din perfekta inställning för snabb katastrofåterställning. Läs mer eller via NOOBS Hur NOOBS för Raspberry Pi kan hjälpa första gången Användare Hur NOOBS för Raspberry Pi kan hjälpa första gången Användare Det finns något om Raspberry Pi som kan bara sätta folk av: tills nu har det inte varit särskilt användarvänligt att konfigurera vänlig. NOOBS har som mål att ändra det! Läs mer .

(Om du vill ha en genväg till allt detta är PiBeacon-bilden din bästa insats, från RadiusNetworks. Ladda ner, skriv till SD-kort och starta.)

Innan du ansluter BLE, är det dags att installera några bibliotek:

sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev

Nu är det klart att du måste installera Bluez, Bluetooth-stacken för Linux.

sudo mkdir bluez cd bluez sudo wget www.kernel.org/pub/linux/bluetooth/bluez-5.11.tar.xz

När du är nedladdad måste Bluez byggas.

sudo unxz bluez-5.11.tar.xz sudo tar xvf bluez-5.11.tar cd bluez-5.11 sudo ./configure --disable-systemd sudo make

(Detta steg kan ta lite tid. Gå och gör en kopp te. Eller baka en hallonpai.)

sudo gör installationen

Du är nästan redo att gå. Utfärda ett avstängningskommando, och sedan när Pi är avstängd, anslut BLE.

sudo shutdown -h nu

Sänd ut PiBeacon

För att konfigurera PiBeacon för sändning, kontrollera först att BLE-modulen har detekterats

hciconfig

Du märker att om modulen detekteras är dess status för närvarande NED.

För att lösa detta, konfigurera enheten:

sudo verktyg / hciconfig hci0 upp sudo verktyg / hciconfig hci0 leadv 3 sudo verktyg / hciconfig hci0 noscanc

(Observera att den slutliga raden inaktiverar Bluetooth-skanning, eftersom det kan orsaka problem.)

Upprepa det tidigare kommandot för att köra hciconfig:

hciconfig

Nu ser du status för enheten är UP RUNNING.

Hur annonserar du med PiBeacon?

Så du har en fungerande iBeacon, driven av en Raspberry Pi. Men hur använder du den för att identifiera sig till närliggande Bluetooth-enheter? Som förklaras av Adafruit, behöver fyren att annonseringsdata ska anges. De rekommenderar följande sträng infogas med kommandot 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

Vad finns i datapaketet?

Ja, det är en lång rad tal och bokstäver. Det är skrivet i hexadecimalt, och även om vi inte kan se det delas strängen upp i sektioner. Till exempel anger varumärket FF att tillverkarens specifika data kommer att följa, i det här fallet 4C 00 som är Apples ID. Denna sträng kan ändras efter behov.

Låt oss bryta upp det:

Som du kan se, betyder strängen lite tills du kan se vad varje segment av data är för. Observera att ID alltid kommer att vara detsamma, för att identifiera pakettypen och att datalängden behöver konverteras till decimal för att uppskatta den faktiska längden på paketet.

Med FF-märket ser vi 128-bitars ID som förklarats ovan, följt av huvuddata och mindre data. Dessa identifierar platser eller anteckningar på hierarkiskt sätt (stora första, mindre andra). Slutligen hjälper TX Power att beräkna avståndet.

PiBeacon, som en iBeacon, har tre områden: omedelbar (lokaliserad till några centimeter), nära (några meter) och långt (cirka 10 meter). Alla uppmätta avstånd är bara ungefärliga eftersom BLE-signalen försvagas av möbler, dörrar och väggar.

Om du planerar att använda iBeacon-tekniken är det viktigt med ett unikt ID för din app. Du kan använda något som www.uuidgenerator.net eller om du använder en Mac, kommandoraden uuidgen verktyget kommer att skapa ett unikt ID.

PiBeacon är Live!

Med detta inmatas nu PiBeacon. Allt du behöver göra nu är att hitta en lämplig iBeacon-app på iOS-butiken som Beacon Toolkit [Ej längre tillgänglig] för att upptäcka det, välja Lyssna. Strängen ovan anges som en UUID i verktyget Beacon Toolkit. Andra UUID-enheter kan användas, men de fungerar inte med den appen: använd den lite dyrare Beacon Toolbox ($ 4,99), som ska kunna identifiera de flesta alla iBeacons inom intervallet.

Olycklig att ägna en Raspberry Pi till den här uppgiften? Oroa dig inte - du kan bygga en Arduino iBeacon istället, så länge du har en BLE-skärm (som kan vara tillgänglig i ditt Arduino-startpaket Vad finns i ditt Arduino Starter Kit? [Arduino Beginners] Vad finns i ditt Arduino Starter Kit? Arduino Beginners] Inför en låda full av elektroniska komponenter är det lätt att bli överväldigad. Här är en guide till exakt vad du hittar i ditt kit. Läs mer). Här är en demo:

Känna sig ännu mer äventyrlig? $ 10 värda elektronik och lite lödningsförmåga Lär dig hur man löds med dessa enkla tips och projekt Lär dig hur man löds med dessa enkla tips och projekt Är du lite skrämmad av tanken på en varm järn och smält metall? Om du vill börja arbeta med elektronik, kommer du behöva lära dig att lödda. Låt oss hjälpa. Läs mer kommer också att göra dig till en DIY iBeacon.

Frågor eller kommentarer? Lämna dem nedan.

Utforska mer om: Bluetooth, Raspberry Pi.