aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2018-04-18 09:41:31 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2018-04-18 09:41:31 +0200
commita69a5acdcf8c72f6f2b96f0f43cb3fa205fd02cf (patch)
tree72dd4f6779bae48cb2f602f630398150b8a36b97
parentd7507c1fbae1362bfb4525b074061a5303a9cc71 (diff)
downloadiot-workshop-a69a5acdcf8c72f6f2b96f0f43cb3fa205fd02cf.tar.gz
iot-workshop-a69a5acdcf8c72f6f2b96f0f43cb3fa205fd02cf.tar.bz2
iot-workshop-a69a5acdcf8c72f6f2b96f0f43cb3fa205fd02cf.tar.xz
iot-workshop-a69a5acdcf8c72f6f2b96f0f43cb3fa205fd02cf.zip
wip
-rw-r--r--Makefile20
-rw-r--r--dictionary.txt23
-rw-r--r--images/IP-Header_eng.pdfbin31300 -> 12555 bytes
-rw-r--r--images/IP-Header_eng.tex6
-rw-r--r--what-is-iot-reveal.html24
-rw-r--r--what-is-iot-slides-orig.pdfbin285395 -> 0 bytes
-rw-r--r--what-is-iot-slides.pdfbin88270 -> 60996 bytes
-rw-r--r--what-is-iot-slides.tex268
-rw-r--r--what-is-iot-text.pdfbin365180 -> 66466 bytes
-rw-r--r--what-is-iot.md37
10 files changed, 355 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index dda4b16..0dab227 100644
--- a/Makefile
+++ b/Makefile
@@ -4,13 +4,15 @@ SLIDE_THEME=boxes
PDFS=$(P)-text.pdf $(P)-slides.pdf
HTMLS=$(P)-reveal.html
-RUN_PANDOC_BEAMER=pandoc -f markdown -t beamer --highlight-style=pygments -V theme:$(SLIDES_THEME)\
+RUN_PP_BEAMER=pp -DBEAMER
+RUN_PANDOC_BEAMER=pandoc -f markdown -t beamer --highlight-style=pygments -V theme:$(SLIDE_THEME) \
--pdf-engine=xelatex
RUN_PANDOC_REVEALJS=pandoc -f markdown -t revealjs -s -V revealjs-url=./bower_components/reveal.js
+RUN_PANDOC_TEXT=pandoc -f markdown --pdf-engine=xelatex
all: $(PDFS) $(HTMLS)
-slides: $(P)-slides.pdf
+slides: $(P)-slides.pdf $(P)-slides.tex
html: $(P)-reveal.html
.PHONY: html slides
@@ -28,17 +30,23 @@ spell: .$(P).md.spell
$(P).md: Makefile
@touch $@
-%-text.pdf: %.md
- pandoc -f markdown -o $@ $<
+%.beamer.md: %.md
+ $(RUN_PP_BEAMER) < $< > $@
-%-slides.pdf: %.md
+%-text.pdf: %.beamer.md
+ $(RUN_PANDOC_TEXT) -o $@ $<
+
+%-slides.pdf: %.beamer.md
+ $(RUN_PANDOC_BEAMER) -o $@ $<
+
+%-slides.tex: %.beamer.md
$(RUN_PANDOC_BEAMER) -o $@ $<
%-reveal.html: %.md
$(RUN_PANDOC_REVEALJS) -o $@ $<
images/%.pdf: images/%.tex | Makefile
- pdflatex -output-directory=images $<
+ xelatex -output-directory=images $<
# pdfcrop $@
# mv $(patsubst %.pdf,%-crop.pdf,$@) $@
diff --git a/dictionary.txt b/dictionary.txt
index 76ea32e..fd40082 100644
--- a/dictionary.txt
+++ b/dictionary.txt
@@ -1,12 +1,33 @@
-personal_ws-1.1 en 11
+personal_ws-1.1 en 32
+ip
+Mbps
+fontspec
+Verdana
+setsansfont
+SSL
TCP
IoT
OSI
+pdf
+BEAMER
+usepackage
+svg
+IPX
+Laugstl
+ifdef
+MQTT
allbordercolors
MTU
hypersetup
+NetBIOS
pdfborderstyle
+TTL
DNS
UDP
+ICMP
colorlinks
RTT
+PHY
+Trygve
+eng
+MCUs
diff --git a/images/IP-Header_eng.pdf b/images/IP-Header_eng.pdf
index 86ed3c3..049c0cf 100644
--- a/images/IP-Header_eng.pdf
+++ b/images/IP-Header_eng.pdf
Binary files differ
diff --git a/images/IP-Header_eng.tex b/images/IP-Header_eng.tex
index b65ecdf..a2439fc 100644
--- a/images/IP-Header_eng.tex
+++ b/images/IP-Header_eng.tex
@@ -4,14 +4,18 @@
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,fit,positioning,shapes.symbols,chains,shapes.geometric,shapes.arrows,calc}
+\usepackage{fontspec}
+\setsansfont{Verdana}
+
\begin{document}
\begin{tikzpicture}[scale=0.47]
+ \sffamily
\foreach \x in {0,...,31}
\node at (\x+0.5,20.5) {\scriptsize \x};
\foreach \x in {0,...,31}
\node at (\x+0.5,13.5) {\scriptsize \x};
\foreach \x in {0,...,32}
- \draw[thick, blue] (\x,13) -- (\x,21);
+ \draw[thick] (\x,13) -- (\x,21);
\node[thick] (bit1) at (-0.5,20.5) {\scriptsize bit};
\node[thick] (bit2) at (-0.5,13.5) {\scriptsize bit};
\draw [<->, thick] (-0.5, 19.9) -- (-0.5,15.1);
diff --git a/what-is-iot-reveal.html b/what-is-iot-reveal.html
index 5198bf9..15c69e5 100644
--- a/what-is-iot-reveal.html
+++ b/what-is-iot-reveal.html
@@ -28,6 +28,7 @@
<script src="./bower_components/reveal.js/lib/js/html5shiv.js"></script>
<![endif]-->
+
</head>
<body>
<div class="reveal">
@@ -59,8 +60,8 @@
<ul>
<li><em>The Internet of Things (IoT) is the network of physical devices, vehicles, home appliances and other items embedded with electronics, software, sensors, actuators, and connectivity which enables these objects to connect and exchange data.</em><a href="#/fn1" class="footnote-ref" id="fnref1"><sup>1</sup></a></li>
</ul>
-</section><section id="what-differentiates-a-computer-from-an-iot-device" class="slide level2">
-<h2>What differentiates a computer from an IoT device?</h2>
+</section><section id="what-is-an-iot-device" class="slide level2">
+<h2>What is an IoT Device?</h2>
<ul>
<li>Constrained in (one or more of):
<ul>
@@ -70,6 +71,9 @@
<li>Storage</li>
</ul></li>
</ul>
+<aside class="notes">
+<p>What differentiates a computer from an IoT device?</p>
+</aside>
</section></section>
<section><section id="going-back-to-basics" class="title-slide slide level1"><h1>Going back to basics</h1></section><section id="what-is-the-internet-again" class="slide level2">
<h2>What is the internet again?</h2>
@@ -89,7 +93,7 @@
<li><a href="https://en.wikipedia.org/wiki/OSI_model#Examples">Wikipedia: OSI model#Examples</a></li>
</ul>
<aside class="notes">
-<p>Følges ikke veldig slavisk</p>
+<p>Does not match the TCP/IP stack very closely.</p>
</aside>
</section><section id="layer-1-physical-layer" class="slide level2">
<h2>Layer 1: Physical Layer</h2>
@@ -100,7 +104,9 @@
<li>RS-232</li>
</ul>
<aside class="notes">
-<p>Huber og switcher (som gjør en slags routing) er ikke en av disse lagene. Mere en implementasjonsdetalj. RS-232 sin signallering brukes i <em>alle</em> MCUer, mange har flere porter tilgjengelige. Kun signallering, ikke spenningsnivåer. Mange støtter veldig høye datarater (&gt;= 1Mbit/s)</p>
+<p>Ethernet: Hubs and switches (that act on this level) is not on it’s own layer. It is more of a implementation detail in the architecture diagram.</p>
+<p>RS-232 signaling is used in <em>all</em> MCUs, many have several ports available. It is extremely flexible, both used for implementing applications and debugging. Frequently an easy way to hack embedded devices. “USB dongles”, “USB TTL” all use RS-232 signaling.</p>
+<p>Note that this only applies to its logical signals, not voltage levels. The signaling does not specify any max data rate, very high rates (&gt;= 1Mbps) is often supported.</p>
</aside>
</section><section id="layer-2-data-link-layer" class="slide level2">
<h2>Layer 2: Data Link Layer</h2>
@@ -147,13 +153,13 @@
</ul>
</section><section id="details-ip" class="slide level2">
<h2>Details: IP</h2>
-<p><img data-src="images/ip-header.svg" /></p>
+<p>!ifdef(REVEAL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<sub> <img data-src="images/ip-header.svg" /> </sub>~~~~~~~~~~~~~~~~~~~~~~~~~~~~<sub> !ifdef(BEAMER) </sub>~~~~~~~~~~~~~~~~~~~~~~~~~~~~<sub> <embed data-src="images/ip-header.pdf" /> </sub>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
+<aside class="notes">
+<p>Note that the “total length” field is 16 bits, 2 bytes, it’s maximum value is 64k, 65536.</p>
+</aside>
</section><section id="details-ip-1" class="slide level2">
<h2>Details: IP</h2>
-<p><embed data-src="images/ip-header.pdf" /></p>
-</section><section id="details-ip-2" class="slide level2">
-<h2>Details: IP</h2>
-<p><embed data-src="images/IP-Header_eng.pdf" /></p>
+<p><embed data-src="images/IP-Header_eng.pdf" /> !comment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<sub> </sub>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
</section></section>
<section><section id="notes" class="title-slide slide level1"><h1>Notes</h1></section><section id="assignments" class="slide level2">
<h2>Assignments</h2>
diff --git a/what-is-iot-slides-orig.pdf b/what-is-iot-slides-orig.pdf
deleted file mode 100644
index 2ca5201..0000000
--- a/what-is-iot-slides-orig.pdf
+++ /dev/null
Binary files differ
diff --git a/what-is-iot-slides.pdf b/what-is-iot-slides.pdf
index 30e1052..1d916d8 100644
--- a/what-is-iot-slides.pdf
+++ b/what-is-iot-slides.pdf
Binary files differ
diff --git a/what-is-iot-slides.tex b/what-is-iot-slides.tex
new file mode 100644
index 0000000..cfe6a53
--- /dev/null
+++ b/what-is-iot-slides.tex
@@ -0,0 +1,268 @@
+\hypertarget{what-is-iot}{%
+\section{What is IoT}\label{what-is-iot}}
+
+\begin{frame}{What is IoT}
+\protect\hypertarget{what-is-iot-1}{}
+
+\begin{itemize}
+\tightlist
+\item
+ Not “a computer connected to the internet”
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Then it is really just another computer connected to the internet
+ \end{itemize}
+\item
+ Must be something else
+
+ \begin{itemize}
+ \tightlist
+ \item
+ It is simply devices that are resource constrained
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Usually in more than one way
+ \end{itemize}
+ \end{itemize}
+\item
+ Autonomous operation, the connection might not be permanent
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{IoT is just a concept}
+\protect\hypertarget{iot-is-just-a-concept}{}
+
+\begin{itemize}
+\tightlist
+\item
+ \emph{The Internet of Things (IoT) is the network of physical devices,
+ vehicles, home appliances and other items embedded with electronics,
+ software, sensors, actuators, and connectivity which enables these
+ objects to connect and exchange data.}\footnote<.->{Wikipedia
+ “Internet of Things”}
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{What is an IoT Device?}
+\protect\hypertarget{what-is-an-iot-device}{}
+
+\begin{itemize}
+\tightlist
+\item
+ Constrained in (one or more of):
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Memory
+ \item
+ CPU
+ \item
+ Network bandwidth and/or latency
+ \item
+ Storage
+ \end{itemize}
+\end{itemize}
+
+\note{What differentiates a computer from an IoT device?}
+
+\end{frame}
+
+\hypertarget{going-back-to-basics}{%
+\section{Going back to basics}\label{going-back-to-basics}}
+
+\begin{frame}{What is the internet again?}
+\protect\hypertarget{what-is-the-internet-again}{}
+
+\end{frame}
+
+\begin{frame}{OSI model}
+\protect\hypertarget{osi-model}{}
+
+\begin{enumerate}
+[1.]
+\tightlist
+\item
+ Physical Layer
+\item
+ Data Link Layer
+\item
+ Network Layer
+\item
+ Transport Layer
+\item
+ Session Layer
+\item
+ Presentation Layer
+\item
+ Application Layer
+\end{enumerate}
+
+\begin{itemize}
+\tightlist
+\item
+ \href{https://en.wikipedia.org/wiki/OSI_model}{Wikipedia: OSI model}
+\item
+ \href{https://en.wikipedia.org/wiki/OSI_model\#Examples}{Wikipedia:
+ OSI model\#Examples}
+\end{itemize}
+
+\note{Does not match the TCP/IP stack very closely.}
+
+\end{frame}
+
+\begin{frame}{Layer 1: Physical Layer}
+\protect\hypertarget{layer-1-physical-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ 10BASE5, 10BASE2
+\item
+ 10BASE-T / 100BASE-TX / 1000BASE-TX
+\item
+ 802.11a/b/g/n PHY
+\item
+ RS-232
+\end{itemize}
+
+\note{Ethernet: Hubs and switches (that act on this level) is not on
+it’s own layer. It is more of a implementation detail in the
+architecture diagram.
+
+RS-232 signaling is used in \emph{all} MCUs, many have several ports
+available. It is extremely flexible, both used for implementing
+applications and debugging. Frequently an easy way to hack embedded
+devices. “USB dongles”, “USB TTL” all use RS-232 signaling.
+
+Note that this only applies to its logical signals, not voltage levels.
+The signaling does not specify any max data rate, very high rates
+(\textgreater{}= 1Mbps) is often supported.}
+
+\end{frame}
+
+\begin{frame}{Layer 2: Data Link Layer}
+\protect\hypertarget{layer-2-data-link-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ Ethernet
+\item
+ WiFi
+\item
+ Bluetooth
+\item
+ Token Ring
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{Layer 3: Network Layer}
+\protect\hypertarget{layer-3-network-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ IP
+\item
+ ICMP
+\item
+ IPX
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{Layer 4: Transport Layer}
+\protect\hypertarget{layer-4-transport-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ TCP
+\item
+ UDP
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{Layer 5: Session Layer}
+\protect\hypertarget{layer-5-session-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ “sockets”
+\item
+ NetBIOS
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{Layer 6: Presentation Layer}
+\protect\hypertarget{layer-6-presentation-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ SSL
+\end{itemize}
+
+\note{This layer is not really much used in the IP stack}
+
+\end{frame}
+
+\begin{frame}{Layer 7: Application Layer}
+\protect\hypertarget{layer-7-application-layer}{}
+
+\begin{itemize}
+\tightlist
+\item
+ HTTP
+\item
+ MQTT
+\item
+ DNS
+\item
+ (everything else..)
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{Details: IP}
+\protect\hypertarget{details-ip}{}
+
+\includegraphics{images/ip-header.pdf}
+
+\note{Note that the “total length” field is 16 bits, 2 bytes, it’s
+maximum value is 64k, 65536.}
+
+\end{frame}
+
+\begin{frame}{Details: IP}
+\protect\hypertarget{details-ip-1}{}
+
+\includegraphics{images/IP-Header_eng.pdf}
+
+\end{frame}
+
+\hypertarget{notes}{%
+\section{Notes}\label{notes}}
+
+\begin{frame}{Assignments}
+\protect\hypertarget{assignments}{}
+
+\begin{itemize}
+\tightlist
+\item
+ Measure round trip time/latency. Measure UDP, TCP. Measure when the
+ packet size is greater than the MTU
+\end{itemize}
+
+\end{frame}
diff --git a/what-is-iot-text.pdf b/what-is-iot-text.pdf
index 790477a..7b96348 100644
--- a/what-is-iot-text.pdf
+++ b/what-is-iot-text.pdf
Binary files differ
diff --git a/what-is-iot.md b/what-is-iot.md
index 8433398..9c97909 100644
--- a/what-is-iot.md
+++ b/what-is-iot.md
@@ -26,7 +26,7 @@ header-includes:
* *The Internet of Things (IoT) is the network of physical devices, vehicles, home appliances and other items embedded with electronics, software, sensors, actuators, and connectivity which enables these objects to connect and exchange data.*^[Wikipedia "Internet of Things"]
-## What differentiates a computer from an IoT device?
+## What is an IoT Device?
* Constrained in (one or more of):
* Memory
@@ -34,6 +34,10 @@ header-includes:
* Network bandwidth and/or latency
* Storage
+::: notes
+What differentiates a computer from an IoT device?
+:::
+
# Going back to basics
## What is the internet again?
@@ -54,7 +58,7 @@ header-includes:
::: notes
-Følges ikke veldig slavisk
+Does not match the TCP/IP stack very closely.
:::
@@ -67,8 +71,17 @@ Følges ikke veldig slavisk
::: notes
-Huber og switcher (som gjør en slags routing) er ikke en av disse lagene. Mere en implementasjonsdetalj.
-RS-232 sin signallering brukes i *alle* MCUer, mange har flere porter tilgjengelige. Kun signallering, ikke spenningsnivåer. Mange støtter veldig høye datarater (>= 1Mbit/s)
+Ethernet: Hubs and switches (that act on this level) is not on it's own
+layer. It is more of a implementation detail in the architecture diagram.
+
+RS-232 signaling is used in *all* MCUs, many have several ports
+available. It is extremely flexible, both used for implementing
+applications and debugging. Frequently an easy way to hack embedded
+devices. "USB dongles", "USB TTL" all use RS-232 signaling.
+
+Note that this only applies to its logical signals, not voltage
+levels. The signaling does not specify any max data rate, very high rates
+(>= 1Mbps) is often supported.
:::
@@ -115,15 +128,27 @@ This layer is not really much used in the IP stack
## Details: IP
+!ifdef(REVEAL)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
![](images/ip-header.svg)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+!ifdef(BEAMER)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+![](images/ip-header.pdf)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-## Details: IP
+::: notes
-![](images/ip-header.pdf)
+Note that the "total length" field is 16 bits, 2 bytes, it's maximum value is 64k, 65536.
+
+:::
## Details: IP
![](images/IP-Header_eng.pdf)
+!comment
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Notes