IoTize, gevestigd in Grenoble (Frankrijk), is gespecialiseerd in het toevoegen van draadloze connectiviteit aan vrijwel alles. Door een van hun interfaces aan een systeem toe te voegen, kan dat bijvoorbeeld gegevens via internet verzenden of op afstand worden bediend. Het wordt onderdeel van het Internet of Things (IoT) – dat wil zeggen dat het ‘ge-iotizeerd’ is.

Er zijn andere spelers op dit gebied, maar IoTize is anders omdat ze ook tools aanbieden om het visualiseren en gebruiken van de gegevens die door hun modules zijn vastgelegd, te vereenvoudigen, of het nu een app op een smartphone of in de cloud is. Bovendien verwerkt IoTize meerdere draadloze standaarden zoals WiFi, Bluetooth en NFC (ondersteuning voor Sigfox is aangekondigd).

TapNLink Wireless Primer kit

Dat klinkt allemaal beslist interessant. Er zijn goedkope evaluatiekits beschikbaar om een idee te krijgen van wat IoTize voor u kan doen. Omdat ik bij Elektor notoir moeilijk te overtuigen ben, heb ik met een daarvan geëxperimenteerd: de TapNLink Wireless Primer kit (figuur 1). Praktische ervaring zegt meestal meer dan een reclamebrochure, nietwaar?

 

IoTize TapNLink Wireless Primer
Figuur 1. Deze TapNLink Wireless Primer-kit (TNL-PRIMER-NBW) van IoTize heeft NFC, Bluetooth en WiFi.
(De USB-dongle dient alleen om een indruk van de grootte van de blisterverpakking te geven.)

De TapNLink Wireless Primer kit bestaat uit vier onderdelen (figuur 2):
 

  • een IoTize µTap-module;
  • een kleine microcontrollermodule (Blue Pill);
  • een korte veelkleurige 5-aderige kabel;
  • een grijze kunststof kap.

Het idee is dat de kleine microcontrollermodule – een STM32 ARM Cortex-M3-board, beter bekend onder de naam Blue Pill – de rol speelt van het target device dat moet worden geiotizeerd. Het wordt verbonden met de µTap-module – een postzegelgroot board van 38×28 mm – met behulp van de kabel die ideel uitmaakt van de kit. De IoTize-module kan (optioneel) in de kunststof kap worden vastgeklikt zodat deze met twee schroeven (niet meegeleverd) bijvoorbeeld tegen een wand of op een machine kan worden gemonteerd.
 

TapNLink Wireless Primer contents
Figuur 2. De TapNLink Wireless Primer-kit uitgepakt. Het kleine witte printje is het µTap-board, de blauwe module is het STM32 (Blue Pill) targetboard.

Twee versies

Merk op dat er twee versies zijn van de TapNLink Wireless Primer kit, een met NFC en Bluetooth (NB), en een andere waarbij WiFi aan de mix is toegevoegd (NBW). Er bestaan ook modules voor uitsluitend NFC, maar die zijn niet in kitvorm verkrijgbaar. De kleur van het etiket op de plastic kap maakt duidelijk welke u in handen hebt: wit is met WiFi, blauw is zonder. Ik heb de witte versie geprobeerd, de TNL-PRIMER-NBW.

Oranje is het nieuwe roze

De verpakking van de kit fungeert ook als snelstart-handleiding en laat zien hoe de twee boards met elkaar moeten worden verbonden. Er er is sprake van een roze draad, maar de kabel in mijn set had die niet. Dit is enigszins verwarrend omdat de IoTize-module een vijfpolige connector heeft, terwijl het STM32-board slechts vier headerpinnen heeft en de opschriften op de boards niet hetzelfde zijn. De kabel heeft aan de ene kant een 5-polige connector en aan de andere kant vijf losse uiteinden, omdat ze op elk microcontrollerboard moeten kunnen worden aangesloten. Het bleek dat de roze draad in mijn geval oranje was. Roze lijkt wel wat op oranje, maar vertel dat liever niet aan de koninklijke familie. De paarse draad wordt niet aangesloten op het STM32-board. Zie ook figuur 3.

