Bygg en DIY iBeacon med en Raspberry Pi

Bygg en DIY iBeacon med en Raspberry Pi / DIY

Annonser rettet mot en bestemt bruker som går gjennom et storbysentrum er ting av dystopiske futures, vist spesielt av Tom Cruise-filmen Minoritetsrapport. Men det er ikke en dystopisk fremtid: teknologien er allerede her. Selv om det ikke er avhengig av rask identifikasjon ved hjelp av netthinnen, bruker den Bluetooth. Utviklet av Apple ble iBeacon utviklet for å gi stedbasert informasjon til iOS-brukere. Hvordan Bluetooth 4.0 skaper fremtiden for mobiltilkobling Hvordan Bluetooth 4.0 skaper fremtiden for mobiltilkobling Bluetooth er den glemte stjernen på enhetens spesifikasjonsark. Les mer, bruk enhets nærhet til å utløse en personlig annonse eller spore en brukers bevegelser. Google opprettet også sin egen allsidige Beacons-spesifikasjon, selv om støtte for det er begrenset for tiden som utviklere tar tak i det.

Ikke overraskende, kan du bruke en Raspberry Pi som en iBeacon, ved å legge til en Bluetooth-lav energi (BLE) USB-modul. Mer interessant, kan vi samtykke til denne teknologien og forlate de futuristiske annonseringsmetodene til fordel for bruk rundt hjemmet.

Slik fungerer iBeacon

Å bygge en Bluetooth-senderen med lav energi som smart enheter kan oppdage, er grei, men hvordan fungerer en iBeacon?

BLE er designet spesielt for overføring over korte avstander, men med lavere strømkrav (et enkelt myntcellebatteri bør vare i tre år). Små pakker med data, kjent som “reklame” (ikke i markedsmessig forstand), sendes av fyren og brukes til å utløse handlinger i smarttelefonapplikasjoner, kanskje vise en kommersiell melding, eller be leseren om å utføre en handling.

Utover markedsføring er iBeacons vanligvis vant til å presse stedstilstander til en app, for eksempel å vise informasjon om en utstilling mens du går rundt et museum.

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

For å bruke Raspberry Pi som en iBeacon, trenger du en Bluetooth USB-adapter. Men du kan ikke bare koble til en gammel Bluetooth USB-enhet. I stedet må du bruke en BLE-enhet (Bluetooth low-energy), som kan kjøpes relativt billig fra Amazon eller Adafruit. Du kan kjøre dette prosjektet på en standard Raspbian-installasjon Optimaliser kraften til din Raspberry Pi med Raspbian Optimaliser kraften til din Raspberry Pi Med Raspbian Som det passer til en mann med for mye teknologi på hendene, har jeg lekt med min Raspberry Pi nylig , konfigurere enheten slik at den fungerer til sitt fulle potensial. Det fortsetter å løpe som ... Les mer, enten installert den vanlige måten Slik installerer du et operativsystem til din Raspberry Pi Slik installerer du et operativsystem til din Raspberry Pi Her er hvordan du får et nytt OS installert og kjører på Pi - og hvordan å klone ditt perfekte oppsett for rask katastrofeoppretting. Les mer eller via NOOBS Hvordan NOOBS for Raspberry Pi kan hjelpe første gangs brukere Hvordan NOOBS for Raspberry Pi kan hjelpe førstegangsbrukere Det er noe om Raspberry Pi som bare kan sette folk av: inntil nå har det ikke vært spesielt bruker å sette opp det vennlig. NOOBS har som mål å endre det! Les mer .

(Hvis du vil ha en snarvei til alt dette, er PiBeacon-bildet ditt beste bud, fra RadiusNetworks. Bare last ned, skriv til SD-kort og oppstart.)

Før du legger til BLE, er det imidlertid på tide å installere noen biblioteker:

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

Nå er dette gjort, du må installere Bluez, Bluetooth-stakken for Linux.

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

Når du er lastet ned, må Bluez bygges.

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

(Dette trinnet kan ta litt tid. Gå og lage en kopp te. Eller bake en bringebærpai.)

sudo gjør installasjon

Du er nesten klar til å gå. Utsted en shutdown-kommando, og da når Pi er slått av, kobler du til BLE.

