From c0d3e968f8ec64a6d43591b87d57bb5112764aa0 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 27 Apr 2018 01:08:37 +0200 Subject: wip --- slides/images/mqtt-example-architecture.pgf | 2 +- slides/images/mqtt-example-architecture2.pgf | 27 +++++ slides/what-is-iot-slides.pdf | Bin 308648 -> 311046 bytes slides/what-is-iot-slides.tex | 175 ++++++++++++++++++++------- slides/what-is-iot.md | 50 +++++--- 5 files changed, 194 insertions(+), 60 deletions(-) create mode 100644 slides/images/mqtt-example-architecture2.pgf diff --git a/slides/images/mqtt-example-architecture.pgf b/slides/images/mqtt-example-architecture.pgf index b36827c..240b06b 100644 --- a/slides/images/mqtt-example-architecture.pgf +++ b/slides/images/mqtt-example-architecture.pgf @@ -12,8 +12,8 @@ \node (c1)[draw, circle, fit=(c1_label)] {}; \node (c2)[draw, circle, fit=(c2_label)] {}; \node (c3)[draw, circle, fit=(c3_label)] {}; -\node (central)[draw, circle, fit=(central_label)] {}; \node (broker)[draw, rectangle, thick, inner ysep=5 mm, inner xsep=10 mm, fit=(broker_label)] {}; +\node (central) at (central_label) [draw, circle, text width=2 cm] {}; \draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c1) to [bend right] (broker); \draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c2) -- (broker); diff --git a/slides/images/mqtt-example-architecture2.pgf b/slides/images/mqtt-example-architecture2.pgf new file mode 100644 index 0000000..c67d411 --- /dev/null +++ b/slides/images/mqtt-example-architecture2.pgf @@ -0,0 +1,27 @@ +\begin{tikzpicture} + +\path + (-3 cm, 0) node (c1_label) {Device \#1} + ( 0 cm, 0) node (c2_label) {Device \#2} + ( 3 cm, 0) node (c3_label) {Device \#3} + + (0, -3 cm) node (broker_label) {Broker} + + (-2 cm, -6 cm) node (agg_label) {Aggregator} + ( 2 cm, -6 cm) node (email_label) {Email} +; + +\node (c1)[draw, circle, fit=(c1_label)] {}; +\node (c2)[draw, circle, fit=(c2_label)] {}; +\node (c3)[draw, circle, fit=(c3_label)] {}; +\node (broker)[draw, rectangle, thick, inner ysep=5 mm, inner xsep=10 mm, fit=(broker_label)] {}; +\node (agg) at (agg_label) [draw, circle, text width=2 cm] {}; +\node (email) at (email_label) [draw, circle, text width=2 cm] {}; + +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c1) to [bend right] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c2) -- (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c3) to [bend left] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (agg) -- (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (email) -- (broker); + +\end{tikzpicture} diff --git a/slides/what-is-iot-slides.pdf b/slides/what-is-iot-slides.pdf index efee6d1..0787197 100644 Binary files a/slides/what-is-iot-slides.pdf and b/slides/what-is-iot-slides.pdf differ diff --git a/slides/what-is-iot-slides.tex b/slides/what-is-iot-slides.tex index 1e31381..0901294 100644 --- a/slides/what-is-iot-slides.tex +++ b/slides/what-is-iot-slides.tex @@ -815,6 +815,38 @@ Version 3.1.1 er den som gjelder, V 3.1 er rar, de andre finnes ikke \end{frame} +\begin{frame}{Device and application architecture with MQTT} +\protect\hypertarget{device-and-application-architecture-with-mqtt}{} + +\begin{center} +\begin{tikzpicture} + +\path + (-3 cm, 0) node (c1_label) {Device \#1} + ( 0 cm, 0) node (c2_label) {Device \#2} + ( 3 cm, 0) node (c3_label) {Device \#3} + + (0, -3 cm) node (broker_label) {Broker} + (0, -6 cm) node (central_label) {Central} +; + +\node (c1)[draw, circle, fit=(c1_label)] {}; +\node (c2)[draw, circle, fit=(c2_label)] {}; +\node (c3)[draw, circle, fit=(c3_label)] {}; +\node (broker)[draw, rectangle, thick, inner ysep=5 mm, inner xsep=10 mm, fit=(broker_label)] {}; +\node (central) at (central_label) [draw, circle, text width=2 cm] {}; + +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c1) to [bend right] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c2) -- (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c3) to [bend left] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (central) -- (broker); + +\end{tikzpicture} + +\end{center} + +\end{frame} + \begin{frame}{MQTT - Implementations} \protect\hypertarget{mqtt---implementations}{} @@ -964,10 +996,40 @@ The size field is variable length encoded, 0-127 bytes is 1 byte, \end{frame} -\begin{frame}{MQTT - The protocol - Keep alive} -\protect\hypertarget{mqtt---the-protocol---keep-alive}{} +\begin{frame}[fragile]{MQTT Connect} +\protect\hypertarget{mqtt-connect}{} -TODO +\begin{itemize} +\tightlist +\item + \texttt{CONNECT} + + \begin{itemize} + \tightlist + \item + \texttt{clientId} + \item + \texttt{username} + \item + \texttt{password} + \item + \texttt{keepAlive} + \end{itemize} +\end{itemize} + +\begin{itemize} +\tightlist +\item + Keep alive + + \begin{itemize} + \tightlist + \item + \texttt{PINGREQ} + \item + \texttt{PINGRESP} + \end{itemize} +\end{itemize} \end{frame} @@ -1098,45 +1160,6 @@ Broker \end{frame} -\begin{frame}{MQTT - The protocol - Client id} -\protect\hypertarget{mqtt---the-protocol---client-id}{} - -TODO - -\end{frame} - -\begin{frame}{Device and application architecture with MQTT} -\protect\hypertarget{device-and-application-architecture-with-mqtt}{} - -\begin{center} -\begin{tikzpicture} - -\path - (-3 cm, 0) node (c1_label) {Device \#1} - ( 0 cm, 0) node (c2_label) {Device \#2} - ( 3 cm, 0) node (c3_label) {Device \#3} - - (0, -3 cm) node (broker_label) {Broker} - (0, -6 cm) node (central_label) {Central} -; - -\node (c1)[draw, circle, fit=(c1_label)] {}; -\node (c2)[draw, circle, fit=(c2_label)] {}; -\node (c3)[draw, circle, fit=(c3_label)] {}; -\node (central)[draw, circle, fit=(central_label)] {}; -\node (broker)[draw, rectangle, thick, inner ysep=5 mm, inner xsep=10 mm, fit=(broker_label)] {}; - -\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c1) to [bend right] (broker); -\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c2) -- (broker); -\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c3) to [bend left] (broker); -\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (central) -- (broker); - -\end{tikzpicture} - -\end{center} - -\end{frame} - \begin{frame}[fragile]{MQTT Topic} \protect\hypertarget{mqtt-topic}{} @@ -1293,7 +1316,73 @@ The central application is split: \end{itemize} \end{itemize} -\note{} +\end{frame} + +\begin{frame}{MQTT topic architecture} +\protect\hypertarget{mqtt-topic-architecture-1}{} + +\begin{center} +\begin{tikzpicture} + +\path + (-3 cm, 0) node (c1_label) {Device \#1} + ( 0 cm, 0) node (c2_label) {Device \#2} + ( 3 cm, 0) node (c3_label) {Device \#3} + + (0, -3 cm) node (broker_label) {Broker} + (0, -6 cm) node (central_label) {Central} +; + +\node (c1)[draw, circle, fit=(c1_label)] {}; +\node (c2)[draw, circle, fit=(c2_label)] {}; +\node (c3)[draw, circle, fit=(c3_label)] {}; +\node (broker)[draw, rectangle, thick, inner ysep=5 mm, inner xsep=10 mm, fit=(broker_label)] {}; +\node (central) at (central_label) [draw, circle, text width=2 cm] {}; + +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c1) to [bend right] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c2) -- (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c3) to [bend left] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (central) -- (broker); + +\end{tikzpicture} + +\end{center} + +\end{frame} + +\begin{frame}{MQTT topic architecture} +\protect\hypertarget{mqtt-topic-architecture-2}{} + +\begin{center} +\begin{tikzpicture} + +\path + (-3 cm, 0) node (c1_label) {Device \#1} + ( 0 cm, 0) node (c2_label) {Device \#2} + ( 3 cm, 0) node (c3_label) {Device \#3} + + (0, -3 cm) node (broker_label) {Broker} + + (-2 cm, -6 cm) node (agg_label) {Aggregator} + ( 2 cm, -6 cm) node (email_label) {Email} +; + +\node (c1)[draw, circle, fit=(c1_label)] {}; +\node (c2)[draw, circle, fit=(c2_label)] {}; +\node (c3)[draw, circle, fit=(c3_label)] {}; +\node (broker)[draw, rectangle, thick, inner ysep=5 mm, inner xsep=10 mm, fit=(broker_label)] {}; +\node (agg) at (agg_label) [draw, circle, text width=2 cm] {}; +\node (email) at (email_label) [draw, circle, text width=2 cm] {}; + +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c1) to [bend right] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c2) -- (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (c3) to [bend left] (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (agg) -- (broker); +\draw[{Latex[length=4mm, round]}-{Latex[length=4mm, round]}] (email) -- (broker); + +\end{tikzpicture} + +\end{center} \end{frame} diff --git a/slides/what-is-iot.md b/slides/what-is-iot.md index e3c3591..db78358 100644 --- a/slides/what-is-iot.md +++ b/slides/what-is-iot.md @@ -461,6 +461,14 @@ Version 3.1.1 er den som gjelder, V 3.1 er rar, de andre finnes ikke ::: +## Device and application architecture with MQTT + +!ifndef(QUICK)( +\begin{center} +!include(images/mqtt-example-architecture.pgf) +\end{center} +) + ## MQTT - Implementations * Mosquitto @@ -544,9 +552,19 @@ The size field is variable length encoded, 0-127 bytes is 1 byte, 128-16383 use ::: -## MQTT - The protocol - Keep alive +## MQTT Connect + +* `CONNECT` + * `clientId` + * `username` + * `password` + * `keepAlive` + + -TODO +* Keep alive + * `PINGREQ` + * `PINGRESP` ## MQTT - The protocol - MQTT Topic @@ -600,18 +618,6 @@ Broker * `$app/$device/online` * `0` -## MQTT - The protocol - Client id - -TODO - -## Device and application architecture with MQTT - -!ifndef(QUICK)( -\begin{center} -!include(images/mqtt-example-architecture.pgf) -\end{center} -) - ## MQTT Topic The temperature sensor: @@ -700,9 +706,21 @@ The central application is split: * Publishes on: * `myapp/$device-id/command` -::: notes +## MQTT topic architecture -::: +!ifndef(QUICK)( +\begin{center} +!include(images/mqtt-example-architecture.pgf) +\end{center} +) + +## MQTT topic architecture + +!ifndef(QUICK)( +\begin{center} +!include(images/mqtt-example-architecture2.pgf) +\end{center} +) ## MQTT - Patterns -- cgit v1.2.3