Bluetooth BLE sniffer – onderscheppen, transformeren en analyseren van BLE signalen

13 september 2022

Binnen de ontwikkelingen rondom sensoring neemt het gebruik van Bluetooth Low Energy (Bluetooth BLE) een grote vlucht. Bluetooth BLE geeft de mogelijkheid om gedurende een lange tijd een batterij- of accu-gevoede sensor bepaalde waarden te meten en te verzenden naar een data-ontvanger. Deze data-ontvanger kan in contact staan met een serie van sensor en daarmee een soort hub-functie vervullen.

De sensor welke ik vandaag toepas is een standaard XIAOMI Mijia LYWSD03MMC Bluetooth 4.2 thermometer. De firmware van deze thermometer/hygrometer kan sinds kort overschreven worden met een custom firmware, waarmee de functionaliteit, maar ook de zendfrequentie aangepast kan worden. De zendfrequentie – aantal samples per tijdseenheid welke via BLE verzonden worden – is vrijwel lineair verbonden met het stroomverbruik en daarmee de gebruiksduur. Zo kan de sample frequentie eenvoudig omgezet worden naar één keer per 10 seconde of één keer per 10 minuten.

Voor het onderscheppen van de BLE payload maak ik in dit geval gebruik van het BLE Advertising packet format. Voordeel van dit format is dat het gelijktijdig door meerdere ontvangers opgepakt kan worden en daarmee bijvoorbeeld ook direct uitgelezen kan worden door domotica-systemen als Home Assistant. De kosten van deze sensor zijn minder dan € 10, waardoor het aantrekkelijk wordt om realtime een heat map van een kantoorsetting of huisopstelling in zicht te brengen.

Bluetooth BLE wordt ondersteund door diverse processors, zoals bijvoorbeeld de ESP32 omgeving of Nordic Semiconductor low power processors. Naast ‘environments’ sensors is het natuurlijk ook mogelijk om  dimensies als – beweging, draaihoek, luchtdruk, magnetisch veld, radioactiviteit, bodemvochtigheid, zuurgraad, afstand, versnelling – te kunnen meten. En afhankelijk van de gebruikte technieken en embedded processing oplossing is een langdurige stroom aan metingen prima te realiseren.