Bygg en DIY iBeacon med en Raspberry Pi

Annonser riktade till en viss användare som går genom ett storstadscenter är saker av dystopiska futures. Men det är inte en dystopisk framtid alls: tekniken är redan här.

Annonser riktade till en viss användare som går genom ett storstadscenter är saker av dystopiska futures.  Men det är inte en dystopisk framtid alls: tekniken är redan här.
Annons

Annonser som riktar sig till en viss användare som går genom ett storstadscenter är saker av dystopiska futures, vilket särskilt framgår av Tom Cruise- filmminoritetsrapporten . 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. IBeacon utvecklades av Apple och utvecklades 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 glö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.

Muo-RPI-mediaready

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?

Muo-diy-pibeacon-ble2

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ända som "annonser" (inte i marknadsföringssyfte) sänds av strålkastaren 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 lägenstillstå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 Hur man installerar ett operativsystem till din Raspberry Pi Så här får du ett nytt OS installerat och kört på din Pi - och hur man klonar 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 

Muo-diy-pibeacon-Kod1

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 make install 

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 now 

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 tools/hciconfig hci0 up sudo tools/hciconfig hci0 leadv 3 sudo tools/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?

Muo-diy-pibeacon-ipad

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:

Muo-diy-pibeacon-data som

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, skapar kommandoraden uuidgen verktyget 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 ($ 0.99) för att upptäcka det, välj 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.

In this article