De voeding van het evaluatiesysteem wordt geleverd door de STM32-module door een micro-USB-kabel aan te sluiten op een computer (beide niet inbegrepen in de kit). Dat geeft verder niets want u hebt sowieso een computer nodig.

 

TapNLink Wireless Primer assembled
Figuur 3. De evaluatiekit is volledig gemonteerd en klaar om te gaan experimenteren.

Eerste stappen

Voordat we echter met de computer aan de slag gaan, proberen we eerst de TapNLink uit met een smartphone met NFC. Als u er een hebt en u houdt hem boven de µTap-module, wordt de tag gedetecteerd en wordt u naar de IoTize-demo-app in de Google Play Store geleid. Installeer die app en open hem. Als u Bluetooth hebt geactiveerd, kunt u nu verbinding maken met het apparaat (mogelijk moet u het eerst aan uw telefoon koppelen voordat u het kunt gebruiken). Nadat de verbinding is genaakt ziet u een teller en de besturing voor een LED. Op het tabblad MySensors ziet u de waarde van de voedingsspanning van het STM32-board (figuur 4) en als u naar boven scrollt ziet u ook de temperatuur van de STM32-processor.

U moet inloggen om de LED aan te sturen

Het tabblad Count Control heeft een schuifregelaar om de knipperfrequentie van LED PC13 op de STM32-print in te stellen. Om dat te laten werken, moet u eerst inloggen op de IoTize-module. Doe dat door de optie Supervision in het menu van de app aan te tikken (het pictogram in de linkerbovenhoek). Voer ‘admin’ in voor zowel de gebruiker als het wachtwoord. Ga terug naar de schuifregelaar en wijzig de knipperfrequentie van de LED.

WiFi werkt ook

In plaats van dit via Bluetooth te doen, kunt u precies hetzelfde resultaat bereiken via WiFi. Om WiFi te gebruiken, maakt u verbinding met het netwerk ‘Sensor demo_xxxxx’ (waarbij xxxxx een 5-cijferig getal is). Ze vergaten het in de documentatie te vermelden, ik heb het tenminste niet gezien, maar het standaard-wachtwoord is ‘ABCD1234’ (in plaats van ‘12345678’ zoals alle anderen gebruiken).

Nu we weten dat het evaluatiesysteem werkt, kunnen we verder gaan en proberen de applicatie te wijzigen. Gedetailleerde tutorials om dit te doen zijn beschikbaar op de IoTize-website, samen met tal van andere nuttige documenten. Ik heb ze allemaal kunnen doornemen, en daarom zal het u waarschijnlijk ook lukken. Maar het is interessanter is om te bekijken hoe alles eigenlijk werkt.

 

IoTize Sensor Demo app on Android
Figuur 4. De Sensor Demo-app op een Android-smartphone die de voedingsspanning van de STM32-processor op het target board toont.

Twee applicaties

Eigenlijk hebben we met twee applicaties te maken: de ene draait op de Blue Pill en de andere draait op het µTap-board.

Dit is waarschijnlijk een goed moment om in meer detail uit te leggen hoe de twee boards communiceren. Doorgaans weten beide applicaties in een opstelling als deze dat de ander bestaat en hebben beide tenminste enige kennis over wat voor soort gegevens de ander verwacht en welke functies het betreft. Hier echter niet. Het STM32-board heeft geen weet van het bestaan van de IoTize-module en vice versa, maar toch communiceren ze met elkaar. Hoe is dat mogelijk?

Is het een debugger?

