1.4. Functionele bouwstenen¶
We hebben bij het voorbeeld van de watersproeier-voorbeeld kennis gemaakt met de functionele IoT-keten:
In deze functionele IoT-keten:
koppelt de IoT-knoop de fysieke wereld aan de virtuele/logische wereld, met sensoren en actuatoren;
zorgen de controllers voor het meten en besturen van de sensoren en actuatoren, mede op basis van input van de diensten (services);
verwerken de diensten (services) de data van de sensoren; deze stellen de data en kennis van elders beschikbaar aan de controllers;
zorgt de web-app voor de interactie met de gebruikers.
We gaan hier in op de verschillende bouwstenen van deze IoT-keten. In de volgende hoofdstukken behandelen we de communicatie tussen deze functionele bouwstenen.
1.4.1. IoT-knoop¶
Een IoT-knoop koppelt de fysieke wereld aan de virtuele wereld. Zo’n knoop omvat gewoonlijk:
sensoren, om in de fysieke wereld te meten;
actuatoren, om in de fysieke wereld te sturen;
een microcontroller (“computer op een chip”) als controller, voor de besturing van de IoT-knoop;
communicatie, vaak draadloos (radioverbinding);
energie, voor draadloze knopen in de vorm van een batterij, soms aangevuld met energy harvesting.
In de voorbeelden gebruiken we een IoT-knoop met de volgende sensoren/actuatoren:
een of twee LEDs - als actuatoren
twee drukknoppen - als “event” sensoren
sensoren voor: temperatuur, luchtdruk en lichtniveau
Voor de draadloze communicatie hebben we de keuze uit verschillende radio’s (WiFi, RFM69, LoRa). De eisen die het “ding” en de omgeving daarvan stellen aan bitrate, bereik, mobiliteit en energieverbruik bepalen de keuze voor de radio.
Voor de microcontroller voor de besturing hebben we ook meerdere alternatieven, zoals Atmega AVR (Arduino), ESP8266, ESP32, ARM. De keuze voor de microcontroller hangt meer af van de eigen voorkeur en omstandigheden dan van de eisen van de toepassing. We gaan hier niet verder in op deze keuzemogelijkheden.
De figuur hierboven geeft de verschillende onderdelen weer van een IoT-knoop “kit”: sensoren/actuatoren, controller, radio, batterij. In de praktijk worden deze onderdelen meestal geïntegreerd tot een kleiner systeem.
1.4.2. Controller: NodeRed¶
De controllers coördineren de monitoring en sturing in de fysieke omgeving, de gebruikersinterface en de cloud-diensten.
Als software voor de lokale of globale controller gebruiken we NodeRed. IoT-toepassingen combineren vaak data uit verschillende bronnen: vanuit IoT-knopen, maar ook uit databases of andere datastromen. Om deze ruwe data bruikbaar te maken voor de gebruikerstoepassing, kun je deze eerst door externe diensten (Data Science, Artificial Intelligence, enz.) laten bewerken. Deze databronnen, diensten en gebruikerstoepassingen gebruiken verschillende protocollen en formaten. Met NodeRed knoop je deze verschillende onderdelen samen op een grafische manier. Daar voeg je je eigen besturing aan toe. Een NodeRed-server is in onze voorbeelden vrijwel altijd onderdeel van de IoT-keten.
1.4.3. Diensten¶
Een IoT-toepassing wordt “slim” door het combineren van de IoT-data van de IoT-knopen in combinatie met de diensten “in the cloud”. Via deze diensten komen allerlei andere gegevens beschikbaar voor de IoT-knopen. In het voorbeeld van de watersproeier kun je met behulp van de weersverwachting beter sproeien. Deze diensten verwerken ook de IoT-data en combineren deze met externe gegevens: daarmee worden deze diensten ook steeds slimmer.
1.4.4. App: dashboard¶
Uiteindelijk komen de IoT-data terecht bij een webtoepassing (web-app), als gebruikersinterface in de IoT-keten. Een voorbeeld van een eenvoudige toepassing is een dashboard, met een samenvatting van de gegevens van de IoT-knopen.
In onze voorbeeld-toepassing werken we met een eenvoudig dashboard met de gegevens van één IoT-knoop. Dit dashboard maken we met NodeRed: we gebruiken deze dan (ook) als webserver. Via dit dashboard kunnen we ook de actuators van de IoT-knoop bedienen.
1.4.5. Toetsvragen¶
-
Q-1: Plaats elke term bij de best passende omschrijving
Zie de eerdere figuren in dit gedeelte.
- controller
- coördineert meten, sturen, gebruikers (UI) en diensten
- IoT-knoop
- meet en/of stuurt in de fysieke omgeving
- app (UI)
- verzorgt interface met gebruiker
- cloud-dienst
- combineert gegevens uit de fysieke omgeving met andere gegevens voor modellering
-
Q-2:
Zie de eerdere figuren in dit gedeelte.
- lokale controller
- B
- IoT-knoop
- A
- globale controller
- C
- app
- D