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