Het Internet of Things (IoT) is “hot” in 2016. Het IoT is een nieuwe loot aan de evolutie van het internet. Hierbij is het idee dat apparaten en dingen, die je dagelijks in de echte wereld gebruikt, verbonden worden met het internet. Hierbij moet je denken aan wasmachines, ijskasten, je slimme energiemeter, je auto en nog veel meer. Deze apparaten worden dan voorzien van een chip/computer en een internetverbinding, zogenaamde ’embedded systems”. Door het uitrusten van deze apparaten met sensoren en een processor worden deze apparaten zich in meer of mindere mate bewust van de wereld om hen heen en dus slimmer.

 In 2015 waren er grofweg 5 miljard apparaten online. De verwachting is dat dit de komende vijf jaar enorm zal toenemen tot 25 miljard apparaten in 2020. Met al die apparaten online komt er natuurlijk nog veel meer (big) data beschikbaar, die kan worden ingezet om dingen te meten, te monitoren en dus te verbeteren.

Smart grid, smart cities

De mogelijkheden lijken eindeloos: naast de zonnecellen op je dak, zet je een Tesla accu in huis, die de door jou opgewekte stroom automatisch verkoopt op de meest gunstige tijd van de dag. Zal je auto straks communiceren met de stoplichten op de kruising voor een optimale doorstroming van het verkeer? Door data van je Fitbit te delen met een verzekeraar kun je korting op je verzekeringspremie krijgen. En de ijskast houdt bij wie die lekkere kaasjes toch iedere keer opeet en hij koopt zelf je dagelijkse boodschappen in, zodat je ijskast altijd jouw favoriete producten bevat. Wat is er nodig voor het opzetten van een eigen ontwikkelplatform voor het “Internet der Dingen”?

Bandbreedte, bereik en veiligheid

Een “embedded system” heeft een eigen verwerkingseenheid voor het verwerken van informatie en een verbinding met internet. Met IPv6 zijn er ruim voldoende IP-adressen voor de nabije toekomst beschikbaar. IPv6 gebruikt 128-bit adressen, waardoor er theoretisch 2128, of ongeveer 3.4×1038 adressen beschikbaar zijn.

Een belangrijk en vaak onderschat onderwerp is de veiligheid. Met het “Internet der Dingen” komen naast technologie ook de grote bedrijven en wellicht de overheid of een energiemaatschappij je huiskamer binnen. De technologie alleen kan al een negatieve impact hebben op je gezondheid, zoals straling en zware metalen in al die elektronica. Maar de vraag is of je zit te wachten op Google, die met zijn domotica-producten (zoals Nest) probeert om naast je online profiel ook je offline profiel in kaart te brengen.

LoRa

Al die online apparaten willen natuurlijk communiceren en dat kan op verschillende manieren. In huis lijkt WiFi het meest voor de hand te liggen. Buitenshuis is het mobiele netwerk natuurlijk beschikbaar, maar dat is veel te duur voor deze toepassing. WiFi heeft een klein bereik, hooguit een paar honderd meter, en dringt niet echt goed door in gebouwen. Het verbruikt ook relatief veel stroom. Daarentegen heeft het een grote bandbreedte, want er kan veel data doorheen. Maar dat is niet nodig voor de ijskast, die iedere week een klein boodschappenlijstje door wil geven aan de grootgrutter.

Speciaal voor het Internet of Things wordt er op dit moment druk gesleuteld aan een nieuw draadloos netwerk, genaamd LoRaWAN (Longe Range Wide Area Network). Het internet voor dingen dus! KPN wil voor het einde van 2016 een landelijke dekking hebben met deze technologie. Dit netwerk is speciaal ontworpen voor deze “connected devices”, dus weinig data, laag stroomverbruik en een groot bereik.

Gateways en nodes

Het LoRa-netwerk wordt opgebouwd uit gateways en nodes. De gateways hebben een vaste verbinding met het internet en de nodes communiceren met de gateways. Een gateway heeft een bereik tot wel 10 km! En kan rond de 10.000 nodes voorzien van een internetverbinding. Door de enorme dekking van de gateways kan met relatief weinig gateways op een goedkope manier toch een landelijk dekking worden verkregen.