De truc is dat de µTap-module zich als een debugger gedraagt. Hij maakt als het ware verbinding met het debug-target en inspecteert, net als een debugger, de registers en het geheugen van het target – en kan deze ook wijzigen. Het target is de STM32-module. Om dit te laten werken, moet het target een compatibele interface hebben. Momenteel wordt alleen het SWD debug-protocol van ARM ondersteund, maar voor andere microcontrollers is het gepatenteerde Secure Serial Software Protocol (S3P) beschikbaar. Dit kan niet alleen worden geïmplementeerd op elke microcontroller die twee I/O-poorten over heeft (een bibliotheek voor Arduino is beschikbaar op GitHub), het biedt ook veilige communicatie. Daarom verdient S3P zelfs op MCU’s die wel SWD spreken de voorkeur.

Net als een debugger heeft de IoTize-app een lijst of geheugentoepassing nodig met de variabelen die door de target-applicatie worden gebruikt. Hij kan daarna het tearget vragen om de inhoud van de variabele die is opgeslagen op adres A te verzenden of hem opdragen iets naar adres B te schrijven. Deze lijst moet worden aangeleverd door de compiler van de target-applicatie en bevindt zich meestal in het .ELF-bestand (en niet in het .HEX-bestand).

 
IoTize Studio
Figuur 5. Applicaties worden ontwikkeld in IoTize Studio (gratis), voornamelijk door objecten te slepen en neer te zetten.

Drag&Drop-programmeren met IoTize Studio

IoTize Studio, de gratis grafische geïntegreerde ontwikkelomgeving (IDE) voor IoTize-boards, maakt dit proces eenvoudig (figuur 5). Na het importeren van het .ELF-bestand van het target kent het de namen en adressen van de variabelen en registers die daar beschikbaar zijn. Voor de applicatie-ontwikkelaar zijn ze net als elke andere variabele. Dit betekent dat de µTap applicatie-ontwikkelaar geen toegang nodig heeft tot het targetsysteem. Hij of zij hoeft alleen te weten waarvoor de geïmporteerde variabelen zijn bedoeld (een juiste naamgeving helpt hier veel). Aan de andere kant betekent het dat wanneer de target-toepassing opnieuw wordt gecompileerd en de symbooltabel verandert, de IoTize-app ook opnieuw moet worden gecompileerd.

Nu gaat IoTize Studio een stuk verder, omdat het programmeren van het IoTize-board een kwestie is van gebruikers slepen en neerzetten op doelvariabelen die in bundels zijn gecombineerd. De applicatie wordt automatisch gegenereerd, inclusief alle webpagina’s die hij nodig heeft. En al doende kan IoTize Studio ook de Android-app produceren die op uw telefoon draait om te communiceren met het µTap-board. Klik gewoon op de knop Generate App. Dit laatste feature is mogelijk omdat de mensen van IoTize het Android app-ontwikkelsysteem ergens in de cloud op hun servers hebben geïnstalleerd. Daarom hoeft u als gebruiker niets anders te installeren dan IoTize Studio. En hoewel hiervoor een account nodig is om toegang te krijgen tot hun cloud, is het gratis.

Beveiliging eerst

Nu moeten we nog één belangrijke kwestie benadrukken, en dat is de veiligheid. We hebben het er zijdelings al over gehad, maar we zijn er niet nader op ingegaan. Bij het IoTize-ecosysteem (bij Elektor mogen we dit woord één keer per artikel gebruiken) staat gegevensbeveiliging centraal. Het is ingebed in het veilige seriële software-communicatieprotocol (S3P) tussen target en host (niet in SWD), en eveneens in het IoTize-toepassingsontwerp.

Het eerste IoT-gebod: gebruikers hebben rechten

Elke IoTize-applicatie heeft gebruikers, en deze gebruikers hebben rechten. Een IoTize-applicatie kan meerdere gebruikers hebben met verschillende rechten. Sommigen zijn administrator en mogen doen wat ze willen, terwijl anderen alleen bepaalde parameters zien, bijvoorbeeld een temperatuur of een spanning. We zagen beveiliging al in actie toen we de knipperfrequentie van de LED van de demo-applicatie wilden veranderen. De standaardgebruiker mag dit niet doen, men moet eerst inloggen.

 

