Tag Archives: IOT

Evaluatie SensorTag Android combinatie

De bedoeling van deze oefening is het uitlezen van één van de sensors van de SensorTag, de temperatuur. In een later stadium wordt hier een message queue aangeknoopt, om de data in een datalake te storten. Hierdoor moet de oplossing in staat zijn om regelmatig de temperatuur te rapporteren.

Een zinvol voorbeeld van deze toepassing was niet te vinden op het internet.

De SensorTag bevat veel sensors, om de batterij te sparen gebruiken we er maar één. Als je met de SensorTag verbinding maakt, staan alle sensors uit, dus hoef je alleen de sensor aan te zetten die je nodig hebt. Ook vragen we om een lange rapportage interval zodat we het uiterste uit de CR2032 batterij kunnen halen.

De implementatie is gedaan op Android, omdat dit na kort onderzoek de eenvoudigste manier leek om deze applicatie te realiseren. Een aantal oplossingen op Linux werden overwogen, maar deze waren incompleet of verouderd. Ook nemen we aan dat de oplossing in een later stadium op Android Things gedraaid kan worden. Hierover later hopelijk meer.

Om de SensorTag zover te krijgen moeten er een aantal registers worden gezet. Dit vormt een soort boodschappenlijstje van zaken die achter elkaar moeten plaatsvinden. Als snel bleek dit de eerste teleurstelling, want de Android BLE stack zit heel dicht op de BLE radio, dus je mag alles zelf doen. Het probleem van de volgorde is opgelost met een beperkte state-machine.

Nadat de registers zijn gezet en gecontroleerd is of alles is goed gegaan, blijft de SensorTag uit zichzelf rapporteren.

Als de SensorTag in slaap is gevallen omdat er geen verbinding meer is, wordt hij niet uit zichzelf wakker. Dat maakt gebruik in een 24×7 oplossing onmogelijk. Om de SensorTag weer wakker te krijgen moet er op 1 van de knopjes van de SensorTag gedrukt worden.

Het uitvoeren van het programma kan niet in de Android Emulator want deze beschikt niet over Bluetooth ondersteuning.

De software heeft in principe de opbouw van een achtergrond service, maar is in de praktijk op een eenvoudige voorbeeld applicatie geplakt om eenvoudiger te kunnen ontwikkelen (vandaar af en toe een vreemde variabele naam).

Het prototype werd ontwikkeld met Android Studio, de uitvoering werd gedaan op een Samsung S5 met Lineage OS.

De SensorTag is van Texas Instruments https://store.ti.com/cc2650stk.aspx en is verkrijgbaar bij o.a. https://nl.farnell.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=15001

De code is beschikbaar op GitHub: https://github.com/QualityConsultancyGroup/example-android-sensortag

Voor de duidelijkheid: Er zit geen garantie op de software, en de software heeft geen industriële robuustheid, dus onbruikbaar anders dan voor een experiment.

Research en realisatie: 6uur.