19-10-2016
Internet of Things (IoT) is de laatste tijd sterk in opkomst. Thuis-toepassingen zoals de slimme thermostaat of verlichting die via een app in- en uitgeschakeld kan worden raken al steeds meer ingeburgerd en bieden extra comfort in een huiselijke omgeving.
Voor professionele organisaties biedt IoT nog veel meer mogelijkheden. Doordat praktisch alle bedrijfsmiddelen uitgerust kunnen worden met sensoren en actuatoren kunnen processen verder geoptimaliseerd worden, kan men duurzamer ondernemen en komt er een grote hoeveelheid data voor handen waar veel nuttige informatie uit gehaald kan worden. De KVK heeft hier een duidelijke video over gepubliceerd.
Ook als softwareontwikkelaars komen wij steeds vaker in aanraking met IoT. We zien hierdoor vaak nieuwe toepassingen voor onze eigen klanten ontstaan, echter ontbrak het ons aan praktijkervaring. Wij waren benieuwd naar de mogelijkheden en gingen er mee aan de slag.
Onze Innovatiedag is een maandelijks terugkerende dag waarop wij gaan experimenteren met innovatieve technieken. Hierdoor blijft onze kennis up-to-date en kunnen we beoordelen hoe toepasbaar de opgedane kennis in de praktijk is. Onze eerste Innovatiedag op maandag 19 september stond in het teken van Internet of Things. Het doel was simpel; Binnen een dag een proof-of-concept afronden waarmee we sensordata real-time op het internet kunnen publiceren.
Om sensordata te kunnen inwinnen en delen is hardware nodig. Sensoren en een ‘minicomputer’. Niet direct het onderdeel waar wij de meeste affiniteit mee hebben. Om grote teleurstellingen op de eerste dag te voorkomen hebben we hier wat extra voorbereidingstijd in gestoken.
Onze minicomputer (Raspberry Pi 3) hebben we vooraf aangesloten en getest. Dit bleek geen overbodig luxe want de meegeleverde SD-kaart was corrupt. Nadat deze was vervangen en het stuurprogramma (Microsoft IoT Core) was geïnstalleerd stond er een solide basis om mee aan de slag te gaan.
Maandag de 19e was de eerste stap het aansluiten van een geschikte sensor op de minicomputer. Wij hebben ervoor gekozen met de RGB-sensor te gaan werken. Met een RGB-sensor kunnen kleuren geregistreerd worden. Onze keuze viel op deze sensor omdat de werking hiervan goed te demonstreren is. Door de kleur voor de sensor te passen zie je direct een duidelijk resultaat. Duidelijker dan bij een sensor die bijvoorbeeld tempratuur of luchtvochtigheid meet.
Toen de sensor op de minicomputer was aangesloten konden we starten met het uitlezen van de data. Hiervoor hebben we een kleine app ontwikkeld die op de minicomputer werd geïnstalleerd. Deze app leest de RGB-waarde uit en slaat deze tijdelijk op in de app.
De volgende uitdaging was deze data op het internet te krijgen. Hiervoor hebben we gebruik gemaakt van de Microsoft Azure IoT-Hub. Dit is een platform dat speciaal is ontwikkeld om IoT-apparaten te koppelen en kleine hoeveelheden data te kunnen verwerken. De apparaten die van deze hub gebruik mogen maken moeten eerst aangemeld worden. Er wordt dan een unieke key gegenereerd zodat de apparaten data kunnen publiceren en uitlezen. Zonder deze key heeft men geen toegang tot de hub en dus de data. Uiteindelijk konden we de data rond lunchtijd op de IOT-Hub publiceren en hadden we de helft van ons doel bereikt. We konden met een gerust hart aanschuiven voor de lunch!
Na de lunch moest de data die op de IoT-Hub gepubliceerd werd uitgelezen worden en in een openbare webapp gepubliceerd worden. Hier kwamen we op voor ons bekend terrein. De IoT-Hub bleek veel overeenkomsten met de Azure Servicebus te hebben, waar we al ruime ervaring mee hebben. De enige uitdaging die we hierin nog hadden was het real-time publiceren van de data in de webapp, dus zonder de pagina te vernieuwen. De oplossing bleek te liggen in SignalR, een library van Microsoft die real-time client-server communicatie mogelijk maakt. De implementatie hiervan verliep uiterst voorspoedig en rond 17:00 hadden we ons doel bereikt; een proof-of-concept waarmee we sensordata real-time op het internet wordt gepubliceerd. Een impressie van het resultaat is op YouTube te zien.
Volgende Innovatiedag
Onze volgende Innovatiedag staat gepland voor vrijdag 21 oktober. We zijn er nog niet helemaal uit waarmee we aan de slag gaan. Zo kunnen we voortborduren op IoT door ook de aansturing van hardware via een webapplicatie te realiseren. Daarnaast zijn ook nieuwe ontwikkeltechnieken zoals ASP.NET Core 1.0 en AngularJs 2.0 de moeite waard om mee aan de slag te gaan. Suggesties zijn altijd welkom!