Bluetooth apps worden steeds vaker gebruikt om verbinding te maken met een apparaat of machine in de buurt. Zo kan je draadloos het apparaat aansturen, instellingen wijzigen of de status bekijken. De techniek die hiervoor gebruikt wordt heet Bluetooth Low Energy (BLE) en dit wordt ondersteund door vrijwel alle smartphones en tablets. Daarnaast zijn de materiaalkosten voor de elektrotechnische hardware in devices ook laag: Een programmeerbare chip met ondersteuning voor WiFi en BLE heb je al voor minder dan 5 euro. Kortom, de brede beschikbaarheid van de technologie biedt veel mogelijkheden om devices "slim" en "connected" te maken. Het enige wat je daarnaast nog nodig hebt is de maatwerk-app die afgestemd is op het apparaat.
Scannen ondersteunde apparaten
Voordat je verbinding kan maken met een apparaat moet je die eerst kunnen vinden. Het zoeken van Bluetooth-enabled apparaten noemen we “scannen”. Apparaten met een Bluetooth-module laten andere apparaten, zoals smartphones, draadloos weten dat ze er zijn. Jouw maatwerk-app op de smartphone moet natuurlijk niet alle Bluetooth-apparaten (zoals draadloze speakers en toetsenborden) laten zien, maar alleen de apparaten waarvoor de app gemaakt is en die “dezelfde taal” spreken. Zorg er dus voor dat je apparaat of machine onderscheiden kan worden van andere Bluetooth-apparaten en filter hierop in de app. Verder is het handig als de lijst gesorteerd is op signaalsterkte. Op die manier zullen de apparaten die het dichtst bij zijn bovenaan staan.
Verbinding maken via Bluetooth Low Energy (BLE)
Je kan pas opdrachten sturen naar een apparaat als je verbinding hebt gemaakt via BLE. Dus zorg ervoor dat de gebruiker een apparaat in de lijst kan selecteren om er verbinding mee te maken. Zodra de verbinding is opgezet kan het apparaat meer informatie geven aan de app over de mogelijkheden die het biedt en kunnen lees- en schrijfopdrachten gestuurd worden. Apparaten zouden hierbij zo veel mogelijk gebruik moeten maken van standaard protocollen (GATT services). Om problemen te voorkomen is het verder belangrijk dat opdrachten na elkaar worden gestuurd en niet tegelijkertijd. Een goed geprogrammeerde app kan dit proces in goede banen leiden.⬈
IoT-apparaat verbinden met internet via WiFi
Het nadeel van Bluetooth is dat het alleen werkt als je met je smartphone in de buurt van het apparaat bent. Wil je het apparaat ook vanaf een andere locatie kunnen bedienen of monitoren (zoals een slimme thermostaat)? Dan zou je het apparaat -als deze dat ook ondersteunt- via een lokaal WiFi-netwerk met het internet kunnen verbinden. Net zoals je smartphone heeft ook dit apparaat dan het wachtwoord nodig van je WiFi-netwerk. Zonder display en toetsenbord wordt het lastig om dat in te voeren en daarom wordt ook vaak de maatwerk IoT-app gebruikt om het juiste WiFi netwerk te selecteren en het wachtwoord in te voeren. Via BLE (of via SoftAP ↗︎) kunnen deze gegevens dan naar het IoT-apparaat gestuurd worden, zodat die zelf met WiFi en internet verbinding kan maken (WiFi-provisioning).
Best practices voor Bluetooth IoT-apps
Onder de motorkap zit veel techniek in een Bluetooth app, maar een goed en gebruiksvriendelijk ontworpen IoT-app zorgt ervoor dat die complexiteit niet zichtbaar is voor de gebruiker. Denk er ook aan dat de gebruiker toestemming moet geven dat de app gebruik mag maken van Bluetooth. Al lijkt het overbodig, leg bij het vragen van de toestemming goed uit waarvoor Bluetooth gebruikt wordt en geef heldere feedback aan de gebruiker als Bluetooth niet gebruikt kan of mag worden. Daarnaast zijn er een paar dingen die je kan doen om het apparaat zelf gebruiksvriendelijk, veilig en toekomstvast te maken.
Best practices voor hardware met BLE-techniek
Ten eerste is het belangrijk dat je de gebruiker laat weten met welk apparaat de app verbonden is. Dit kan je doen door bijvoorbeeld een LED-lampje op het apparaat te laten knipperen als er een BLE-verbinding actief is. Dit is vooral handig als er meerdere apparaten in de buurt zijn (denk aan een reeks slimme lantaarnpalen in de straat). Een fysieke knop kan voor sommige toepassingen gebruikt worden om Bluetooth alleen tijdelijk open te stellen voor een verbinding. Verder kan je sensoren aansluiten op de microcontroller (chip), waardoor je allerlei meetgegevens kan verwerken in slimme apps voor web en mobiel.
Best practices voor veilige firmware
De software op de chip van het apparaat noemen we firmware. Zorg ervoor in de firmware dat je device alleen opdrachten toestaat van geautoriseerde gebruikers, zodat niet een wildvreemde zonder jouw toestemming het apparaat gaat bedienen. Verder is het handig als de firmware van het apparaat op afstand (over-the-air) geüpdatet kan worden, zodat je apparatuur veilig blijft of indien nodig van nieuwe functionaliteit kan worden voorzien. We adviseren daarom om gebruik te maken van het IoT-besturingssysteem FreeRTOS, zodat je ook gebruik kan maken van AWS IoT Over The Air (OTA) updates voor de firmware. Dit sluit ook goed aan op de andere IoT-diensten van Amazon Web Services en natuurlijk onze platform-technologie.
Specialist voor connected devices
Voor oplossingen en platformen met BLE- of WiFi-connected devices heb je meerdere specialisten nodig. Hier bij Everdune hebben we de elektrotechnische kennis en achtergrond om mee te praten -en te denken- met hardware-ontwikkelaars, maar onze focus ligt op het ontwerpen en bouwen van apps en cloudplatformen. We werken daarom samen met bedrijven die specialist zijn op het vlak van hardware en firmware. Zo bouwen we samen met partners, de klant en eindgebruikers de perfecte oplossing. Hopelijk helpen deze best practices je om een goede app met Bluetooth Low Energy of een andere IoT-oplossing te (laten) ontwikkelen!