(tcp/ip, udp)cc.ee.ntu.edu.tw/.../iot-ntuee-conversion3-mqtt.pdf · 2019. 9. 29. · (tcp/ip, udp)...
TRANSCRIPT
![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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/1.jpg)
![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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/3.jpg)
(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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/5.jpg)
(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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/17.jpg)
-
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/18.jpg)
- ( )
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/21.jpg)
-
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/24.jpg)
/
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/32.jpg)
/
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/40.jpg)
![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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/57.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/59.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/60.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/61.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/62.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/63.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022081410/6096550affdcd17f0e6145b4/html5/thumbnails/64.jpg)
63