35
Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun Version 1.0

Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

Introductie van het Internet ofThings (IoT)

Gebruik een Raspberry Pi om kennis te maken met het Internetof Things.

Marco Verleun

Version 1.0

Page 2: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

Kostbaar is de wijsheid die door ervaring wordt verkregen.

(Robert Ascham 1515-1568)

Page 3: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

CopyrightIntroductie van het Internet of Things (IoT)

© 2016, MarCoach, www.marcoach.nl

Self publishing - ([email protected])

«This work is licensed under a Creative Commons

Attribution-NonCommercial-ShareAlike 4.0 International License.»

(Naamsvermelding-NietCommercieel-GelijkDelen CC BY-NC-SA)

Deze licentie laat anderen toe het werk te kopiëren, distribueren, vertonen, op te

voeren, en om afgeleid materiaal te maken, zolang MarCoach vermeld wordt als

maker van het werk, het werk niet commercieel gebruikt wordt en afgeleide werken

onder identieke voorwaarden worden verspreid.

Versie Datum Opmerking

1.0 1-10-2016 Versie 1

iii

Page 4: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

VoorwoordEr zijn niet veel mensen meer die nog niet gehoord hebben van en en dat deze

technieken ons leven gaan veranderen. Termen die abstract klinken, maar die feitelijk

nu al deel uitmaken van ons leven. Zowel privé als zakelijk spelen ze een steeds

belangrijker rol in ons leven.

Een plaatje zegt soms meer dan 1000 woorden is een bekend gezegde. En soms

moet je gewoon iets doen om te weten wat het is.

Dat laatste is precies de bedoeling van dit schrijven. Bewust mee gaan doen met

het IoT om te ervaren op welk niveau het een rol kan spelen. Bij IoT wordt snel aan

sensoren gedacht, maar dat is niet perse het geval.

Hier gaan we wel met sensoren aan de slag. Dat doen we met een waarop een

komt. De sensoren worden aangesloten op de GrovePi+. De reden hiervoor is dat we

op deze manier niet te druk bezig zijn met de electronica zelf.

Inmiddels zijn er al verschillende versies van de Raspberry Pi , of Pi in het kort,

verschenen. De Pi start op vanaf een (micro) SD kaart. Deze SD kaart dient ook

voor de opslag van gegevens. De SD kaart moet voorzien worden van een zogenaamd

”image” om bruikbaar te zijn. De keuze van het image bepaalt deels de mogelijkheden

van de Pi. Een (beperkt) overzicht is te vinden op de o�ciële website van de Pi:

https://www.raspberrypi.org/downloads/.

Hier gebruiken we een image van de leverancier van de GrovePi+, aangevuld met

extra software van het Node-red project.

iv

Page 5: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

Inhoudsopgave1 Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1 De Pi zelf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 SD kaart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1 Een operating system image installeren onder Windows . . . . . 3

1.2.2 Een operating system image installeren onder macOS . . . . . . 3

2 De Pi in gebruik nemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 GrovePi+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1 De GrovePi+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 De modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Aansluiten van de GrovePi+ . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5 Node RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5.1 Wat zeggen ze over zichzelf? . . . . . . . . . . . . . . . . . . . . . . . 10

5.2 Wat is Node RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6 Werken met Node RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6.1 Node RED interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6.2 De eerste flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7 Werken met sensoren en nodes . . . . . . . . . . . . . . . . . . . . . . . . . 14

7.1 Lokale lichtsterkte meter . . . . . . . . . . . . . . . . . . . . . . . . . 14

7.2 IoT lichtsterkte meter . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

8 Zelf nodes toevoegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.1 De website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.2 De installatie van een node . . . . . . . . . . . . . . . . . . . . . . . . 21

8.3 Verwijderen van een node . . . . . . . . . . . . . . . . . . . . . . . . 22

9 Netwerk Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.1 LED Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.2 LED Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

9.3 Telegram 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

10 Beveiliging en privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

10.1 Autorisatie en authenticatie. . . . . . . . . . . . . . . . . . . . . . . . 26

10.2 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

10.3 Cloud diensten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

v

Page 6: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

L�st van figuren

1.1.1 Aansluitingen Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 2

2.0.1 Raspberry Pi Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.0.2 Raspberry Pi WiFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.0.3 Raspberry Pi Configuration . . . . . . . . . . . . . . . . . . . . . . . 5