IoTize Studio IOTZ Explorer pane
Figuur 6. Het IOTZ Explorer-paneel is het startpunt in IoTize Studio.
Naast allerlei app-dingen ziet u ook profielen en bundels en hoe deze samenhangen.
Gebruiker Paul heeft bijvoorbeeld toegang tot de variabele Count_Control
omdat hij een technisch profiel heeft..

Als gevolg hiervan moet u bij het maken van een applicatie in IoTize Studio niet alleen een hippe, funky grafische interface ontwerpen, maar ook gebruikers of profielen definiëren en daar rechten aan toekennen. De variabelen die de applicatie nodig heeft, samen met de profielen (gebruikers) die er toegang toe hebben, worden gecombineerd tot zogenaamde bundels (figuur 6). De bundels krijgen de vorm van tabbladen of pagina’s in de app en dus heeft elk profiel zijn eigen gebruikersinterface. Omdat dit allemaal een kwestie is van slepen en neerzetten, is het heel gemakkelijk om te zien wat gebruikers mogen doen en zien. Gebruikersbeheer is dus vrij eenvoudig, ook voor mij.

Cloud-ondersteuning

Ten slotte is er de cloud-ondersteuning – ook heel belangrijk. Het is mogelijk dat de mobiele app via MQTT communiceert met een cloud-dashboard dat wordt gegenereerd op basis van de configuratie van de mobiele app. Dit wordt gedaan met behulp van IoTize Studio en server-gebaseerde tools. Dashboards kunnen worden gebruikt op de IoTize-ontwikkelservers (waartoe u toegang hebt dankzij uw account voor het samenstellen van Android-apps, zie hierboven) en dit is compatibel met toonaangevende cloud-platforms zoals AWS, Watson, Azure en meer.

 

IoTize Studio cloud MQTT
Nadat u IoT-platform (MQTT) in het bovenste deelvenster
hebt geselecteerd, kunt u MQTT configureren
en het apparaat inschakelen om verbinding te maken met de cloud.

Conclusie

Hiermee zijn we aan het einde van deze bespreking gekomen. Concluderend kunnen we zeggen dat de mensen van IoTize een originele en efficiënte oplossing hebben bedacht om draadloze communicatie toe te voegen aan alle microcontroller-gebaseerde systemen die twee GPIO-pinnen over hebben. Hun oplossing ondersteunt niet alleen meerdere draadloze standaarden zoals NFC, Bluetooth en WiFi, maar wordt ook geleverd met ingebouwde gegevensbeveiliging, wat tegenwoordig waarschijnlijk het belangrijkste is voor een apparaat dat met het internet wordt verbonden.

Ook cloud-ondersteuning is niet vergeten dankzij MQTT en automatisch gegenereerde dashboards. En omdat time-to-market essentieel is, heeft IoTize veel moeite gedaan om het allemaal zo gemakkelijk mogelijk te maken. IoTize Studio met zijn slepen&neerzetten-programmering en de cloud-gebaseerde Android-app-compiler en cloud-dashboardtools maken het een fluitje van een cent om aan de slag te gaan. Ten slotte (dat hadden we nog niet gezegd) worden IoTize Studio en de boards ondersteund door een uitgebreid online documentatiesysteem.

En gewoon omdat ik toch ook nog wat negatiefs moeten zeggen ;-) – ik vind de kleur van de kunststof kap niet zo mooi.

Webinar

Maak kennis met de nieuwste functies van TapNLink Primers. Voeg NFC-, WiFi- of Bluetooth-interfaces toe aan uw toepassingen voor ARM Cortex-M gebaseerde microcontrollers. Maak mobiele apps om gegevens te ontvangen van uw applicatie en deze te beheren.

Demo-tools:

 

  • TapNLink-PRIMER voor NFC, Bluetooth en WiFi
  • IoTize Studio-configuratiesoftware
  • Ionic cross-platform app development tools voor Android

 

Voertaal: Engels

Max. aantal deelnemers: 50

Meld u nu aan op https://www.iotize.com/tapnlink-webinar.html