- Wat is BLE en Bluetooth Beacon?
- Hoe werkt en wordt BLE-technologie gebruikt met bakens?
- Wat is Eddystone Beacon?
- Vereisten
- Stel Raspberry Pi in voor Eddystone Beacon
- Optimaliseer het zendsignaalvermogen door Tx Power te kalibreren
- Toepassingen van Eddystone Bluetooth Beacon
Bluetooth is een van de revolutionaire technologieën om draadloos gegevens over te dragen, andere apparaten te bedienen, domoticasystemen te bouwen, enz. Maar heb je je ooit afgevraagd dat Bluetooth ook kan worden gebruikt voor het uitzenden van informatie naar apparaten in de buurt om belangrijke informatie weer te geven. afrekenen enz. Er is een protocol ontwikkeld door de Google om de taak uit te voeren die gemakkelijk kan worden geïmplementeerd in Raspberry Pi om er een Bluetooth Beacon-zender van te maken.
In deze tutorial maken we kennis met BLE (Bluetooth Low Energy) en Bluetooth beacon en installeren we de Eddystone Bluetooth Beacon in Raspberry Pi om een URL uit te zenden. Het is heel eenvoudig om de Raspberry Pi om te zetten in een Bluetooth Beacon, omdat hij ingebouwde Bluetooth heeft.
Wat is BLE en Bluetooth Beacon?
De Bluetooth Low Energy, zoals de naam al aangeeft, verbruikt minder stroom dan klassieke Bluetooth. Dit wordt bereikt door indien nodig gegevens te verzenden met vooraf gedefinieerde periodieke updates. Maar in tegenstelling tot klassieke Bluetooth wordt het niet gebruikt om bestanden of muziek over te zetten. Een BLE-apparaat werkt met Bluetooth V4.0 en kan met een laag stroomverbruik werken als een server of als een client, waardoor BLE een ideale keuze is voor bakens, smartwatches, fitnessbanden enz. Klassieke Bluetooth daarentegen is gewoon het simpele, oude Bluetooth-protocol dat we gebruiken om bestanden en andere gegevens over te dragen. Aan bijna alle BLE-apparaten is klassieke Bluetooth-functionaliteit gekoppeld. We hebben BLE eerder in detail uitgelegd met ESP32.
Bluetooth-bakens:
Bakens zijn de hardwareapparaten die bepaalde berichten naar elektronische apparaten in de buurt verzenden en zich gedragen als een omroep. Deze technologie stelt de draagbare apparaten in staat bepaalde acties uit te voeren wanneer ze zich in de buurt van het bakenapparaat bevinden. Nu kunnen bakens worden geïmplementeerd met behulp van BLE en klassieke Bluetooth. Omdat de meeste smartphones en andere elektronische apparaten compatibel zijn met BLE en kunnen worden gebruikt als Beacon-ontvanger, is het implementeren van BLE-baken efficiënter in vergelijking met klassieke Bluetooth-baken om het stroomverbruik te verminderen.
Gemiddeld kan een Bluetooth Low Energy-baken BLE-signalen tot 80 meter verzenden .
Hoe werkt en wordt BLE-technologie gebruikt met bakens?
BLE is een technologie met een laag stroomverbruik die is ontworpen voor communicatie over korte afstanden en het verdient de voorkeur wanneer de levensduur van de batterij een belangrijkere factor is dan een hoge gegevenssnelheid. De gegevensoverdracht in deze communicatie is slechts in één richting. BLE-baken verzendt met regelmatige tussenpozen kleine datapakketten. Deze datapakketten worden ontvangen en gedecodeerd door de beacon-scanner-app die op smartphones is geïnstalleerd. Deze ontvangen gegevens triggeren acties zoals het promoten van een product of het pushen van een bericht.
In Bluetooth-baken wordt een ID-nummer 10 keer per seconde verzonden door het via BLE-kanalen. Vervolgens wordt dit ID-nummer ontvangen door het Bluetooth-apparaat en herkend door de beacon-scanner-app, het koppelt het aan een actie, zoals het downloaden van een app of een stukje inhoud dat is opgeslagen in de cloud, en geeft het weer op de smartphone.
Wat is Eddystone Beacon?
Eddystone is een protocol dat is ontwikkeld door Google waarmee eenrichtingsberichten naar BLE-apparaten kunnen worden verzonden. Het Eddystone-URL-frame vormt de ruggengraat van het fysieke web, dat helpt bij het ontdekken van webinhoud in de omgeving. Beacon kan vier soorten gegevens uitzenden met behulp van het Eddystone-protocol. Ze zijn als volgt:
- Eddystone-URL voor het uitzenden van URL-adressen
- Eddystone-UID voor het uitzenden van bakens-ID's
- Eddystone-TLM voor het uitzenden van beacon-telemetrie zoals apparaattemperatuur, batterijsterkte, etc.
- Eddystone-EID voor beveiliging.
Er zijn ook andere soorten bakens, zoals iBeacon die voor iOS-ondersteunde apparaten is, maar Eddystone is alleen voor Android-apparaten. Houd er ook rekening mee dat Google de meldingen in de buurt heeft stopgezet, nu zal de gebruiker een gespecialiseerde beacon-scanner-app moeten installeren die de uitgezonden inhoud zal weergeven.
In deze tutorial gebruiken we Raspberry Pi als Eddystone Beacon en richten we ons op het uitzenden van URL-adressen met behulp van Eddystone URL, zodat iedereen gemakkelijk toegang heeft tot de uitgezonden informatie met behulp van hun Android-apparaten.
Vereisten
Hier is alleen Raspberry Pi nodig om dit Bluetooth Beacon te bouwen. Het zou Raspberry Pi 2 of nieuwer moeten zijn met Raspbian Jessie of een nieuwere OD erin geïnstalleerd.
Hier zullen we SSH gebruiken om toegang te krijgen tot Raspberry Pi op de laptop. U kunt VNC of Remote Desktop-verbinding op de laptop gebruiken, of uw Raspberry pi verbinden met een monitor. Lees hier meer over het headless instellen van Raspberry Pi zonder monitor.
Stel Raspberry Pi in voor Eddystone Beacon
Het is heel eenvoudig om de Eddystone-omroep op Raspberry Pi in te stellen. Het betreft slechts 3 opdrachten.
Dit kan worden gedaan door de HCI (Host controller Interface) te configureren die toegankelijk is met hciconfig commad. Om te controleren wat u met deze opdracht kunt doen, voert u de onderstaande opdracht in terminal in.
hciconfig -h
1. Eerst moeten we het Bluetooth-apparaat op onze Raspberry Pi inschakelen met het onderstaande commando.
sudo hciconfig hci0 omhoog
2. Nu moeten we de Bluetooth instellen op "adverteren en geen verbinding maken" met het onderstaande commando.
sudo hciconfig hci0 leadv 3
3. Bovenstaande commando's zorgen ervoor dat het apparaat een uitzenddienst uitvoert. Voer nu de bakengegevens in het volgende commando in dat verschillende framegegevens en URL's in hexadecimaal formaat bevat. Voer de onderstaande opdracht uit om het uitzenden van baken te starten.
sudo hcitool -i hci0 cmd 0x08 0x0008 1c 02 01 06 03 03 aa fe 14 16 aa fe 10 00 02 63 69 72 63 75 69 74 64 69 67 65 73 74 07 00 00 00
Dit commando zal de URL http://circuitdigest.com uitzenden.
Om het uitgezonden bericht op uw smartphone te bekijken, downloadt u de Physical Web App of Beacon-scanner op uw Android-smartphone en start u het scannen. U ziet de uitgezonden link in de app zoals hieronder weergegeven. Klik op de link om de website in de browser te bezoeken en te openen.
Laten we nu de hexadecimale codering van het bericht begrijpen. In onderstaande tabel hebben we uitleg gegeven over elke waarde die in de code aanwezig is:
Waarde |
Omschrijving |
---|---|
0x08 |
#OGF = Operatiegroepveld = Bluetooth-opdrachtgroep = 0x08 |
0x0008 |
#OCF = Bewerkingsopdrachtveld = HCI_LE_Set_Advertising_Data = 0x0008 |
1c |
Lengte. De hexadecimale 1c wordt geconverteerd naar 23 decimalen, wat het aantal bytes is dat volgt. |
02 |
Lengte |
01 |
Markeert de waarde van het gegevenstype |
06 |
Markeert gegevens |
03 |
Lengte |
03 |
Volledige lijst met 16-bits service-UUID's datatype-waarde |
aa |
16-bits Eddystone UUID |
bijv |
16-bits Eddystone UUID |
14 |
Lengte. De hexadecimale waarde 14 wordt geconverteerd naar 15 decimaal, wat het aantal bytes is dat volgt |
16 |
Waarde van het gegevenstype van servicegegevens |
aa |
16-bits Eddystone UUID |
bijv |
16-bits Eddystone UUID |
10 |
Frametype = URL |
00 |
TX Power (dit moet worden gekalibreerd) |
02 |
URL-schema (http: // = 0x02) |
63 |
'c' in hexadecimaal |
69 |
'i' in hexadecimaal |
72 |
'r' in hexadecimaal |
63 |
'c' in hexadecimaal |
75 |
'u' in hexadecimaal |
69 |
'i' in hexadecimaal |
74 |
't' in hexadecimaal |
64 |
'd' in hexadecimaal |
69 |
'i' in hexadecimaal |
67 |
'g' in hexadecimaal |
65 |
'e' in hexadecimaal |
73 |
's' in hexadecimaal |
74 |
't' in hexadecimaal |
07 |
.com (.com = 0x07) |
00 |
|
00 |
|
00 |
Om een aangepaste URL uit te zenden met Raspberry Pi Bluetooth Beacon, converteert u de URL-tekens naar hexadecimaal met behulp van een online tool en plaatst u deze in de bovenstaande opdracht. Het maximale aantal tekens dat kan worden verzonden is 16, als de URL te lang is, verkort deze dan met behulp van URL-verkortingsservices zoals bitly.com en pas de gegevens in de bovenstaande tabel aan.
Het is erg omslachtig en tijdrovend om elk teken naar een hexadecimaal equivalent om te zetten. Dus om uw werk gemakkelijk te doen, is er een Eddystone URL-opdrachtcalculator waarbij u alleen de URL hoeft in te voeren die u wilt laten uitzenden en u zult uw opdracht op deze manier gereed maken.
Bluetooth-baken zendt nu de URL uit en werkt prima, maar er is nog een ding dat moet worden gekalibreerd, namelijk Tx-vermogen, een van de waarden in het bovenstaande commando om de juiste afstand tot het Bluetooth-baken te krijgen.
Optimaliseer het zendsignaalvermogen door Tx Power te kalibreren
In Eddystone-frame zijn er weinig componenten die worden verzonden en Tx-vermogen is er een van die de sterkte van het signaal aangeeft. Door de sterkte van het signaal te decoderen, vindt de ontvanger de afstand tot de Beacon-omroep. De waarde van het Tx-vermogen kan variëren van -12 tot 10. We moeten de waarde vinden door middel van hit en trial om de juiste afstand te krijgen. Pas hiervoor de waarde van Tx power aan in het Eddystone berichtencommando en zet je smartphone op een afstand van 1 m met Beacon scanner app geopend. Begin nu met het plaatsen van de waarden van Tx-macht in de opdracht van 0 tot negatieve waarden. Vergeet niet om de decimale waarden om te zetten in hexa-decimaal formaat, gebruik hiervoor de online waarde-omzettertools voor eenvoudige decodering en neem de laatste twee cijfers van de geconverteerde waarde. In mijn geval is de hexa-waarde f4. Controleer de afstand in de scanner-app, pas de waarden aan totdat deze ongeveer 1 m aangeeft en daarna moet u de Eddystone URL-omroeper met nauwkeurige afstand gebruiken.
Toepassingen van Eddystone Bluetooth Beacon
Hier zijn enkele van de gebruiksscenario's voor BLE-baken:
- BLE-enabled detailhandel: deze technologie kan worden gebruikt om klanten in de buurt van de winkels aan te trekken door reclame te maken voor de opwindende aanbiedingen en verkopen.
- BLE beacon-enabled evenementen: het kan worden gebruikt voor eenvoudige registraties bij de evenementen en in stadions met eenvoudige betalingskassa's.
- BLE-bakens in onroerend goed: u krijgt alle details van beschikbare eigendommen bij u in de buurt en kunt met één aanraking boeken.
Er zijn veel andere toepassingen die u kunt bedenken en implementeren volgens de vereisten.
Dus dit is hoe de Raspberry Pi kan worden gebruikt om elk bericht of elke URL uit te zenden door deze met Eddystone om te zetten in een Bluetooth Beacon. Bekijk de demonstratievideo hieronder.
/>