64

(TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application
Page 2: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

1

Page 3: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

(TCP/IP, UDP)

2

OSI 7 Layers

Physical

Data Link

Network

Transport

Session

Presentation

Application

IP Suite

Application

Transport

Network

Physical (Link)

FTP

TLS SSL

ZigBee

IEEE 802.15.4

6LoWPAN IPv6 IPv4

IEEE 802.3/IEEE 802.11

(Ethernet/WiFi)

TCPUDP

HTTPMQTTMQTT-SNCoAP

SigFoxLoRa

EnOcean

BLE

Thread

Page 4: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Message Queue

3

Page 5: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

(Stack) (Queue)

4

• (Double Ended Queue)• (Priority Queue)

enqueue dequeue

frontrear

push pop

top

Page 6: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

FIFO Queue

5

FIFO Queue

└ /

└ Throttling ( ) /

Priority Queue

└ Task Queue Job Queue Work Queue ( )

└ Wait Queue ( )

Message Queue

└ IPC, RPC

Page 7: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

6

Page 8: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

7

/(Load Balancing)

Scale Cube

Ref: Martin Abbott & Michael Fisher, The Art of Scalability.

Monolithic System

Y/

X

Page 9: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

X

8

Monolithic System

X

└ Worker Process Cluster/Threads

└ Reverse Proxy

└Sticky

└/ ( )

Page 10: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

9

Page 11: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

10

Page 12: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

11

API Proxy

API Orchestration

Message Broker

Page 13: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

12

API Proxy

Front End Apps

Page 14: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

13

Front End Apps

API Orchestration Layer (OL)

feature_1() feature_2() feature_3() feature_N()API Orchestrator

Page 15: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

14

Peer-to-Peer Message Broker

/Broker

RabbitMQ ( AMQP, MQTT, STOMP)

Page 16: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

15

Front End Apps

Message Broker

Page 17: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

-

16

Producer ConsumerMQ ACK

send

Database Temp Store

PERSISTENT MSG ( )NON_PERSISTENT MSG ( )

PERSISTENT MSG

( )NON_PERSISTENT MSG

push/pull

Dead Queue

Page 18: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

- ( )

17

Publisher SubscriberMQ

Database Temp Store

Dead Queue

Subscriber

Subscriber

Page 19: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

18

└ MQTT, XMPP, STOMP, AMQP, OpenWire

Broker

└ Mosquitto, Openfire, Stampy, Apache Qpid, ActiveMQ

MQ

└ Apache ActiveMQ MQTT, XMPP, STOMP, AMQP, OpenWire, WS

└ RabbitMQ AMQP, MQTT, STOMP

└ Apache Kafka ActiveMQ

└ Ø MQ

└ Redis Broker

Page 20: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

MQ Server

19

PERSISTENT MSG

NON_PERSISTENT MSG (temp store)

1. KahaDB

2. LevelDB (google)

3. 透過 JDBC (Derby, MySQL, Oracle, Postgresql, SQLServer, Sybase 等)

Page 21: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

-

20

Broker

MQ Server

Page 22: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

21

Ref: MQTT Essentials, http://www.hivemq.com/mqtt-essentials/

Page 23: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

MQTT IBM/Eurotech

22

└ Andy Standford-Clack Arlen Nipper 1999

└ IBM Eurotech

└ 2013 IBM v3.1 (2010.8) OASIS

└ 2014 MQTT v3.1.1 OASIS

└ 2013 2016

MQTT

└ Message Queuing Telemetry Transport

└ 1999 MQTT

└ MQTT v3.1 2010 IBM MQTT v3.1.1 2014 OASIS

└ v5.0

Page 24: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

/

23

└ TCP/IP

└ Header 2 bytes

Publish/Subscribe Pattern

└ /

└ Quality of Service (QoS) (LWT)Keep-Alive

Temp. Sensor

PUB: "26.5oC"Broker

Mobile PC ConstrainedDevices

PUB to topic temp: "26.5oC"

Client

Clients

Page 25: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Publish/Subscribe Pattern Client/Server

24

(Publisher)

└ Client

└ ( )

(Subscriber)

└ Clients

└ ( )

Broker

└ ( )

└ Publisher/Subscriber

PUB

Broker

PUB to topic

Client

Clients

Publisher

Subscriber(s)

Page 26: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Broker Clients TCP/IP Stack

25

Connection

└ Client Broker

└ Client Client

Return Code Return Code Response

0 Connection Accepted

1 Connection refused, unacceptable protocol version

2 Connection refused, identifier rejected

3 Connection refused, server unavailable

4 Connection refused, bad username or password

5 Connection refused, not authorized

{clientId: "client-exmaple",cleanSession: true,keepAlive: 60,[username]: "john",[password]: "mysecrete",[lastWillTopic]: "/john/will",[lastWillQos]: 2,[lastWillMessage]: "unexpected exit",[lastWillRetain]: false

}

{sessionPresent: true,returnCode: 0

}

CONNECT

CONNACK

Client Broker

Page 27: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Topic + Payload

26

Topic-based Filtering

└ topic

└ Broker topic clients

└ payload data-agnostic

{packetId: 1234,topicName: "foo/1",qos: 1,retainFlag: false,payload: "temperature:26.8",dupFlag: false

}

PUBLISH

Client Broker

PUBLISH

Clients

Page 28: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Broker Topic(s)

27

SUBSCRIBE

└ subscription topic-QoS

└ Topic wildcards ( topic pattern )

└ topic QoS

SUBACK

└ Broker SUBACK

{packetId: 1234,qos1: 1,topic1: "topic/1",qos2: 0,topic2: "topic/2"...

}

Return Code Return Code Response

0 Success – Maximum QoS 0

1 Success – Maximum QoS 1

2 Success – Maximum QoS 2

128 Failure

PUBLISH SUBSCRIBE

SUBACKPUBLISH

{packetId: 1234,returnCode1: 2,returnCode2: 0,...

}

Page 29: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Broker Topics

28

└ broker

└ topics topics

└ QoS topic

{packetId: 1234,topic1: "topic/1",topic2: "topic/2",...

}

{packetId: 1234

}

PUBLISH UBSUBSCRIBE

UNSUBACKPUBLISH

Page 30: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Topic

29

└ ( ) ( )

Topic

└ UTF-8

└ Topic multi-levels ( / )

└ topic 1

└ myhome/temperature MyHome/Temperature

└ “/” topic

myhome / groundfloor / livingroom / temp

Topic level separator

Topic level Topic level

Page 31: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Pattern

30

exact Topic

pattern Topic(s)

└ wildcard

└ SUB PUB

Single Level

└ Single Level: +

Multi Level└ Multi Level: # ( topic )

myhome / groundfloor / + / temp

Single-level wildcard

myhome / groundfloor / livingroom / temp

myhome / groundfloor / kitchen / temp

myhome / groundfloor / kitchen / brightness

myhome / firstfloor / kitchen / temp

myhome / groundfloor / kitchen / fridge / temp

myhome / groundfloor / #

Multi-level wildcard

myhome / groundfloor / livingroom / temp

myhome / groundfloor / kitchen / temp

myhome / groundfloor / kitchen / brightness

myhome / firstfloor / kitchen / temp

Page 32: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

/

31

└ / /mytop //mytop

└ UTF-8

└ ASCII

└ topic uid/clientId

└ #

└ topic

└ topic topic home/room topic

Page 33: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

32

└ QoS 0 At most once (0)

└ QoS 1 At least once (1)

└ QoS 2 Exactly once (2)

└ Client Broker (Client PUB QoS)

└ Broker Client(s)

QoS

PUB

Broker

PUB to topic with

Client

Clients

Publisher

Subscriber(s)

Page 34: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

33

QoS 0 – At most once

└ fire and forget

└ TCP

PUBLISH

Client Broker

QoS 0

Page 35: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

34

QoS 1 – At least once

└ PUBACKPUBLISH

└ PUB duplicate (DUP) flagDUP flag PUBACK

PUBLISH

Client Broker

QoS 1

PUBACK

{packetId: 1234

}

Page 36: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

35

QoS 2 – Exactly once

└ Client Broker

{packetId: 1234

}

PUBLISH QoS 2

PUBCOMP

PUBREC

PUBREL

packetIdPUBREC

PUBREC packetId

Page 37: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

36

QoS 0

QoS 1

└ duplicates

└ QoS 1

└ QoS 2 overhead ( )

QoS 2

└ duplicate

└ overhead QoS2 flow

Page 38: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

37

└PINGREQ Broker

└ Broker

Broker

└ Broker 1.5

PINGREQ

PINGRESP

Client Broker

Page 39: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

38

Page 40: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application
Page 41: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

BLE + MQTT

40

BLE Wireless Module

└ BLE PIR Central

Raspberry Pi

└ BLE Central

└ MQTT Broker

PC

└ MQTT Topic PIR

Page 42: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

41

└ API Protocol

└ PC Node-RED

└ Node

└ Node

└ Node

Page 43: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Raspberry Pi 3

42

1. RPi terminal

2. node-red

3. node-red

4. sudo npm install -g --unsafe-perm node-red

Page 44: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Node-RED

43

1. RPi terminal

2. node-red

3. PC

4. RPi IP:1880

Page 45: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

44

node

└ inject node

└ random node

└ switch node

└ function node

└ debug node

Page 46: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Manage palette

45

Page 47: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

NPM

46

1. Node-RED ~/.node-red

2. Random node

└ npm install node-red-node-random

3. Node-Red

Page 48: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

inject node random node

47

1. inject node

2. Repeat interval

3. random node

4. 1 100

5. node

inject node

random node

Page 49: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

switch node

48

1. switch node

2. >= number 60

3.

4. < number 60

5. node

switch node

Page 50: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

function node

49

1. function node

2. Function Pass

3. function node

4. Function Fail

5. node

function node1

function node2

Page 51: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Deploy

50

1. function node debug node

2. Deploy

3. debug

Page 52: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Node-Red Publish PIR status

51

Page 53: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

MQTT Broker

52

RPi mosquitto

└ apt-get install mosquitto

mosquitto

└ service mosquitto status

Page 54: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

PIR Publish MQTT Broker

53

TCP PIRPIR Publish MQTT Broker

node

└ tcp in node

└ mqtt out node

└ debug node

Page 55: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

TCP node

54

tcp in node

Page 56: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

MQTT node

55

mqtt out node

Page 57: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

BLE Central

56

Page 58: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

57

1 Git

└ git clone https://github.com/PeterEB/ntu-iot-ble-example.git

2 Github ntu-iot-ble-exampleZIP

Page 59: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

TCP PIR

58

var net = require('net');var BleShepherd = require('ble-shepherd');

var client = new net.Socket();

client.connect(1337, '127.0.0.1', function() {console.log('Connected');

});

// ...

central.on('ind', function(msg) {var periph = msg.periph;

switch (msg.type) {// ...

case 'attNotify':if (msg.data.value.dInState) {

console.log('PIR device sensed someone');client.write('true');

} else {console.log('Someone left');client.write('false');

}break;

}});

app.js

Page 60: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

BLE PIR

59

1. Node-RED Deploy

2. terminal

└ sudo node app.js

Page 61: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

Subscribe MQTT Topic

60

Page 62: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

MQTT Lens PIR Topic

61

MQTT Lens

└ Google Chrome

└ MQTT Broker Subscribe Publish MQTT topic

PC Chrome MQTT Lens

Page 63: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

MQTT Lens

62

RPi MQTT Broker PIR topic

Page 64: (TCP/IP, UDP)cc.ee.ntu.edu.tw/.../IoT-NTUEE-Conversion3-MQTT.pdf · 2019. 9. 29. · (TCP/IP, UDP) 2 OSI 7 Layers Physical Data Link Network Transport Session Presentation Application

63