Door Koen Vervloesem

Freelanceredacteur

Bluetooth Low Energy voor domotica

Lage drempel en breed ondersteund

Gelaagde architectuur en databroadcasting

De Bluetooth Core Specification telt meer dan 3200 pagina’s en daar komen nog heel wat andere specificaties bij. Net als andere protocollen maakt BLE echter gebruik van een gelaagde architectuur, waardoor de meeste eindgebruikertoepassingen alleen met de hogere lagen in contact komen.

De lagen zijn onderverdeeld in twee blokken: controller en host. Onderaan bevinden zich de lagen die door de controller worden uitgevoerd: physical layer, link layer en direct test mode. In deze lagen doet de bluetoothradio zijn werk. De communicatie met de buitenwereld gebeurt via de antenne, in een frequentieband rond 2,4GHz, en de communicatie met de host gebeurt via een laag die tussen de twee blokken zit: de host controller interface.

Daarboven bevindt zich dus het host-blok, waarmee de host zijn taken uitvoert. Ruwweg kun je zeggen dat de controller een BLE-dongle is en je laptop of Raspberry Pi een BLE-host. Tegenwoordig hebben de meeste computers al een BLE-controller ingebouwd en dan gebeurt de communicatie tussen controller en host niet via USB, maar via SDIO of UART. In domotica-apparaten die op batterijen werken, zijn de controller en host vaak uitgevoerd in één chipset, en dan is de HCI geen fysieke, maar een logische interface.

Bluetooth Low Energy heeft een gelaagde architectuur. Bron: Bluetooth SIG

Data broadcasten

De software die uiteindelijk van BLE gebruikmaakt, doet dat via de bovenste lagen in het host-blok. Om het gebruik van BLE in domotica te begrijpen, is het minder belangrijk om exact te weten wat in welke laag gebeurt, maar moet je wel enkele sleutelconcepten kennen. De peripheral en central zijn de belangrijkste.

Een peripheral is een apparaat dat zijn aanwezigheid aankondigt door advertising packets uit te sturen en eventueel een verbinding toe te laten vanaf een ander BLE-apparaat. In zo’n advertising packet kan ook data verstuurd worden: 31 bytes in een pakket op een primary advertisement channel en 254 bytes in de andere kanalen. Een central kan luisteren naar advertisements en dus eventueel aanwezige data uitlezen. Omdat elk BLE-apparaat in de buurt deze pakketten kan ontvangen, is dit een vorm van broadcastcommunicatie. Dat gebeurt onversleuteld.

Een van de types advertising packets is manufacturer-specific data. Hierin kan elke fabrikant zijn eigen, al dan niet openbaar gespecificeerde dataformaat gebruiken. Bluetoothbeacons zijn een voorbeeld hiervan. Deze sturen via manufacturer-specific advertising packets een uuid, major en minor, en het zendvermogen op 1m afstand uit, zodat je telefoon de afstand tot het beacon kan bepalen. Ook allerlei sensoren maken gebruik van manufacturer-specific data, zoals de RuuviTag en Xiaomi Mijia-sensoren. Sommige van die laatste versleutelen overigens wel de advertising packets. Je hebt dan een ‘bindkey’ nodig om de sensordata te lezen.

De RuuviTag is een BLE-sensor die temperatuur, luchtvochtigheid en luchtdruk meet.

Dit artikel kun je gratis lezen zonder adblocker

Alle content op Tweakers is gratis voor iedereen toegankelijk. Het enige dat we van je vragen is dat je de advertenties niet blokkeert, zodat we de inkomsten hebben om in Tweakers te blijven investeren. Je hoeft hierbij niet bang te zijn dat je privacy of veiligheid in het geding komt, want ons advertentiesysteem werkt volledig zonder thirdpartytracking.

Bekijk onze uitleg hoe je voor Tweakers een uitzondering kunt maken in je adblocker.

Ben je abonnee? Log dan in.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee