Presentatie-1#
Internet of Things#
- koppelen van “dingen” aan het internet 
- voor slimme systemen - betere beslissingen 
- door meer, lokale, en actuele informatie 
 
- aanvulling op het bestaande internet en web 
Voorbeeld-toepassingen#
- IoT-toepassingen met (zeer) lage bitrate, grote latency-communicatie 
- gebruik van simpele sensoren en actuatoren - geen camera, microfoon 
 
- keuze voor radio, afhankelijk van context - van WiFi, RFM69, microbit-radio, (BLE en ZigBee) tot LoRa 
- op basis van energieverbruik en bereik 
 
Functies in slimme IoT-systemen#

IoT-communicatie#
- verbindingen 
- netwerkapparaten 

IoT-protocollen#

IoT-protocolstacks#

microbit als IoT-knoop#
- sensoren: drukknoppen, temperatuur, licht (display), accelerometer, - touch(V2), microfoon(V2) 
 
- actuatoren: display, - luidspreker (V2) 
 
- microcontroller 
- radio (“microbit radio”) 
- power (batterij, USB) - low-power sleep (V2) 
 
microbit-radio#
- pakketradio (ca.20-200 bytes/pakket) 
- datarate: 1 - 2 Mbit/s 
- 2,4 GHz band (WiFi, magnetron) 
- broadcast (geen adressering) 
- best effort communicatie 
microbit IoT-netwerk#

microbit IoT-netwerk#
- ster-topologie: van/naar IoT-gateway 
- address: 16 bits, afgeleid van microbit ID 
- pakketformaat: - 5-byte header: tag, address, counter 
- LPP payload 
 
- tag: - 0x0A (uplink, sensors), 
- 0x0B (downlink, actuators) 
 
[10, 59, 82, 1, 44, 0, 1, 0, 1, 1, 0, 2, 0, 0, 
  3, 0, 0, 4, 103, 1, 4, 8, 2, 0, 15]
LPP payload#
- binair (bytes) 
- reeks van: (channel, tag, value) - channel: 1 byte, uniek 
- tag: 1 byte, type sensor/actuator 
- value: 1 of meer bytes, waarde sensor/actuator 
 
Bijv: (4, 103, 0, 220): channel 4, temperatuur, 22’Celcius
LPP payload (IoT lesmateriaal)#
| ch | tag | type | bytes | res. per bit | microbit | 
|---|---|---|---|---|---|
| 0 | 1 | dOut | 1 | 1 | display, led0 (pin0) | 
| 1 | 1 | dOut | 1 | 1 | led1 (pin1) | 
| 2 | 0 | dIn | 1 | 1 | button A | 
| 3 | 0 | dIn | 1 | 1 | button B | 
| 4 | 103 | temperature | 2 | 0.1°C (s) | microbit temperature | 
| 5 | 115 | barometer | 2 | 0.1 hPa (s) | (gereserveerd) | 
| 6 | 104 | humidity | 1 | 0.5 % (u) | (gereserveerd) | 
| 7 | 102 | presence | 1 | 1 | shake, PIR sensor | 
| 8 | 2 | aIn | 2 | 0.01 (u) | light level (display) | 
[0, 1, 0, 1, 1, 0, 2, 0, 0, 3, 0, 0, 4, 103, 1, 4, 8, 2, 0, 15]
LPP in JSON string-formaat#
{"nodeid": "3b52", 
 "counter": 300,
 "payload": {
     "4": {"temperature": 260}, 
     "8": {"aIn": 15}, 
     "1": {"dOut": 0}, 
     "0": {"dOut": 0}, 
     "3": {"dIn": 0}, 
     "2": {"dIn": 0}}}
IoT gateway#
- verbinding tussen lokale IoT-netwerk en internet 
- omzetten van binaire LPP berichten naar MQTT-JSON 
- en omgekeerd 
- combinatie van microbit en WiFi radio 
microbit radio-logger#
- “packet sniffer” 
- logging van tekst-berichten en IoT-berichten 
- debugging van gateway(!) en van IoT-netwerk 
IoT vs. web#
| web | IoT | |
|---|---|---|
| protocol(len) | HTTP | MQTT, COAP, e.v.a. | 
| adressering | URL | MQTT domein+topic, e.v.a. | 
| payload | HTML, e.v.a. | JSON, e.v.a. | 
| standaardisatie? | uniform (browser!) | veel verschillende… | 
Opdracht 1: IoT-knoop#
- programmeer een microbit als IoT-knoop 
- programmeer een microbit als radio-logger 
Opdracht 2: MQTT#
- MQTT chat (0) 
- MQTT chat (1) 
- MQTT sensoren (JSON) 
- MQTT actuatoren (JSON) 
Opdracht 3: NodeRed#
- kennismaking NodeRed 
- eerste flows 
Volgende bijeenkomsten:#
2:
- IoT-gateway 
- NodeRed: dashboard 
- presence-sensor 
3:
- NodeRed: sturen (actuatoren) 
- toepassing 