sudo shutdown -h nå

Broadcast PiBeacon

For å konfigurere PiBeacon for kringkasting, må du først kontrollere at BLE-modulen er oppdaget

hciconfig

Du vil legge merke til at hvis modulen oppdages, er statusen NED NED.

For å løse dette, konfigurer enheten:

sudo verktøy / hciconfig hci0 opp sudo verktøy / hciconfig hci0 leadv 3 sudo verktøy / hciconfig hci0 noscanc

(Merk at den endelige linjen deaktiverer Bluetooth-skanning, da dette kan føre til problemer.)

Gjenta den tidligere kommandoen for å kjøre hciconfig:

hciconfig

Du ser nå at statusen for enheten er UP RUNNING.

Hvordan annonserer du med PiBeacon?

Så du har en fungerende iBeacon, drevet av en Raspberry Pi. Men hvordan bruker du den til å identifisere seg til nærliggende Bluetooth-enheter? Som forklart av Adafruit, trenger lyset annonseringsdata som skal oppgis. De anbefaler at følgende streng legges inn med kommandoen 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

Hva er i datapakken?

Ja, det er en lang rekke tall og bokstaver. Den er skrevet i heksadesimale, og selv om vi ikke kan se det, deles strengen opp i seksjoner. F.eks. Markerer FF at produsentspesifikke data vil følge, i dette tilfellet 4C 00 som er Apples ID. Denne strengen kan endres etter behov.

La oss slå opp det:

Som du kan se, betyr strengen lite før du kan se hva hvert segment av data er for. Merk at ID-en alltid vil være den samme, for å identifisere pakettypen, og at datalengden må konverteres til desimal for å sette pris på den faktiske lengden på pakken.

Med FF-merket ser vi 128-bits ID som forklart ovenfor, etterfulgt av hoveddata og mindre data. Disse identifiserer steder eller notater på en hierarkisk måte (større første, mindre sekund). Endelig hjelper TX Power å estimere avstanden.

PiBeacon, som en iBeacon, har tre områder: umiddelbar (lokalisert til noen få centimeter), nær (noen meter) og langt (ca. 10 meter). Enhver målt avstand er bare omtrentlig da BLE-signalet svekkes av møbler, dører og vegger.

Hvis du planlegger å bruke iBeacon-teknologien, er det viktig å ha en unik ID for appen din. Du kan bruke noe som www.uuidgenerator.net eller hvis du bruker en Mac, kommandolinjen uuidgen verktøyet vil generere en unik ID.

PiBeacon er Live!

Med dette inntruffet, annonserer PiBeacon nå. Alt du trenger å gjøre nå, er å finne en passende iBeacon-app på iOS-butikken som Beacon Toolkit [Ikke lenger tilgjengelig] for å oppdage det, velge Lytte. Strengen ovenfor er gitt som en UUID i Beacon Toolkit-appen. Andre UUID-er kan brukes, men disse fungerer ikke med den appen: bruk den litt dyrere Beacon Toolbox ($ 4,99), som skal kunne identifisere de fleste iBeacons innenfor rekkevidde.

Unhappy om å dedikere en Raspberry Pi til denne enkeltoppgaven? Ikke bekymre deg - du kan bygge en Arduino iBeacon i stedet, så lenge du har et BLE skjold (som kan være tilgjengelig i din Arduino startpakke. Hva er i din Arduino Starter Kit? [Arduino Beginners] Hva er i din Arduino Starter Kit? Arduino Beginners] Faced med en boks full av elektroniske komponenter, er det lett å bli overveldet. Her er en veiledning for akkurat det du finner i ditt sett. Les mer). Her er en demonstrasjon:

Føler enda mer eventyrlystne? $ 10 verdt elektronikk og noen loddemuligheter Lær hvordan å lodde, med disse enkle tips og prosjekter Lær hvordan å lodde, med disse enkle tips og prosjekter Er du litt skremt av tanken på et varmt jern og smeltet metall? Hvis du vil begynne å jobbe med elektronikk, må du lære å lodde. La oss hjelpe. Les mer vil også netto du en DIY iBeacon.

Spørsmål eller kommentarer? La dem være under.

Utforsk mer om: Bluetooth, Raspberry Pi.