2.0.4 Raspberry Pi WiFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.0.5 Raspberry Pi WiFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.1 GrovePi+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4.0.1 Gemonteerde GrovePi+ . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.1.1 Node RED interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.1.1 Node RED interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

6.2.1 Dobbelsteen flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7.1.1 Eenvoudige licht sensor . . . . . . . . . . . . . . . . . . . . . . . . . 14

7.1.2 Configuratie Licht sensor . . . . . . . . . . . . . . . . . . . . . . . . 15

7.1.3 Overzicht licht sensor . . . . . . . . . . . . . . . . . . . . . . . . . . 15

7.2.1 MQTT output node voor lichtsensor . . . . . . . . . . . . . . . . . . 16

7.2.2 MQTT Broker configuratie . . . . . . . . . . . . . . . . . . . . . . . 17

7.2.3 MQTT Topic configuratie . . . . . . . . . . . . . . . . . . . . . . . . 18

7.2.4 Licht sensor met MQTT output . . . . . . . . . . . . . . . . . . . . . 18

7.2.5 Dashboard voor lichtsensoren . . . . . . . . . . . . . . . . . . . . . . 19

8.1.1 flows.nodered.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8.2.1 flows.nodered.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

8.2.2 Node installatie in terminal . . . . . . . . . . . . . . . . . . . . . . . 22

9.0.1 Netwerk informatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

9.1.1 LED server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

9.2.1 LED Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

9.3.1 Morse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1

Page 7: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

1Raspberry Pi

1.1 De Pi zelfDe Pi is een klein bordje met electronica en veel aansluit mogelijkheden zoals te zien

is in de volgende afbeelding.

Figuur 1.1.1: Aansluitingen Raspberry Pi

De GPIO connector wordt het meest gebruikt voor het aansluiten van sensoren,

motoren etc.. De GrovePi wordt ook op deze connector geplaatst. Er zijn talloze

voorbeelden te vinden op het internet hoe de GPIO pinnen geprogrammeerd kunnen

worden, maar aangezien wij met de GrovePi werken hoeven we ons daar niet druk

over te maken.

1.2 SD kaartNiet zichtbaar op de vorige afbeelding is de plek waar de geplaatst wordt. Deze

bevindt zich aan de onderzijde van het moederbordje. Afhankelijk van het model Pi

is dit een micro SD kaart of een standaard formaat SD kaart. De opslag capaciteit

dient minimaal 8Gb te zijn. De SD kaart moet op een bepaalde manier worden

ingericht om deze te kunnen gebruiken. Dit wordt meestal gedaan vanaf een PC of

Mac met behulp van hiervoor geschreven software.

2

Page 8: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 1. RASPBERRY PI

1.2.1 Een operating system image installeren onder Windows• Plaats de SD kaart in de kaartlezer en noteer welke drive letter Windows toekent

aan deze kaart. De SD kaart kan in een SD slot geplaatst worden als het systeem

hierover beschikt, maar ook in een geschikte adapter welke via USB verbonden

wordt.

• Download Win32DiskImager utility van de Sourceforge Project pagina als be-

stand. Deze tool wordt aanbevolen door de Raspberry Pi organisatie. Un-

zip de executable en voer deze uit als administrator. De download URL is

https://sourceforge.net/projects/win32diskimager/

• Selecteer het image dat u wilt installeren en selecteer de drive letter van de SD

kaart.

• Controleer of de drive letter juist is. Als u de verkeerde drive letter hebt gese-

lecteerd kunt u de gegevens van uw harde schijf vernietigen!

• Klik op ’write’ en wacht tot het proces voltooid is.

• Werp de SD kaart op een nette manier uit.

1.2.2 Een operating system image installeren onder macOS• Plaats de SD kaart in de kaartlezer of in een externe adapter die via USB

gekoppeld is.

• Download Apple-Pi Baker en voer deze uit. De download URL is http://www.tweaking4all.com/hardware/raspberry-

pi/macosx-apple-pi-baker/

• Voer de naam en het wachtwoord van een beheerder in.

• Selecteer de SD kaart en selecteer een IMG file.

• Klik op ’Restore Backup’ and wacht tot het proces voltooid is.

• Werp de SD kaart op een nette manier uit.

3

Page 9: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

2De Pi in gebruik nemenDe Pi in gebruik nemen is eenvoudig. Zodra er een SD kaart is gemaakt moet

deze in het slot hiervoor gestoken worden. Vervolgens moet er een monitor worden

