IoT-0/Praktische opdrachten: verschil tussen versies

Uit Inf2019
Naar navigatie springen Naar zoeken springen
(Nieuwe pagina aangemaakt met '== Praktische opdrachten == De meeste hoofdstukken/lessen van deze module bevatten praktische opdrachten. Het doel van deze opdrachten is om de concepten te gebrui...')
 
 
(15 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
{{Zijbalk IoT-0}}
== Praktische opdrachten ==
== Praktische opdrachten ==


De meeste hoofdstukken/lessen van deze module 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.
De meeste hoofdstukken/lessen van deze module ([[IoT-0|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 heb je wel lokale IoT-knopen met RFM69-radio's, maar geen LoRa-gebaseerde knopen.


Het Internet of Things heeft veel verschillende vormen. Afhankelijk van de toepassing en de context maak je andere keuze voor bijvoorbeeld de radio-communicatie. In deze module geven we hiervan 3 voorbeelden:
=== Bouwen, installeren, programmeren en configureren: IoT-1 ===
* WiFi - voor gebruik in een lokaal WiFi-netwerk; voor knopen die niet heel energiezuinig hoeven te zijn;
De aanwijzingen voor het bouwen, installeren, programmeren en configureren van de onderdelen kun je vinden in de module [[IoT-1|Internet of Things voor makers]].
* 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 de Arduino-IDE, met Arduino's en verwante hardware. We geven hier enkele voorbeelden; er zijn meer alternatieven beschikbaar. Bovendien neemt het aantal alternatieven nog steeds toe.
=== 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 behandelen we 3 voorbeelden:


{| class="wikitable"
{| class="wikitable"
! ... !! WiFi !! LoRa !! RFM69
! radio !! bereik !! power !! opmerking
|-
|-
| Arduino || Uno WiFi, MKR 1010 WiFi || Arduino mini met RFM95 (LoRa); MKR WAN 1300 || Arduino met RFM69-module
| WiFi  || 10-50m ||  medium power || zo mogelijk in lokaal (school)WiFi-netwerk
|-
|-
| Adafruit Feather || HUZZAH ESP8266/ESP32, MO with WiFi || M0 with RFM95 (LoRa) || M0 with RFM69
| LoRa  || enkele km's || low power || via LoRaWan-provider in globaal netwerk
|-
|-
| WeMos LoLin || D1 mini (pro), D32 || idem, met RFM95-module (LoRa) || idem, met RFM69-module
| RFM69 || 50-200m || low power ||
|}
 
Je kunt deze voorbeelden uitwerken met de Arduino-IDE, met Arduino's en verwante hardware. We geven hier enkele voorbeelden van hardware-platformen; er zijn (en komen) meer alternatieven beschikbaar.
 
{| class="wikitable"
! 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.
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:
Naast deze hardware voor de IoT-knopen heb je nog andere onderdelen nodig:
* Raspberry Pi - voor lokale MQTT-broker, NodeRed
* Raspberry Pi - voor lokale MQTT-broker, NodeRed-server
* MQTT-broker in het publieke internet
* MQTT-broker (Mosquitto) in het publieke internet
* NodeRed 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.
Deze onderdelen kun je met de handleidingen (IoT voor makers) zelf installeren en configureren. Voor-geinstalleerde/geconfigureerde oplossingen zijn ook mogelijk.


=== WiFi ===
=== 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 ===
=== 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.
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-1|IoT voor makers]]).
=== Gesimuleerde IoT-knoop ===
[[Bestand:Iotnode-simulator-0.png|300px|right|IoT-knoop simulator]]
* link: http://infvopedia.nl:1884/iotnode-app-1.html
Deze gesimuleerde IoT-knoop communiceert met de publieke MQTT-broker.
<div style="clear:both;"></div>
=== MQTT0 test ===
[[Bestand:IoT-mqtt0-app.png|300px|right|mqtt0 app]]
* link: (via de publieke MQTT-broker) http://infvopedia.nl:1884/mqtt1.html
<div style="clear:both;"></div>
=== NodeRed ===
[[Bestand:Nodered-chat-flow.png|300px|right|NodeRed Chat flow]]
==== 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: je hoeft deze niet te installeren.
=== Arduino-software ===
* (zie [[IoT-1|IoT voor makers]])

Huidige versie van 24 mei 2018 om 10:50

IoT voor gebruikers
Netwerken-IoT
  1. Inleiding IoT
  2. IoT bouwstenen
  3. IoT ketens
  4. NodeRed
  5. Knoop met webserver
  6. MQTT met publieke broker
  7. MQTT met lokale broker
  8. LoRa netwerken
  9. RFM69 communicatie
Netwerken

Zie ook Netwerken-project

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

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 heb je 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 behandelen we 3 voorbeelden:

radio bereik power opmerking
WiFi 10-50m medium power zo mogelijk in lokaal (school)WiFi-netwerk
LoRa enkele km's low power via LoRaWan-provider in globaal netwerk
RFM69 50-200m low power

Je kunt deze voorbeelden uitwerken met de Arduino-IDE, met Arduino's en verwante hardware. We geven hier enkele voorbeelden van hardware-platformen; 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

IoT-knoop simulator

Deze gesimuleerde IoT-knoop communiceert met de publieke MQTT-broker.


MQTT0 test

mqtt0 app

NodeRed

NodeRed Chat flow

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: je hoeft deze niet te installeren.

Arduino-software