diff options
Diffstat (limited to 'slides')
-rw-r--r-- | slides/Makefile | 15 | ||||
-rw-r--r-- | slides/images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg | bin | 0 -> 149531 bytes | |||
-rw-r--r-- | slides/images/nodemcu.pgf | 29 | ||||
-rw-r--r-- | slides/images/qtikz-template.pgs | 10 | ||||
-rw-r--r-- | slides/toc.md | 1 | ||||
-rw-r--r-- | slides/what-is-iot-reveal.html | 7 | ||||
-rw-r--r-- | slides/what-is-iot-slides.pdf | bin | 70985 -> 221761 bytes | |||
-rw-r--r-- | slides/what-is-iot-slides.tex | 138 | ||||
-rw-r--r-- | slides/what-is-iot-text.pdf | bin | 84649 -> 87314 bytes | |||
-rw-r--r-- | slides/what-is-iot.md | 26 |
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 Binary files differnew file mode 100644 index 0000000..a22c5ad --- /dev/null +++ b/slides/images/NodeMCU-–-Board-de-desarrollo-con-módulo-ESP8266-WiFi-y-Lua-4.jpg 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 Binary files differindex 9c628d5..6e89140 100644 --- a/slides/what-is-iot-slides.pdf +++ b/slides/what-is-iot-slides.pdf 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 Binary files differindex d78ac6a..8270d3e 100644 --- a/slides/what-is-iot-text.pdf +++ b/slides/what-is-iot-text.pdf 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 |