Door Koen Vervloesem

Freelanceredacteur

Bluetooth Low Energy voor domotica

Lage drempel en breed ondersteund

Verbindingen en services verkennen

Terwijl broadcasten een one-to-many-vorm van communicatie is die maar in één richting werkt, heeft BLE ook een one-to-one-vorm van communicatie in twee richtingen: verbindingen. Als een peripheral verbindingen accepteert, wordt dat met een speciaal type advertising packet aangeduid. Zo kunnen centrals in de buurt te weten komen met welke apparaten ze verbinding kunnen maken.

Een peripheral kan maar met één central tegelijk verbonden zijn, maar een central kan met verschillende peripherals tegelijk verbinding maken. Een verbinding is in BLE by design asymmetrisch; de central voert de zwaarste taken uit, zodat de peripheral zo weinig mogelijk stroom verbruikt en dus lang meekan op een batterijlading.

Een peripheral kun je beschouwen als een verzameling data en die data wordt in BLE gestructureerd volgens het Attribute Protocol, of ATT. Elk stukje data is een attribuut, met een type (een 16bit- of 128bit-uuid), een handle (een 16bit-adres), een waarde en permissies. Twee types attributen zijn belangrijk om in een verbinding toegang tot de data van een peripheral te krijgen: services en characteristics. In het Attribute Protocol wordt overigens niet meer van peripheral en central gesproken, maar van server (die de data heeft) en client (die de data wil lezen of schrijven).

Services en characteristics

Het generic attribute profile (afgekort tot GATT, omdat het anders dezelfde afkorting zou hebben als generic access profile, een andere laag van de protocolstack) definieert het formaat van services en characteristics en hoe je deze vindt en gebruikt. Elk stukje informatie, zoals een batterijniveau of een temperatuur, is een characteristic. Een characteristic staat nooit geïsoleerd, maar maakt altijd deel uit van een service. Een service is een groepering van een of meer characteristics die samen een specifieke functionaliteit van een apparaat definiëren. Zo heeft de service device information characteristics voor de naam van de fabrikant, het modelnummer, de firmwarerevisie en nog andere informatie van het apparaat. Veel services bevatten echter gewoon één characteristic, zoals de battery service die een battery level heeft.

Met nRF Connect kun je eenvoudig de services en characteristics van je BLE-apparaten in huis verkennenAls je de services en characteristics van je BLE-apparaten in huis eens wilt verkennen, kan dat eenvoudig met de mobiele app nRF Connect van Nordic Semiconductor, die bestaat voor Android en iOS. De app scant naar BLE-apparaten, toont je de advertisementdata en laat je verbinding maken met de apparaten. Zodra je verbonden bent, kun je de services verkennen en van alle characteristics de waarde lezen of schrijven.

Een client die altijd de recentste temperatuur of het recentste batterijniveau wil weten, kan in principe om de zoveel seconden of minuten de overeenkomstige characteristics uitlezen. Dan zou de server echter heel wat energie verspillen. Daarom kan een server bij een characteristic ook aanduiden dat hij notificaties ondersteunt. De client laat dan aan de server weten dat hij geïnteresseerd is in notificaties voor die ene characteristic, bijvoorbeeld de temperatuur, en de server stuurt dan alleen een bericht naar de client als de waarde van die characteristic verandert. Een variant zijn indicaties; dat zijn notificaties waarbij de client een bevestiging moet terugsturen dat hij de data heeft ontvangen.

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