Intel IoT Gateway en Microsoft Azure IoT

Lokale setup

Microsoft heeft een rijk aanbod aan gecertifieerde IoT-devices. Wij kozen voor de Grove IoT Commercial Developer Kit. Deze kit bestaat uit een Intel NUC mini-pc die dienst doet als lokale toegangspoort. De NUC communiceert maakt gebruik van een USB-kabel om via het Grove-systeem (het kleine Arduino-moederbord) met de sensoren of aandrijvingen (actuatoren) te communiceren.

Het Grove-systeem maakt gebruik van een intuitive plug-en-play-interface. Daardoor moet je zelf niet solderen. Het bestaat uit een base shield dat je bovenop het Arduino-bord kan plaatsen. Het shield heeft verschillende analoge en digitale poorten. Die kan je met de Grove-modules (sensoren en actuators) verbinden door middel van special Grove-kabels. De kit bevat 9 modules, maar je kan er online bijkomende aanschaffen.

Intel NUC Developer Hub

De Intel IoT Developer Hub-software staat geïnstalleerd op de Intel NUC en vormt de belangrijkste toegang tot de IoT Gateway. Je kan er je toegangspoort mee beheren en verschillende pakketten installeren en updaten.

De meest opmerkelijke tool voorgeïnstalleerd is op de Gateway is de Node-RED, waarmee je je eigen IoT-workflows kan creëren en uitrollen. Er zijn verschillende nodes beschikbaar die kunnen interageren met de sensoren in de kit.

Een andere mogelijkheid is om je IoT Gateway-toestel te registeren in de Wind River Helix App Cloud, waarna je C/C++ en JavaScrip-projecten kan ontwikkelen en uitrollen in de Cloud9-omgeving. Je kan de gateway bovendien ook verbinden met een secure shell (SSH) voor command-line interactie.

Praktijkvoorbeeld: de temperatuursensor lezen

Een basisflow die we met de bovenstaande configuratie kunnen opstellen is bijvoorbeeld het inlezen van een temperatuursensor. De upm-grove-temperatuur-node zal de ruwe data van de sensor lezen. Deze moeten dan omgezet worden in betekenisvolle waarden. Dat is de taak van de functienode. De upm-grove-lcd-node tenslotte zal deze waarden projecteren op het kleine LCD-scherm.

 

Cloud setup met Microsoft Azure IoT Suite

Je setup goed plannen kan je heel wat moeilijkheden achteraf én tijd en geld besparen. Maak daarom een overzicht van alles wat je nodig hebt om je applicatie te doen draaien zoals voorzien.
De IoT gateway communiceert met de Microsoft Azure cloud via de IoT Hub, en dat zowel voor het versturen van sensordata als voor het ontvangen van commando’s.
De IoT-hub stuurt de sensordata door naar een Stream Analytics Job. Deze dients monitort alle binnenkomende sensordata, slaat ze op in een SQL-database en stuurt ze door naar een Event Hub.
De data wordt gevisualiseerd in een webapplicatie.
Met de Function App worden waarschuwingen teruggestuurd naar de IoT-hub en de gateway.

 

Een Microsoft Azure IoT Hub en device-identiteit creëren

De eerste stap is echter het opzetten van de Microsoft Azure IoT Hub. Dat kan eenvoudig met Azure Portal, waar je de respectievelijk service kan selecteren en aanvullen. Bijkomend dien je een consumergroep aan te maken die later kan gebruikt worden door de Stream Analytics Job. Elke applicatie die data uit je IoT-hub inleest moet een consumergroep krijgen.

1. Device-identiteit aanmaken

Om te zorgen dat de gateway berichten van de IoT-hub kan verzenden en ontvangen moet hij als device geregistreerd zijn. De unieke device-identiteit van je IoT-hub kan je eenvoudig aanmaken in de Device Explorer.

2. Sensordata publiceren op de Microsoft Azure IoT-hub

Nu de Azure IoT-hub geïnstalleerd is kunnen we sensordata in de cloud publiceren. Eerst moeten echter nog een reekst softwarepakketten geïnstalleerd worden in de Intel IoT-gateway, onder meer om te communiceren met Microzoft Azure Services. Het enige wat daarna nog geconfigureerd moet worden in de Node-RED-flow is de verbinning van de IoT-hub in de azureiothub-node en het device dat we in de vorige stap aangemaakt hebben.

3. Sensordata verwerken met Stream Analytics

Om de datastroom die van onze sensoren via de gateway naar de cloud stroomt te verwerken gebruiken we een Stream Analytics job. Deze service draait continu gebruikt de output van de IoT Hub als input, voert enkele zoekopdrachten uit en genereert een SQL-database en Event Hub. Nadat beide diensten zijn opgesteld moeten ze met elkaar verbonden worden met een query.

4. Sensordata weergaven met Microsoft Web Apps

De volgende stap is het opzetten van een Web App in Microsoft Azure. De brondcode van de web app is meegeleverd en kan je vinden in een github repository. Het enige wat je moet doen is configureren voor jou SQL-database en IoT-hub. De web app is een enkelvoudige page app die elke 30 seconden ververst en de meest recente waarden weergeeft op het scherm.

5. Berichten van de Microsoft IoT-hub naar de Intel IoT-gateway sturen

Zoals eerder vermeldt wordt de IoT-hub ook gebruikt om commando’s terug te sturen naar de gateway. Dat kan op twee manieren.

  1. Met de testknop op de webpagina
  2. Via een Function App. Function Apps zijn Microsoft’s versie van een ‘serverloos computermodel’. Je kan er een kort stukje coe mee specifiëren dat uitgevoerd wordt bij een bepaalde trigger. Als je bijvoorbeeld de Event Hub als trigger instelt en die linkt aan de temperatuursensoren, zullen alle temperatuurswaarschuwingen (bijvoorbeeld wanneer de temperatuur boven een bepaalde drempel gaat) de brondcode activeren.

6. Sensordata weergeven met Power BI

De laatste, optionele stap is het weergeven van sensordata in de Web App met Power BI. Je kan de datasources eenvoudig beheren via het Data Source Settings-dialoogvenster. Voer hier je SQL-server en -database in. De data wordt daarna weergegeven in de grafiek. Om de grafiek in de Web App te kunnen embedden, moet ze eerst in Power BI op het weg gepubliceerd worden.