Presentatie 2#

IoT met de micro:bit

Programma#

  • IoT gateway

  • NodeRed sensor- en actuatorflows

IoT netwerk (opstelling)#

IoT netwerk <-> internet#

IoT-gateway#

  • verbindt IoT-netwerk en internet

  • omzetten van LPP payload <-> JSON MQTT payload

Payloads#

  • header + LPP binair formaat

[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]
  • JSON tekstformaat - header + payload

{"nodeid": "3b52", "counter": 300,
 "payload": {
     "4": {"temperature": 260}, "8": {"aIn": 15}, "1": {"dOut": 0}, 
     "0": {"dOut": 0}, "3": {"dIn": 0}, "2": {"dIn": 0}}}

Gateway-hardware#

Gateway-protocollen#

AT voorbeelden#

AT+MQTTUSERCFG=0,1,"ESP32","espressif","1234567890",0,0,""
AT+MQTTCONN=0,"192.168.31.113",1883,0
AT+MQTTSUB=0,"topic",1
AT+MQTTPUB=0,"topic","test",1,0

enkele speciale punten#

  • naast AT-opdracht met response, ook ongevraagde ESP-berichten

    • bijv. wegvallen van MQTT verbinding

  • “escape” nodig in AT-string-argumenten

    • voor " (quotes)

    • en voor , (comma) (!!)

Programmeren van gateway#

  • zie handleiding “micro:bits programmeren”

  • testen met onderstaande opstelling

NodeRed#

  • NodeRed: controller, verbindt IoT-onderdelen

    • via allerlei protocollen

    • verbindingen en beslissingen via “flows”

NodeRed-opdrachten#

NodeRed - nodes en flows#

  • node: input links, output(s) rechts

  • verbindingen: van output naar input

  • node: verwerkt input-message, resulteert in output-messages

  • input-node: heeft externe input (bijv. HTTP, MQTT)

  • output-node: heeft externe output (bijv. HTTP, MQTT)

Voorbeeld: http flow#

hello-tekst (template):

 <h1>Hello World!<h1>

https://eelcodijkstra.github.io/netbook0/http/nodered/eerste-webserver.html

Test vb: https://elegant-goosander-2583.infvoflows.nl/hello?test=123

Opdrachten - zie Bijeenkomst 2