aangesloten op de HDMI poort en een toetsenbord via een van de USB poorten.

De meeste gebruikers zullen de Pi in grafische mode gebruiken. In dat geval is het

handig om ook een muis via een USB poort aan te sluiten.

Figuur 2.0.1: Raspberry Pi Desktop

Vervolgens dient de voeding aangesloten te worden. De Pi start nu automatisch

op en kan gebruikt worden.

Het is mogelijk om de Pi met een netwerk kabel aan te sluiten of om deze met

een WiFi netwerk te verbinden. Het netwerk wordt ingesteld via het icoontje rechts

bovenin.

4

Page 10: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 2. DE PI IN GEBRUIK NEMEN

Figuur 2.0.2: Raspberry Pi WiFI

Via het menu linksboven is het mogelijk om Pi specifieke instellingen te veranderen.

Hiervoor dient de toepassing ”Raspberry Pi Configuration” geopend te worden.

Figuur 2.0.3: Raspberry Pi Configuration

Hier kan ingesteld worden of de Pi na een herstart in de grafische omgeving terecht

komt, of dat de Pi opstart in text mode (CLI). In dat geval moet de Pi vanaf de

command line worden bedient. Gebruik deze optie voorzichtig en wel overwogen.

Een belangrijke optie is de knop ”Expand Filesystem”. De Pi mag dan operationeel

zijn, het is goed mogelijk dat de volledige capaciteit van de SD kaart niet volledig

wordt gebruikt omdat het image gemaakt is voor een kleinere kaart. Door op deze

knop te klikken wordt de volledige capaciteit van de SD kaart gebruikt.

5

Page 11: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 2. DE PI IN GEBRUIK NEMEN

Figuur 2.0.4: Raspberry Pi WiFI

De Britse oorsprong van een Pi wordt snel duidelijk als er leestekens op het toetsen-

bord gebruikt worden. Standaard verwacht de Pi dat er een Brits Engels toetsenbord

is aangesloten. Gelukkig is dit eenvoudig aan te passen via de ”Localisation” knop.

Hier is het mogelijk om de toetsenbord instellingen aan te passen.

Figuur 2.0.5: Raspberry Pi WiFI

6

Page 12: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

3GrovePi+

