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