IoT-0/Praktische opdrachten
Praktische opdrachten
De meeste hoofdstukken/lessen van deze module (Internet of Things voor gebruikers) bevatten praktische opdrachten. Het doel van deze opdrachten is om de concepten te gebruiken in een praktische context, en om voor te bereiden op het IoT-project. Deze opdrachten zijn op verschillende manieren uit te voeren, afhankelijk van de lokale mogelijkheden en ambities:
- met gesimuleerde IoT-knopen en IoT-knopen die elders opgesteld staan; of,
- met vooraf gebouwde en geconfigureerde IoT-knopen (hardware) in je eigen omgeving.
De keuze tussen deze twee alternatieven kun je per onderdeel maken; soms zijn er wel lokale IoT-knopen met RFM69-radio's, maar geen LoRa-gebaseerde knopen.
Bouwen, installeren, programmeren en configureren: IoT-1
De aanwijzingen voor het bouwen, installeren, programmeren en configureren van de onderdelen kun je vinden in de module Internet of Things voor makers.
IoT-knopen: verschillende radio's
Het Internet of Things heeft veel verschillende vormen. Afhankelijk van de toepassing en de context maak je andere keuze voor de radio-communicatie. In deze module geven we hiervan 3 voorbeelden:
- WiFi - voor gebruik in een lokaal WiFi-netwerk; voor knopen die niet heel energiezuinig hoeven te zijn;
- LoRa - voor energiezuinige IoT-knopen in een groot gebied (radiobereik enkele km's);
- RFM69 - voor energiezuinige IoT-knopen in kleiner gebied (radiobereik 50-200m).
Je kunt deze voorbeelden uitwerken met de Arduino-IDE, met Arduino's en verwante hardware. We geven hier enkele voorbeelden; er zijn (en komen) meer alternatieven beschikbaar.
platform | WiFi | LoRa | RFM69 | |
---|---|---|---|---|
Arduino | https://arduino.cc | Uno WiFi, MKR 1010 WiFi | Arduino mini met RFM95 (LoRa); MKR WAN 1300 | Arduino met RFM69-module |
Adafruit Feather | https://www.adafruit.com | HUZZAH ESP8266/ESP32, MO with WiFi | M0 with RFM95 (LoRa) | M0 with RFM69 |
WeMos LoLin | https://www.wemos.cc | D1 mini (pro), D32 | idem, met RFM95-module (LoRa) | idem, met RFM69-module |
Al deze 3 families hebben ook de nodige opsteekbordjes (shields, wings, enz.) met sensoren, displays, radio's, enz. Je kunt dan kant-en-klare oplossingen eenvoudig in elkaar steken, of je eigen uitbreidingen maken via een breadboard.
Gesimuleerde IoT-knopen en IoT-knopen elders
Je kunt de meeste opdrachten uitvoeren zonder lokale IoT-hardware: je gebruikt dan gesimuleerde IoT-knopen en IoT-knopen die elders (op andere scholen?) geïnstalleerd zijn.
- Hiermee kun je geen lokale "dingen" waarnemen of besturen; maar je kunt in elk geval de opdrachten uitvoeren. Het kan een opstapje zijn naar het gebruik van lokale IoT-knopen.
MQTT test app
Voor het testen van MQTT is er een programma (web-app) beschikbaar: http://infvopedia:1884/mqtt1.html
Een alternatief hiervoor is de desktop-app MQTT-box (http://workswithweb.com/mqttbox.html), of vergelijkbaar.
Brokers en servers
Naast deze hardware voor de IoT-knopen heb je nog andere onderdelen nodig:
- Raspberry Pi - voor lokale MQTT-broker, NodeRed-server
- MQTT-broker (Mosquitto) in het publieke internet
- NodeRed-server in het publieke internet
Deze onderdelen kun je met de handleidingen (IoT voor makers) zelf installeren en configureren. Voor-geinstalleerde/geconfigureerde oplossingen zijn ook mogelijk.
WiFi en het schoolnetwerk
Voor sommige opdrachten heb je IoT-knopen nodig met WiFi-toegang. Dit kan een probleem zijn in de schoolomgeving: het schoolnetwerk is niet of moeilijk toegankelijk. Je kunt dit probleem oplossen (in overleg met de lokale ICT-organisatie) met een kleine WiFi-router met een mobiele internetverbinding: een "MiFi router". Met een klein aantal IoT-knopen en een lokale Raspberry Pi heb je niet veel dataverkeer, je kunt met een klein abonnement volstaan.
- Met zo'n lokale router kun je ook oefenen met router-instellingen, bijvoorbeeld het gebruik van port-forwarding (NAT).
De LoRa- en RFM69-radio's werken buiten het WiFi-netwerk; je hebt dan alleen een gateway nodig die in het publieke internet en/of in het lokale schoolnetwerk verbonden is.
Latere uitbreidingen: microPython
De eerste uitwerking van het materiaal is gebaseerd op de Arduino IDE; deze kun je combineren met de hierboven genoemde hardware. Een geplande uitbreiding is om microPython (en/of circuitPython) te gebruiken als programmeertaal. Deze kun je met enkele van de bovenstaande hardware-onderdelen combineren. microPython kan voor leerlingen een lagere drempel vormen dan de Arduino IDE; maar deze omgeving is nog wat minder stabiel dan de Arduino IDE.
Software
De (open source) software bij dit materiaal is beschikbaar op GitHub (zie IoT voor makers).
Gesimuleerde IoT-knoop
Deze gesimuleerde IoT-knoop communiceert met de publieke MQTT-broker.
MQTT0 test
- link: (via de publieke MQTT-broker) http:/infvopedia.nl:1884/mqtt1.html
Arduino-software
- (zie IoT voor makers)
NodeRed
NodeRed-server in het publieke internet
Voor kortdurende NodeRed-opdrachten en experimenten kun je FRED gebruiken (https://fred.sensetecnic.com/).
- met een gratis account blijft je NodeRed server max. 24 uur actief
- voor langer durende opdrachten en experimenten kun je een betaalde account gebruiken, of je eigen NodeRed server.
NodeRed lokaal
NodeRed maakt deel uit van de standaard Raspbian-distributie voor de Raspberry Pi.