Het LoRa-protocol gebruikt een zogenaamde end-to-end beveiliging, waarmee de data tot aan de ontvangende server encrypted verstuurd wordt. De devices en de server moet je zelf natuurlijk ook goed beveiligen. De verwachting is dat op dit gebied diverse open source initiatieven zullen ontstaan om dit vorm te geven (zie link 1).

Raspberry Pi

En dan nu de hamvraag: wat heb je extra nodig om van je Raspberry Pi een IoT node of een gateway te maken? Eigenlijk niet veel, want alles is al aan boord om er een ontwikkelplatform voor IoT- toepassingen van te maken. Je hebt immers al een WiFi-verbinding, I/O-poorten en een fijne programmeertaal, Python! Out-of-the-box heb je geen LoRa-netwerk, maar daar zijn natuurlijk wel mogelijkheden voor!

Het grootste probleem om de RPi in te zetten als IoT-node is het stroomverbruik. Zelfs de nieuwe Pi Zero heeft nog steeds een aanzienlijk stroomverbruik, waardoor deze eigenlijk niet echt als een autonoom, batterij-gevoed embedded device zal kunnen werken. Er zijn wel initiatieven om de RPi zuiniger te maken (zoals de Sleepy Pi), maar het gebrek aan zuinige modes voor de RPi (zoals deep sleep en dergelijke die wel op de Arduino aanwezig zijn) maken de RPi ongeschikt als autonome IoT-node.

Eigenlijk is de Raspberry Pi uitermate geschikt om als LoRa-gateway dienst te doen. Hiervoor kun je bijvoorbeeld een HAT-board gebruiken van het High Altitude Ballooning-project in Engeland (op zich een langgekoesterde wens van de auteur om de RPi een ballonvluchtje te laten maken, maar dat is off-topic). Met het HAT-board voeg je één of twee LoRa radio modules toe, die op 434Mhz of 868Mhz werken. Je kunt de RFM98W modules ook los kopen of inbouwen in een XBee Explorer board en via USB koppelen met je RPi.

Crowdfunding

Voor een IoT node is het van belang, dat deze het weken en het liefste zelfs maanden doet op een kleine batterij. Op de verschillende crowdfunding platformen zijn er momenteel veel projecten, die een poging doen om een dergelijke universele ‘Things’ device te ontwikkelen. Als je LoRa wilt gebruiken en daarmee wilt experimenten is de Autonomo + LoRaBee van Sodaq een aanrader. Maar voor Python-lovers (zoals wij bij Linux Magazine) en Raspberry Pi-fanaten is de WiPy een absolute aanrader.

Micro Python op de WiPy

De WiPy is begonnen op Kickstarter en is ontwikkeld door een team uit Eindhoven. Het is het schoolvoorbeeld van een goede crowdfunding campagne en het resultaat mag er zijn. Een controllerboard met WiFi en een processor uit de zeer efficiënte Cortex M4 familie. De controller draait op Micro Python. Micro Python is een versie van Python 3, die speciaal ontwikkeld is als operating systeem voor microcontrollers. Met Micro Python is je commandline interface een Python console! Je hebt dus geen low level C-kennis meer nodig om je IoT devices aan te sturen, maar je kunt voortbouwen op de Python kennis, die je al hebt opgebouwd!

Conclusie

In dit artikel hebben we kennis gemaakt met het “Internet der Dingen”, één van de belangrijkste ontwikkelingen van het internet in de komende vijf jaar! Het LoRa-netwerk speelt een belangrijke rol in het faciliteren van al die verbonden apparaten, die niet een hele grote hoeveelheid data willen versturen, maar wel allerlei kleine stukjes sensorinformatie willen delen over een groot bereik met een minimum aan energieverbruik. We hebben gezien dat de RPi als IoT node minder geschikt is, maar als IoT gateway prima functioneert. Ook hebben we een paar aanknopingspunten gegeven als je wilt experimenteren met deze “connected devices”. Het WiPy project sluit heel goed aan bij je Python skills en met een dergelijk apparaat kun je je ijskast alvast klaar maken voor de toekomst!

 Links:

1) Open Web Application Security Project OWASP 

2) Raspberry Pi als LoRa gateway 

3) Autonomo 

4) WiPi 

5) Micro Python 

6) Sleepy Pi