aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2018-04-24 21:43:35 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2018-04-24 21:43:35 +0200
commitfc8c037b80dea764393b79cba85a83004bd0aef6 (patch)
tree75da98a3b17cda6f3d022d52df3d8b80ed36e72d
parentf64b81fed9702c41af4cec14d91f38ce5ad3384e (diff)
downloadiot-workshop-fc8c037b80dea764393b79cba85a83004bd0aef6.tar.gz
iot-workshop-fc8c037b80dea764393b79cba85a83004bd0aef6.tar.bz2
iot-workshop-fc8c037b80dea764393b79cba85a83004bd0aef6.tar.xz
iot-workshop-fc8c037b80dea764393b79cba85a83004bd0aef6.zip
wip
-rw-r--r--slides/Makefile15
-rw-r--r--slides/images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpgbin0 -> 149531 bytes
-rw-r--r--slides/images/nodemcu.pgf29
-rw-r--r--slides/images/qtikz-template.pgs10
-rw-r--r--slides/toc.md1
-rw-r--r--slides/what-is-iot-reveal.html7
-rw-r--r--slides/what-is-iot-slides.pdfbin70985 -> 221761 bytes
-rw-r--r--slides/what-is-iot-slides.tex138
-rw-r--r--slides/what-is-iot-text.pdfbin84649 -> 87314 bytes
-rw-r--r--slides/what-is-iot.md26
10 files changed, 210 insertions, 16 deletions
diff --git a/slides/Makefile b/slides/Makefile
index 5761bbb..846caa0 100644
--- a/slides/Makefile
+++ b/slides/Makefile
@@ -34,8 +34,6 @@ toc.md: $(P).md
spell: .$(P).md.spell
-.$(P).md.spell: $(P).md
-
.%.spell: %
aspell --home-dir=. --personal=dictionary.txt --lang=en_US check $<
touch $@
@@ -43,9 +41,15 @@ spell: .$(P).md.spell
$(P).md: Makefile
@touch $@
-%.beamer.md: %.md
+include $(P).beamer.md.d
+include $(P).revealjs.md.d
+
+%.beamer.md: %.md# %.beamer.md.d
$(RUN_PP_BEAMER) < $< > $@
+%.beamer.md.d: %.md
+ $(RUN_PP_BEAMER) -M $< < $< > $@
+
%-text.pdf: %.beamer.md
$(RUN_PANDOC_TEXT) -o $@ $<
@@ -55,9 +59,12 @@ $(P).md: Makefile
%-slides.tex: %.beamer.md .var/SLIDE_THEME
$(RUN_PANDOC_BEAMER) -o $@ $<
-%.revealjs.md: %.md
+%.revealjs.md: %.md# %.revealjs.md.d
$(RUN_PP_REVEALJS) < $< > $@
+%.revealjs.md.d: %.md
+ $(RUN_PP_REVEALJS) -M $< < $< > $@
+
%-reveal.html: %.revealjs.md
$(RUN_PANDOC_REVEALJS) -o $@ $<
diff --git a/slides/images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg b/slides/images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg
new file mode 100644
index 0000000..a22c5ad
--- /dev/null
+++ b/slides/images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg
Binary files differ
diff --git a/slides/images/nodemcu.pgf b/slides/images/nodemcu.pgf
new file mode 100644
index 0000000..3ea9af0
--- /dev/null
+++ b/slides/images/nodemcu.pgf
@@ -0,0 +1,29 @@
+\begin{tikzpicture}
+
+\path
+ (0, 0) node(flash)[draw, rectangle,
+ minimum height=1cm, minimum width=2cm] {Flash}
+
+ (0, 1.5) node(esp8266)[draw, rectangle,
+ minimum height=1cm, minimum width=2cm] {ESP8266}
+
+ (3.5, 1.5) node(cp201x)[draw, rectangle,
+ minimum height=0.75cm, minimum width=1cm]
+ {CP201x}
+
+ (5.5, 1.5) node(usb)[]
+ {USB}
+;
+
+\draw[-] (esp8266) -- node[node font=\footnotesize, right]{QSPI} (flash);
+\draw[-] (esp8266) -- node[node font=\footnotesize, above]{UART} (cp201x) -- (usb);
+
+\node[rectangle, draw, fit=(esp8266) (flash), inner sep=2 mm,
+ label={[name=esp12_label,anchor=south]ESP-12}]
+ (esp12){};
+
+\node[rectangle, draw, thick, fit=(esp12_label) (esp12) (cp201x), inner sep=3 mm,
+ label={[anchor=north]south:NodeMCU}]
+ (nodemcu){};
+
+\end{tikzpicture}
diff --git a/slides/images/qtikz-template.pgs b/slides/images/qtikz-template.pgs
index b05f8ef..6d23d1a 100644
--- a/slides/images/qtikz-template.pgs
+++ b/slides/images/qtikz-template.pgs
@@ -1,12 +1,8 @@
+
\documentclass[preview]{standalone}
\usepackage{blindtext}
\usepackage[utf8]{inputenc}
-
-\usepackage{fontspec}
-\setsansfont{Verdana}
-
\usepackage{tikz}
-
\usetikzlibrary{
angles,
arrows,
@@ -25,9 +21,9 @@
shapes.symbols,
}
+\usepackage{fontspec}
+\setsansfont{Verdana}
\begin{document}
-
<>
-
\end{document}
diff --git a/slides/toc.md b/slides/toc.md
index 9a22105..e01e58b 100644
--- a/slides/toc.md
+++ b/slides/toc.md
@@ -20,6 +20,7 @@
* Details: IP
* Details: IP
* Lecture: ESP8266
+ * NodeMCU hardware
* ESP8266 software layers
* Lecture: MQTT
* MQTT
diff --git a/slides/what-is-iot-reveal.html b/slides/what-is-iot-reveal.html
index a4d8f54..1ad9d7b 100644
--- a/slides/what-is-iot-reveal.html
+++ b/slides/what-is-iot-reveal.html
@@ -287,10 +287,11 @@
</section><section id="details-ip-1" class="slide level2">
<h2>Details: IP</h2>
-<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. </p>
-
</section></section>
-<section><section id="lecture-esp8266" class="title-slide slide level1"><h1>Lecture: ESP8266</h1></section><section id="esp8266-software-layers" class="slide level2">
+<section><section id="lecture-esp8266" class="title-slide slide level1"><h1>Lecture: ESP8266</h1></section><section id="nodemcu-hardware" class="slide level2">
+<h2>NodeMCU hardware</h2>
+
+</section><section id="esp8266-software-layers" class="slide level2">
<h2>ESP8266 software layers</h2>
</section></section>
diff --git a/slides/what-is-iot-slides.pdf b/slides/what-is-iot-slides.pdf
index 9c628d5..6e89140 100644
--- a/slides/what-is-iot-slides.pdf
+++ b/slides/what-is-iot-slides.pdf
Binary files differ
diff --git a/slides/what-is-iot-slides.tex b/slides/what-is-iot-slides.tex
index 29a0c78..f6a35b4 100644
--- a/slides/what-is-iot-slides.tex
+++ b/slides/what-is-iot-slides.tex
@@ -373,6 +373,8 @@ The signaling does not specify any max data rate, very high rates
\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.}
@@ -381,14 +383,150 @@ maximum value is 64k, 65536.}
\begin{frame}{Details: IP}
\protect\hypertarget{details-ip-1}{}
+\begin{center}
+\iffalse
+Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
+\fi
+
+\begin{tikzpicture}[scale=0.30]
+ \sffamily
+ \foreach \x in {0,7,8,15,16,31} % {0,...,32}
+ \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,8,16,32} % {0,...,32}
+ \draw[thick] (\x,20) -- (\x,21);
+ \foreach \x in {0,...,32}
+ \draw[thick] (\x,14) -- (\x,20);
+% \foreach \x in {0,...,32}
+% \draw[thick] (\x,13) -- (\x,14);
+ \node[thick] (bit1) at (-0.6,20.5) {\scriptsize bit};
+% \node[thick] (bit2) at (-0.6,13.5) {\scriptsize bit};
+
+\iffalse
+ \draw [<->, thick] (-0.6, 19.9) -- (-0.6,15.1);
+ \draw [thick] (-1, 20) -- (-0.1,20);
+ \draw [thick] (-1, 15) -- (-0.1,15);
+ \node[fill=white] at (-1.1,17.5) {\tiny 20 bytes};
+\fi
+ \foreach \y/\v in {0,4,8,12,16,20}
+ \node at (-0.6,{19.5-(\v / 4)}) {\scriptsize \v};
+
+ \filldraw[thick,draw=black, fill=white] (0,20) rectangle (4,19); \node (mode) at (2,19.5) {\scriptsize version};
+ \filldraw[thick,draw=black, fill=white] (4,20) rectangle (8,19); \node (mode) at (6,19.5) {\scriptsize len};
+% \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize type of service (TOS)};
+ \draw[thick, draw=black, fill=white] (8,20) rectangle (16,19); \node (stratum) at (11.5,19.5) {\scriptsize TOS};
+ \draw[thick, draw=black, fill=white] (16,20) rectangle (32,19); \node (li) at (24,19.5) {\scriptsize full length of packet};
+ \filldraw[thick,draw=black, fill=white] (0,19) rectangle (16,18); \node (mode) at (8,18.5) {\scriptsize identification};
+% \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node [](li) at (17.5,18.67) {\tiny IP flags}; \node at (16.5,18.25) {\tiny x};\node at (17.5,18.25) {\tiny D};\node at (18.5,18.25) {\tiny M};
+ \draw[thick, draw=black] (16,19) rectangle (19,18); \filldraw[white] (16.5,18.43) rectangle (19,18.88); \node at (16.5,18.5) {\scriptsize X};\node at (17.5,18.5) {\scriptsize D};\node at (18.5,18.5) {\scriptsize M};
+ \draw[thick, draw=black, fill=white] (19,19) rectangle (32,18); \node (li) at (24,18.5) {\scriptsize fragment Offset};
+ \filldraw[thick,draw=black, fill=white] (0,18) rectangle (8,17); \node (mode) at (4,17.5) {\scriptsize time to live (TTL)};
+ \draw[thick, draw=black, fill=white] (8,18) rectangle (16,17); \node (stratum) at (11.5,17.5) {\scriptsize protocol};
+ \draw[thick, draw=black, fill=white] (16,18) rectangle (32,17); \node (li) at (24,17.5) {\scriptsize header checksum};
+ \filldraw[thick,draw=black, fill=white] (0,17) rectangle (32,16); \node (mode) at (16,16.5) {\scriptsize source IP address};
+ \filldraw[thick,draw=black, fill=white] (0,16) rectangle (32,15); \node (mode) at (16,15.5) {\scriptsize destination IP address};
+ \draw[thick,draw=black, fill=white] (0,15) rectangle (31.5,14);
+ \draw[fill=white, draw=white] (31.4,14.96) rectangle (31.6,14.05);
+ \draw[thick] (31.5,14.97) decorate [decoration=saw] { -- (31.5,14.02)};
+ \node (mode) at (16,14.5) {\scriptsize IP options (variable length)};
+\end{tikzpicture}
+
+\end{center}
+
\end{frame}
\hypertarget{lecture-esp8266}{%
\section{Lecture: ESP8266}\label{lecture-esp8266}}
+\begin{frame}{NodeMCU hardware}
+\protect\hypertarget{nodemcu-hardware}{}
+
+\includegraphics{images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg}
+
+\end{frame}
+
+\begin{frame}{NodeMCU hardware}
+\protect\hypertarget{nodemcu-hardware-1}{}
+
+\begin{center}
+\begin{tikzpicture}
+
+\path
+ (0, 0) node(flash)[draw, rectangle,
+ minimum height=1cm, minimum width=2cm] {Flash}
+
+ (0, 1.5) node(esp8266)[draw, rectangle,
+ minimum height=1cm, minimum width=2cm] {ESP8266}
+
+ (3.5, 1.5) node(cp201x)[draw, rectangle,
+ minimum height=0.75cm, minimum width=1cm]
+ {CP201x}
+
+ (5.5, 1.5) node(usb)[]
+ {USB}
+;
+
+\draw[-] (esp8266) -- node[node font=\footnotesize, right]{QSPI} (flash);
+\draw[-] (esp8266) -- node[node font=\footnotesize, above]{UART} (cp201x) -- (usb);
+
+\node[rectangle, draw, fit=(esp8266) (flash), inner sep=2 mm,
+ label={[name=esp12_label,anchor=south]ESP-12}]
+ (esp12){};
+
+\node[rectangle, draw, thick, fit=(esp12_label) (esp12) (cp201x), inner sep=3 mm,
+ label={[anchor=north]south:NodeMCU}]
+ (nodemcu){};
+
+\end{tikzpicture}
+
+\end{center}
+
+\end{frame}
+
\begin{frame}{ESP8266 software layers}
\protect\hypertarget{esp8266-software-layers}{}
+\begin{center}
+\begin{tikzpicture}
+
+\node (rect_hw) [rectangle, draw, anchor=south west,
+ minimum width=6 cm, minimum height=1 cm,
+ label={[anchor=south]center:ESP8266 Hardware}] at (0, 0) {};
+
+\draw[thick] (-0.5, 1.25) -- (6.5, 1.25) ;
+
+\node [rectangle, draw, anchor=south west,
+ minimum width=4 cm, minimum height=1 cm,
+ label={[anchor=south]center:ESP SDK}] at (0, 1.5) {};
+
+\node [rectangle, draw, anchor=south west,
+ minimum width=2 cm, minimum height=1 cm,
+ label={[align=center, text width=1cm]center:GCC libc}] at (4, 1.5) {};
+
+\node [rectangle, draw, anchor=south west,
+ minimum width=6 cm, minimum height=1 cm,
+ label={[anchor=south]center:ESP interface}] at (0, 2.5) {};
+
+\node [rectangle, draw, anchor=south west,
+ minimum width=2 cm, minimum height=1 cm,
+ label={[align=center, text width= 2cm]center:Generic Arduino}] at (0, 3.5) {};
+
+\node [rectangle, draw, anchor=south west,
+ minimum width=2 cm, minimum height=1 cm,
+ label={[align=center, text width= 2cm]center:Ethernet}] at (2, 3.5) {};
+
+\node [rectangle, draw, anchor=south west,
+ minimum width=2 cm, minimum height=1 cm,
+ label={[align=center, text width= 2cm]center:ESP APIs}] at (4, 3.5) {};
+
+\draw [decorate, decoration={brace,amplitude=5pt, raise=-4pt}] (-0.5,2.5) -- (-0.5,4.5) node [black,midway,rotate=90, above] {Arduino};
+
+
+\end{tikzpicture}
+
+\end{center}
+
\end{frame}
\hypertarget{lecture-mqtt}{%
diff --git a/slides/what-is-iot-text.pdf b/slides/what-is-iot-text.pdf
index d78ac6a..8270d3e 100644
--- a/slides/what-is-iot-text.pdf
+++ b/slides/what-is-iot-text.pdf
Binary files differ
diff --git a/slides/what-is-iot.md b/slides/what-is-iot.md
index 984dfb4..341e4d4 100644
--- a/slides/what-is-iot.md
+++ b/slides/what-is-iot.md
@@ -247,7 +247,11 @@ Note that the "total length" field is 16 bits, 2 bytes, it's maximum value is 64
## Details: IP
-!ifndef(QUICK)(!include(images/IP-Header_eng.tex))
+!ifndef(QUICK)(
+\begin{center}
+!include(images/IP-Header_eng.tex)
+\end{center}
+)
!comment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -258,9 +262,27 @@ Note that the "total length" field is 16 bits, 2 bytes, it's maximum value is 64
!comment(aka NodeMCU aka ESP-12)
+## NodeMCU hardware
+
+!ifndef(QUICK)(
+![](images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg)
+)
+
+## NodeMCU hardware
+
+!ifndef(QUICK)(
+\begin{center}
+!include(images/nodemcu.pgf)
+\end{center}
+)
+
## ESP8266 software layers
-!ifndef(QUICK)(!include(images/esp+arduino-sdks.pgf))
+!ifndef(QUICK)(
+\begin{center}
+!include(images/esp+arduino-sdks.pgf)
+\end{center}
+)
# Lecture: MQTT