3.1 De GrovePi+Dit is een van de vele producten van Dexter Industries (http://www.dexterindustries.com/grovepi/).

Dit is een printplaat die bovenop de Pi geplaatst wordt via de GPIO connector. De

Grove Pi heeft verschillende soorten aansluitingen voor de diverse sensoren. Alle

aansluitingen gebruiken echter wel dezelfde connectors dus hierbij is het opletten!

Figuur 3.1.1: GrovePi+

In de voorbeelden die we verderop gaan gebruiken gaan we er vanuit dat senso-

ren worden aangesloten op een bepaalde connector. Hierbij wordt de nummering

aangehouden zoals in de afbeelding te zien is.

3.2 De modulesDe volgende modules zijn beschikbaar in de GrovePi+ starterkit:

7

Page 13: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 3. GROVEPI+

Sound Sensor

Temperature & Humidity Sensor

Light Sensor

Relay

Button

UItrasonic Ranger

Rotary Angle Sensor

LED

Buzzer

8

Page 14: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

4Aansluiten van de GrovePi+Zet de Pi uit voordat de GrovePi+ op de GPIO aansluiting wordt geschoven. De Pi

heeft meer pinnen dan de aansluiting van de GrovePi+ lang is. Zorg ervoor dat de

aansluiting van GrovePi+ wordt aangesloten van pin 1. Dit is de pin die aan de kant

van de SD kaart slot zit. Druk de GrovePi+ goed aan. Het geheel ziet er als volgt

uit.

Figuur 4.0.1: Gemonteerde GrovePi+

Vervolgens mag de stroom weer aangesloten worden op de Pi.

9

Page 15: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

5Node RED

5.1 Wat zeggen ze over zichzelf?Op de website van Node RED omschrijven ze zichzelf als volgt:

”Node-RED is a tool for wiring together hardware devices, APIs and

online services in new and interesting ways.”

En daarmee beloven ze niet te veel.

Visueel ziet het er als volgt uit:

Figuur 5.1.1: Node RED interface

5.2 Wat is Node REDNode-RED is ontwikkelt door IBM als grafische omgeving waarmee het eenvoudig is

om deel te nemen aan het IoT. Het is een open platform die modulair is opgezet.

Dit heeft er voor gezorgd dat er tientallen modules, die nodes worden genoemd,

10

Page 16: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 5. NODE RED

zijn ontwikkeld door ’derden’ waarmee de functionaliteit van Node RED enorm is

uitgebreid.

Een van de nodes zorgt ervoor dat de GrovePi+ heel makkelijk gebruikt kan wor-

den. Deze module is reeds geïnstalleerd voor u.

Node RED combineert een grafische omgeving waarmee eenvoudig nodes aan elkaar

kunnen worden gekoppeld door ze met ’draden’ te verbinden. Deze nodes moeten

vaak nog wel worden geconfigureerd voordat ze hun werk kunnen doen. Dit is meestal

een erg intuïtieve handeling.

Er zijn nodes die informatie ontvangen, nodes die informatie bewerken/verwerken

en nodes die informatie versturen. Al deze nodes communiceren door elkaar bood-

schappen (messages) te sturen. Een combinatie van messages wordt een ’flow’ ge-

noemd.

Soms volstaat een standaard node niet. Node RED maakt het ook mogelijk om

voor specifieke taken functies te programmeren op de ’klassieke’ manier, door middel

van Java code.

11

Page 17: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

6Werken met Node REDHet image dat geïnstalleerd is op de SD kaart is geconfigureerd om automatisch Node

RED te starten. Het duurt even voordat de website van Node RED bereikbaar is.

Om de website te gebruiken is het nodig om het IP adres van de Pi te weten.

Een manier om dit adres te achterhalen is door de terminal applicatie te openen en

hier het commando ifconfig in te typen en op ENTER te drukken. Er verschijnen

dan veel regels met informatie waarin het IP adres te herkennen is. Hierna mag de

terminal worden gesloten.

Open op een PC of Mac, die in hetzelfde netwerk zit, een browser en typ in de

URL balk het volgende in: http://<IP ADRES>:1880.

Als het goed is wordt nu de Node RED web interface geladen.

6.1 Node RED interfaceZoals te zien is in de afbeelding van de interface bestaat deze uit een aantal delen.

Figuur 6.1.1: Node RED interface

12

Page 18: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 6. WERKEN MET NODE RED

Aan de linkerkant worden de beschikbare nodes getoond en aan de rechterkant een

kolom waar informatie over een node kan worden bekeken en fout opsporingsberich-

ten.

Het middelste deel bestaat uit meerdere tabbladen waarop de nodes geplaatst en

bedraad worden. Wijzigingen op een tabblad worden niet automatisch actief. Om

wijzigingen te activeren moet op de ”Deploy” knop worden geklikt.

Door op een node te dubbel klikken kunnen de eigenschappen van de bewuste node

worden aangepast.

6.2 De eerste flowTijd om kennis te maken met de interface van Node RED. We gaan een ”dobbelsteen”

maken die uit drie nodes bestaat: Een input node met de naam ”inject”, een functie

met de naam ”random” en een output node met de naam ”debug”. Deze worden

onderling met elkaar verbonden. Zodra dit is gebeurd kan deze flow worden ”ge-

deployed” waarna deze actief is. Iedere keer als er op het grijze vierkantje van de

inject node wordt geklikt verschijnt er een willekeurig getal tussen 1 en 6 aan de

rechterzijde.

Grafisch ziet de flow er als volgt uit:

Figuur 6.2.1: Dobbelsteen flow

13

Page 19: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

7Werken met sensoren en nodesHet Internet of Things gaat over veel meer dan devices met sensoren. Computers,

PC’s, smartphones en smart TV’s maken hier een belangrijk onderdeel van uit.

De laatste jaren is er echter een toename van het aantal sensoren dat verbonden

is met het internet: Kamer thermostaten en rookmelders die verbonden zijn met het

internet zijn bekende voorbeelden. Ook komen er steeds meer camera oplossingen die

op deze manier eenvoudig vanaf een smartphone bekeken kunnen worden.

De GrovePi+ is bij uitstek geschikt om sensoren mee uit te lezen. Er kan veel meer

mee, maar dat zien we later.

7.1 Lokale lichtsterkte meterWe beginnen met een eenvoudig voorbeeld, een lichtsterkte meter.

Sluit de Grove - Light sensor aan op analoge poort A2.

Ga vervolgens naar de Node RED web interface met een browser en maak een

nieuwe flow. De flow bestaat uit twee nodes:

• grove analog sensor

• debug

Verbind deze twee nodes onderling door een ’draad’ te trekken tussen de twee grijze

bolletjes die op deze nodes te vinden zijn. Het geheel ziet er dan als volgt uit:

Figuur 7.1.1: Eenvoudige licht sensor

De blauwe balletjes geven aan dat de nodes nog niet actief zijn, deze moeten nog

worden ’ge-deployed’. Het rode driehoekje geeft aan dat de node nog niet (juist)

geconfigureerd is.

Dubbelklik op de node ’grove analog sensor’ en configureerd het ’board’, het ’sensor

type’, de ’analog pin’ en de ’name’ tot het er als volgt uit zier:

14

Page 20: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 7. WERKEN MET SENSOREN EN NODES

Figuur 7.1.2: Configuratie Licht sensor

Klik vervolgens op ’done’ en ’deploy’ om dit te activeren.

Iedere seconde wordt nu de lichtsterkte gemeten en doorgeven aan de debug node.

Deze informatie is rechts te zien onder de ’debug’ tab. Het geheel ziet er als volgt uit.

Merk op dat aan re rechterkant iedere seconde een meetwaarde wordt toegevoegd:

Figuur 7.1.3: Overzicht licht sensor

15

Page 21: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 7. WERKEN MET SENSOREN EN NODES

De debug node kan bedient worden met het vlak aan de rechterzijde. Die fungeert

als een aan/uit schakelaar.

Als er meerdere debug nodes in een flow te vinden zijn helpt dit om de hoeveelheid

informatie te beperken.

7.2 IoT lichtsterkte meterDe lichtsterkte meter van zojuist is erg lokaal en geschikt om de sensor te testen. In

een IoT omgeving zal deze informatie naar een server in de cloud gestuurd worden

waar iemand anders die informatie kan ophalen en verder verwerken.

Een manier om informatie te versturen is door gebruik te maken van de output node

MQTT. MQTT is een protocol dat ontworpen is om ’machines’ onderling te laten

communiceren. FaceBook gebruikt het in hun Messenger App omdat dit protocol

e�ciënt is en energiezuinig. Dit is erg belangrijk bij apparaten die van een batterij

afhankelijk zijn.

Het MQTT concept bevat drie componenten een ’publisher’, een ’broker’ en een

’subscriber’.

De ’publisher’ verstuurt informatie naar een ’broker’. De broker distribueert die

informatie naar een of meer ’subscribers’.

De gepubliceerde informatie moet voor de subscribers makkelijk te identificeren

zijn. Daarom wordt de informatie gepubliceerd in ’topics’. Een subscriber geeft aan

welke ’topics’ hij wil volgen en iedere keer als een publisher de informatie van een

bepaald topic verandert dan krijgt de subscriber hiervan een melding.

De naamgeving van de topics is geheel vrij en flexibel in te zetten. De informatie

die gepubliceerd wordt kan op allerlei manieren worden aangeboden: als tekst, als

nummerieke waarde etc. etc.

Vervang de debug node van de vorige oefening door een MQTT output node. Het

geheel ziet er als volgt uit:

Figuur 7.2.1: MQTT output node voor lichtsensor

Vervolgens moet de MQTT node in een aantal stappen geconfigureerd worden.

Eerst moet er een nieuwe broker worden toegevoegd. Deze heeft als IP adres

10.0.0.21

16

Page 22: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 7. WERKEN MET SENSOREN EN NODES

Figuur 7.2.2: MQTT Broker configuratie

Vervolgens moeten we instellen onder welke ’topic’ de informatie van de licht sensor

wordt verstuurd. Hierbij is gekozen voor een hiërarchische structuur. Iedere client

publiceert onder zijn eigen naam. In het voorbeeld wordt iedere keer ’client-X ’ ge-

bruikt. Vervang het de letter ’X ’ in een ander cijfer dat alleen door u gebruikt wordt

en niet door mede studenten.

17

Page 23: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 7. WERKEN MET SENSOREN EN NODES

Figuur 7.2.3: MQTT Topic configuratie

Als alles klaar is ziet het er als volgt uit:

Figuur 7.2.4: Licht sensor met MQTT output

Op een andere computer kan een MQTT client deze informatie ontvangen en bij-

voorbeeld in een dashboard weergeven zoals hieronder te zien is.

18

Page 24: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 7. WERKEN MET SENSOREN EN NODES

Figuur 7.2.5: Dashboard voor lichtsensoren

19

Page 25: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

8Zelf nodes toevoegenNode RED is erg flexibel. Iedereen kan zelf nodes ontwikkelen en daarmee de func-

tionaliteit uitbreiden.

Veel nodes die door derden zijn ontwikkeld worden gedeeld via de Node RED

website en zijn daarmee voor iedereen toegankelijk. Enige voorzichtigheid is geboden,

niet alle nodes zijn even goed ontwikkelt en een aantal nodes is alleen geschikt voor

specifieke toepassingen. Soms vereisen nodes diepgaande kennis van het systeem

voordat ze bruikbaar zijn, maar gelukkig zijn er ook eenvoudige nodes. Een aantal is

er al van te voren geïnstalleerd

8.1 De websiteDe website https://flows.nodered.org is de plek waar de inspanningen van derden

zichtbaar worden. Er worden hier nodes aangeboden die gebruikt kunnen worden om

de functionaliteit uit te breiden.Het is gebruikelijk dat nodes van derden het woord

’contrib’ in hun naam hebben opgenomen. Hiermee zijn ze te onderscheiden van de

standaard nodes die bij Node RED worden meegeleverd.

Figuur 8.1.1: flows.nodered.org

20

Page 26: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 8. ZELF NODES TOEVOEGEN

De inhoud van deze website groeit nog steeds en is de moeite waard om regelmatig

te controleren. Gelukkig is er ook een zoekfunctie beschikbaar.

Type als zoekterm ’frequency’ in en je krijgt een aantal nodes te zien die dit woord

in hun omschrijving hebben vermeldt. Als het goed is staat de node ’node-red-contrib-

frequency-meter’ hier tussen.

Als je vervolgens op die node klikt krijg je een scherm met uitgebreide informa-

tie over deze node. Je ziet het symbool zoals het in Node RED verschijnt aan de

rechterkant.

8.2 De installatie van een nodeBovenaan staat een grijze regel die vertelt welk commando je moet intypen in een

terminal om de node te installeren. Dit commando moet voor de Pi uitgebreid worden

omdat het anders niet werkt.

Figuur 8.2.1: flows.nodered.org

Om deze node te installeren dien je een terminal te openen op de Pi en de opdracht

in te typen sudo npm install -g node-red-contrib-frequency-meter. De node

naam is de naam zoals op de website is vermeldt. Dit commando wijkt licht af van

het voorbeeld dat wordt genoemd op de website. Druk vervolgens op de RETURN

toets om het commando uit te voeren.

De node wordt nu geïnstalleerd. Nodes die worden geïnstalleerd zijn vaak afhanke-

lijk van andere nodes om te kunnen functioneren. Het systeem zal zelf ontbrekende

nodes installeren. Dit is in het voorbeeld weggelaten voor de leesbaarheid.

21

Page 27: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 8. ZELF NODES TOEVOEGEN

Als de node is geïnstalleerd moet Node RED opnieuw worden gestart. Dit doe je

met het commando sudo systemctl restart nodered.

Figuur 8.2.2: Node installatie in terminal

Na het herstarten van Node RED kan het enige tijd duren voordat de website weer

bereikbaar is.

8.3 Verwijderen van een nodeDit is bijna hetzelfde als het installeren. Open een terminal en type sudo npm remove

-g node-red-contrib-frequency-meter. Herstart vervolgens Node RED met het

commandosudo systemctl restart nodered.

22

Page 28: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

9Netwerk PiHet IoT gaat niet alleen over sensoren. Zoals de naam al doet vermoeden gaat het om

allerlei dingen (Things) die via het internet met elkaar verbonden zijn. Dat laatste is

de essentie. Allerlei apparaten die samenwerken, informatie delen en die daar soms

ook naar handelen.

Om lokaal Pi’s met elkaar te verbinden is het belangrijk om in ieder geval het IP

adres te weten van het systeem waarmee je werkt. Dit kan op verschillende manieren.

Een daarvan is de muis naar het netwerk symbool in de menubalk te bewegen en daar

stil te houden. Na een kort ogenblik verschijnt een scherm dat vergelijkbaar is met

het volgende plaatje:

Figuur 9.0.1: Netwerk informatie

Achter eth0 staat het ip adres van de bekabelde netwerkaansluiting en achter wlan0

het ip adres van de WiFi verbinding. Het is goed mogelijk dat er slechts 1 van de

twee wordt getoond. Noteer deze om samen te kunnen werken met andere Pi’s in het

netwerk.

9.1 LED ServerAllereerst maken we een nieuwe flow die wacht op instructies voor het aan- of uitzetten

van een LED. De flow ziet er als volgt uit. Overal waar client-17 staat dien je in plaats

van 17 een eigen nummer te gebruiken dat niet door iemand anders wordt gebruikt.

Deze flow luistert naar binnenkomende MQTT berichten met het topic dat is aan-

gegeven in de node. Als daar de waarde ’1’ of ’TRUE’ wordt ontvangen voor het

topic dan wordt er een LED aan- of uitgezet. Deze LED is verbonden met een digi-

tale uitgang van de GrovePi. In het voorbeeld gaan we er vanuit dat de rode LED is

aangesloten op D7, de groene op D6 en de blauwe op D5. Als dit allemaal gedaan is

kun je de flow ’deployen’ en dan is het wachten op de juiste MQTT berichten.

23

Page 29: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 9. NETWERK PI

Figuur 9.1.1: LED server

9.2 LED ControllerTijd om berichten te sturen. Om de LED’s op een andere Pi te kunnen besturen

moet je weten welke ’topics’ er gebruikt worden op het remote systeem dat je wilt

besturen. Check dit in geval van twijfel. Je kunt, zoals je in het voorbeeld ziet, ook

je eigen LED’s op deze manier via een omweg besturen.

De volgende flow bestaat uit 6 ’inject’ nodes. In plaats van een ’timestamp’ sturen

ze de boolean waarden ’true’ en ’false’ bij respectievelijk de ’aan’ en ’uit’ node.

De nodes zijn gekoppeld aan MQTT output nodes die de waarde ’true’ of ’false’

versturen met de topic zoals vermeldt. Als deze ’gedeployed’ is kun je de LED’s

besturen.

Figuur 9.2.1: LED Controller

24

Page 30: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 9. NETWERK PI

9.3 Telegram 2.0De volgende flow verstuurt morse signalen. De allereerste telegrammen werden op

deze manier verstuurd. Er wordt gebruik gemaakt van een ’inject’ node die verbonden

is met een ’morse’ node. Deze is weer verbonden met een ’MQTT Output’ node, maar

zou ook direct verbonden kunnen zijn met een ’Digital Output’ node waar een LED

op aangesloten is.

Bij de ’Morse’ node wordt de waarde van ’KeyOn’ op 1 ingesteld en die van ’KeyO�’

op 0. Het geheel ziet er dan als volgt uit:

Figuur 9.3.1: Morse

25

Page 31: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

10Beveiliging en privacyNet als bij desktop computers is het belangrijk om goed op de beveiliging en privacy

na te denken. Er kunnen heel veel gegevens het internet op gestuurd worden die voor

kwaadwillenden interessant kunnen zijn. Denk daarbij aan ondermeer wachtwoorden,

persoonsgegevens, maar ook gegevens die gebruikt kunnen worden om te bepalen of

er iemand thuis is. En wat te bedenken van iemand die ongeoorloofd (op afstand)

instellingen verandert?

10.1 Autorisatie en authenticatie.Authenticatie is het vaststellen van iemands identiteit, dit gebeurt vaak op basis van

een gebruikersnaam en wachtwoord combinatie. Dit mechanisme veronderstelt dat de

combinatie van beiden alleen bij de gebruiker bekend is en dat deze niet te raden of

af te luisteren is. Ook moet het onmogelijk zijn om veel wachtwoorden uit te kunnen

proberen, een zgn. brute force attack.

Om afluisteren te voorkomen mogen wachtwoorden alleen verstuurd worden over

verbindingen die met SSL zijn beveiligd, zoals https verbindingen.

Autorisatie volgt na succesvolle authenticatie. Als we een gebruikers identiteit

hebben vastgesteld kunnen we bepalen wat deze persoon mag. Denk daarbij aan het

bedienen van een apparaat, wijzingen in de instellingen doorvoeren etc.

Behalve gebruikers moeten we bij het IoT ook apparaten authenticeren en auto-

riseren. Het MQTT protocol dat gebruikt is in dit boek voorziet daar in. Omdat

we hier in een experimentele omgeving werken is er geen gebruik van gemaakt. Het

MQTT protocol kan op basis van authenticatie en autorisatie er voor zorgen dat de

toegang tot (bepaalde) topics gereguleerd wordt. Zo kan voorkomen worden dat on-

bevoegden de controle op afstand overnemen of (bewust) foutieve informatie invoeren

in het systeem van apparaten waardoor een betrouwbare werking in gevaar komen.

Ook kan het MQTT protocol de verbinding beveiligen met SSL. Hiermee wordt de

vertrouwelijkheid van de verzonden informatie en instructies verzekerd.

Het MQTT protocol is niet het enige protocol dat gebruikt wordt voor het IoT.

Ook het https protocol wordt veel gebruikt. Daar geldt hetzelfde voor.

10.2 FirewallEen goed geconfigureerde firewall mag niet ontbreken. Een goede firewall kan helpen

voorkomen dat er ongeoorloofde toegang wordt verschaft. Een standaard internet

router thuis laat normaal gesproken geen verkeer toe vanaf het internet naar het privé

netwerk en vormt daardoor al een goede barrière.Verkeer vanuit het eigen netwerk

naar het internet wordt door deze routers wel doorgelaten.

26

Page 32: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

HOOFDSTUK 10. BEVEILIGING EN PRIVACY

10.3 Cloud dienstenEr zijn veel cloud diensten die gebruikt worden voor IoT apparaten. Denk hierbij

aan Nest met hun slimme thermostaat en rookmelder. Ook veel beveiligingscamera’s

kennen de mogelijkheid om deze op afstand te bekijken via een cloud dienst. Phillips

biedt voor hun Hue platform een App aan die het via hun cloud dienst mogelijk

maakt om lampen op afstand te besturen.

Voor al deze diensten geldt natuurlijk dat er vertrouwen moet zijn in de aanbieder.

Hebben zij hun beveiliging op orde? Hoe gaan ze om met persoons- en persoonlijke

gegevens? Wat zijn de consequenties als zij besluiten om hun dienstverlening te

beëindigen?

Het is voor deze diensten relatief makkelijk om te leren over hun gebruikers. Als

alle avonden de lampen aangaan, behalve op donderdag, dan kan hier al een conclusie

op gebaseerd worden, vandaar dat deze diensten ongeoorloofde toegang tot dit soort

informatie tot een minimum moeten beperken.

27

Page 33: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

NomenclatureCloud Diensten aangeboden op het internet. De dienst staat centraal en de

servers die de diensten aanbieden worden beheerd door een derde

GrovePi+ Uitbreiding voor de Raspberry Pi die het mogelijk maakt om op een-

voudig wijze allerlei electronische componenten aan te sluiten

IoT Internet of Things

Raspberry Pi Kleine computer die in Engeland ontwikkelt is voor educatieve doel-

einden.

SD kaart Geheugenkaart die gebruikt wordt in de Raspberry Pi als vervanger

van een harde schijf.

28

Page 34: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

IndexAApple-Pi Baker, 3

Authenticatie, 26

Autorisatie, 26

BBeveiliging, 26

Broker, 16

Brute force attack, 26

Button, 8

Buzzer, 8

CCLI, 5

Cloud diensten, 27

Configuration, 5

Contrib, 20

EExpand Filesystem, 5

FFaceBook, 16

Firewall, 26

Flow, 11

flows.nodered.org, 20

GGPIO connector, 7

Grove analog sensor, 14

GrovePi+, iv, 7, 11, 14

HHDMI poort, 4

https, 26

IIBM, 10

ifconfig, 12

IoT, 10, 16, 23

IP adres, 12

JJava code, 11

LLED, 8, 23

Light Sensor, 8

Light sensor, 14

Localisation, 6

MMonitor, 4

Morse, 25

MQTT, 16

MQTT Topic, 18

NNetwerk, 23

Node RED, 10, 12

Node RED interface, 12

node-red-contrib-frequency-meter, 21

PPrivacy, 26

Publisher, 16

RRaspberry Pi, iv, 2

Relay, 8

Rotary Angle Sensor, 8

SSD kaart, 2

Sound Sensor, 8

SSL, 26

Subscriber, 16

TTemperature & Humidity Sensor, 8

29

Page 35: Introductie van het Internet of Things - Typepad...Introductie van het Internet of Things (IoT) Gebruik een Raspberry Pi om kennis te maken met het Internet of Things. Marco Verleun

Index

Terminal, 21

Toetsenbord, 4

UUItrasonic Ranger, 8

VVoeding, 4

WWiFi, 4, 23

Win32DiskImager, 3

30