I’m building a weather station on basis of an Arduino, the Sparkfun WeatherShield and some servos to build fake analogue scales. Part II talks about the hardware. Part III talks about the arduino code.

This is the LaTeX code for the scales:

Temperatur

Temperatur

\documentclass[titlepage,a4paper,11pt]{article}
\usepackage{xcolor}
\usepackage{tikz}
\usetikzlibrary{scopes}
\usepackage{oldgerm}

\begin{document}

\def\iR{2.1cm}%
\def\oR{3.0cm}%

%--------------- Temperatur---------------------
\begin{figure}
\centering
\begin{tikzpicture}

\draw (-3cm,-2cm) rectangle (3cm,6cm);
\foreach \angle in {40,40.5,...,60} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}
\foreach \angle in {60,60.5,...,65} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {65,65.5,...,70} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {75,75.5,...,95} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=green, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=green, ultra thick] ;
	}
\foreach \angle in {95,95.5,...,105} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {105,105.5,...,115} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {115,115.5,...,140} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}

\foreach \angle in {40,41,...,140}
	\draw(\angle:(\oR - 0.5cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, ultra thin] ;

\foreach \angle in {40,45,...,140}
	\draw(\angle:(\iR + 0.1cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, thin] ;

\foreach \angle in {40,50,...,140}
	\draw(\angle:(\iR) --(\angle:(\oR) [fill=none, draw=black, thick] ;

\draw [black,thick,domain=40:140] plot ( { (\iR)*cos(\x) }, { (\iR)*sin(\x) } );
\draw [black,domain=40:140] plot ( { (\iR + 0.1cm)*cos(\x) }, { (\iR + 0.1cm)*sin(\x) } );


\draw [black,domain=40:140] plot ( { (\oR - 0.1cm)*cos(\x) }, { (\oR - 0.1cm)*sin(\x) } );
\draw [black,thick,domain=40:140] plot ( { (\oR)*cos(\x) }, { (\oR)*sin(\x) } );

\draw [lightgray, ultra thin] (0,0) circle (0.5cm) {};
\draw [black, thick] (0,0) circle (0.01cm) {};

{[rotate=90] \draw(0:(\iR - 1.0cm)node {\Large $^{\circ}$\frakfamily{C}};}
{[rotate=90] \draw(0:(\oR + 1.0cm)node {\huge {\frakfamily Temperatur}};}

{[rotate=40] \draw(0:(\oR + 0.3cm)node {\frakfamily -20};}
{[rotate=50] \draw(0:(\oR + 0.3cm)node {\frakfamily -10};}
{[rotate=60] \draw(0:(\oR + 0.3cm)node {\frakfamily 0};}
{[rotate=70] \draw(0:(\oR + 0.3cm)node {\frakfamily 10};}
{[rotate=80] \draw(0:(\oR + 0.3cm)node {\frakfamily 20};}
{[rotate=90] \draw(0:(\oR + 0.3cm)node {\frakfamily 30};}
{[rotate=100] \draw(0:(\oR + 0.3cm)node {\frakfamily 40};}
{[rotate=110] \draw(0:(\oR + 0.3cm)node {\frakfamily 50};}
{[rotate=120] \draw(0:(\oR + 0.3cm)node {\frakfamily 60};}
{[rotate=130] \draw(0:(\oR + 0.3 cm)node {\frakfamily 70};}
{[rotate=140] \draw(0:(\oR + 0.3 cm)node {\frakfamily 80};}

\end{tikzpicture}
\caption{6cm x 8cm}
\end{figure}

%--------------- Luftfeuchtigkeit---------------------
\begin{figure}
\centering
\begin{tikzpicture}
\draw (-3.25cm,-2cm) rectangle (3.25cm,6cm);

\foreach \angle in {40,40.5,...,50} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}
\foreach \angle in {50,50.5,...,65} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {65,65.5,...,70} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {70,70.5,...,125} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=green, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=green, ultra thick] ;
	}
\foreach \angle in {125,125.5,...,130} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {130,130.5,...,135} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {135,135.5,...,140} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}

\foreach \angle in {40,41,...,140}
	\draw(\angle:(\oR - 0.5cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, ultra thin] ;

\foreach \angle in {40,45,...,140}
	\draw(\angle:(\iR + 0.1cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, thin] ;

\foreach \angle in {40,50,...,140}
	\draw(\angle:(\iR) --(\angle:(\oR) [fill=none, draw=black, thick] ;

\draw [black,thick,domain=40:140] plot ( { (\iR)*cos(\x) }, { (\iR)*sin(\x) } );
\draw [black,domain=40:140] plot ( { (\iR + 0.1cm)*cos(\x) }, { (\iR + 0.1cm)*sin(\x) } );


\draw [black,domain=40:140] plot ( { (\oR - 0.1cm)*cos(\x) }, { (\oR - 0.1cm)*sin(\x) } );
\draw [black,thick,domain=40:140] plot ( { (\oR)*cos(\x) }, { (\oR)*sin(\x) } );

\draw [lightgray, ultra thin] (0,0) circle (0.5cm) {};
\draw [black, thick] (0,0) circle (0.01cm) {};

{[rotate=90] \draw(0:(\iR - 1.0cm)node {\Large \frakfamily{\%}};}
{[rotate=90] \draw(0:(\oR + 1.0cm)node {\Huge {\frakfamily rel.~Luftfeuchtigkeit}};}

{[rotate=40] \draw(0:(\oR + 0.3cm)node {\frakfamily 0};}
{[rotate=50] \draw(0:(\oR + 0.3cm)node {\frakfamily 10};}
{[rotate=60] \draw(0:(\oR + 0.3cm)node {\frakfamily 20};}
{[rotate=70] \draw(0:(\oR + 0.3cm)node {\frakfamily 30};}
{[rotate=80] \draw(0:(\oR + 0.3cm)node {\frakfamily 40};}
{[rotate=90] \draw(0:(\oR + 0.3cm)node {\frakfamily 50};}
{[rotate=100] \draw(0:(\oR + 0.3cm)node {\frakfamily 60};}
{[rotate=110] \draw(0:(\oR + 0.3cm)node {\frakfamily 70};}
{[rotate=120] \draw(0:(\oR + 0.3cm)node {\frakfamily 80};}
{[rotate=130] \draw(0:(\oR + 0.3 cm)node {\frakfamily 90};}
{[rotate=140] \draw(0:(\oR + 0.3 cm)node {\frakfamily 100};}

\end{tikzpicture}
\caption{6.5cm x 8cm}
\end{figure}

%--------------- Luftdruck---------------------
\begin{figure}
\centering
\begin{tikzpicture}
\draw (-3cm,-2cm) rectangle (3cm,6cm);

\foreach \angle in {40,40.5,...,50} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}
\foreach \angle in {50,50.5,...,65} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {65,65.5,...,70} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {70,70.5,...,125} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=green, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=green, ultra thick] ;
	}
\foreach \angle in {125,125.5,...,130} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {130,130.5,...,135} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {135,135.5,...,140} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}

\foreach \angle in {40,41,...,140}
	\draw(\angle:(\oR - 0.5cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, ultra thin] ;

\foreach \angle in {40,45,...,140}
	\draw(\angle:(\iR + 0.1cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, thin] ;

\foreach \angle in {40,50,...,140}
	\draw(\angle:(\iR) --(\angle:(\oR) [fill=none, draw=black, thick] ;

\draw [black,thick,domain=40:140] plot ( { (\iR)*cos(\x) }, { (\iR)*sin(\x) } );
\draw [black,domain=40:140] plot ( { (\iR + 0.1cm)*cos(\x) }, { (\iR + 0.1cm)*sin(\x) } );


\draw [black,domain=40:140] plot ( { (\oR - 0.1cm)*cos(\x) }, { (\oR - 0.1cm)*sin(\x) } );
\draw [black,thick,domain=40:140] plot ( { (\oR)*cos(\x) }, { (\oR)*sin(\x) } );

\draw [lightgray, ultra thin] (0,0) circle (0.5cm) {};
\draw [black, thick] (0,0) circle (0.01cm) {};

{[rotate=90] \draw(0:(\iR - 1.0cm)node {\Large \frakfamily{hPa}};}
{[rotate=90] \draw(0:(\oR + 1.0cm)node {\Huge {\frakfamily Luftdruck}};}

{[rotate=40] \draw(0:(\oR + 0.3cm)node {\frakfamily 950};}
{[rotate=50] \draw(0:(\oR + 0.3cm)node {\frakfamily 960};}
{[rotate=60] \draw(0:(\oR + 0.3cm)node {\frakfamily 970};}
{[rotate=70] \draw(0:(\oR + 0.3cm)node {\frakfamily 980};}
{[rotate=80] \draw(0:(\oR + 0.3cm)node {\frakfamily 990};}
{[rotate=90] \draw(0:(\oR + 0.3cm)node {\frakfamily 1000};}
{[rotate=100] \draw(0:(\oR + 0.3cm)node {\frakfamily 1010};}
{[rotate=110] \draw(0:(\oR + 0.3cm)node {\frakfamily 1020};}
{[rotate=120] \draw(0:(\oR + 0.3cm)node {\frakfamily 1030};}
{[rotate=130] \draw(0:(\oR + 0.3 cm)node {\frakfamily 1040};}
{[rotate=140] \draw(0:(\oR + 0.3 cm)node {\frakfamily 1050};}

\end{tikzpicture}
\caption{6cm x 8cm}
\end{figure}

%--------------- Helligkeit---------------------

\begin{figure}
\centering
\begin{tikzpicture}
\draw (-3.25cm,-2cm) rectangle (3.25cm,6cm);

\foreach \angle in {40,40.5,...,50} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}
\foreach \angle in {50,50.5,...,65} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {65,65.5,...,70} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {70,70.5,...,125} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=green, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=green, ultra thick] ;
	}
\foreach \angle in {125,125.5,...,130} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.1cm) [draw=yellow, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=yellow, ultra thick] ;
	}
\foreach \angle in {130,130.5,...,135} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.2cm) [draw=orange, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=orange, ultra thick] ;
	}
\foreach \angle in {135,135.5,...,140} {
	\draw(\angle:(\oR) --(\angle:(\oR - 0.3cm) [draw=red, ultra thick] ;
	\draw(\angle:(\iR) --(\angle:(\iR + 0.1cm) [draw=red, ultra thick] ;
	}

\foreach \angle in {40,41,...,140}
	\draw(\angle:(\oR - 0.5cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, ultra thin] ;

\foreach \angle in {40,45,...,140}
	\draw(\angle:(\iR + 0.1cm) --(\angle:(\oR - 0.1cm) [fill=none, draw=black, thin] ;

\foreach \angle in {40,50,...,140}
	\draw(\angle:(\iR) --(\angle:(\oR) [fill=none, draw=black, thick] ;

\draw [black,thick,domain=40:140] plot ( { (\iR)*cos(\x) }, { (\iR)*sin(\x) } );
\draw [black,domain=40:140] plot ( { (\iR + 0.1cm)*cos(\x) }, { (\iR + 0.1cm)*sin(\x) } );


\draw [black,domain=40:140] plot ( { (\oR - 0.1cm)*cos(\x) }, { (\oR - 0.1cm)*sin(\x) } );
\draw [black,thick,domain=40:140] plot ( { (\oR)*cos(\x) }, { (\oR)*sin(\x) } );

\draw [lightgray, ultra thin] (0,0) circle (0.5cm) {};
\draw [black, thick] (0,0) circle (0.01cm) {};

{[rotate=90] \draw(0:(\iR - 1.0cm)node {\Large \frakfamily{Lux}};}
{[rotate=90] \draw(0:(\oR + 1.0cm)node {\Huge {\frakfamily Helligkeit}};}

{[rotate=40] \draw(0:(\oR + 0.3cm)node {\frakfamily 0};}
{[rotate=50] \draw(0:(\oR + 0.3cm)node {\frakfamily 10};}
{[rotate=60] \draw(0:(\oR + 0.3cm)node {\frakfamily 20};}
{[rotate=70] \draw(0:(\oR + 0.3cm)node {\frakfamily 30};}
{[rotate=80] \draw(0:(\oR + 0.3cm)node {\frakfamily 40};}
{[rotate=90] \draw(0:(\oR + 0.3cm)node {\frakfamily 50};}
{[rotate=100] \draw(0:(\oR + 0.3cm)node {\frakfamily 60};}
{[rotate=110] \draw(0:(\oR + 0.3cm)node {\frakfamily 70};}
{[rotate=120] \draw(0:(\oR + 0.3cm)node {\frakfamily 80};}
{[rotate=130] \draw(0:(\oR + 0.3 cm)node {\frakfamily 90};}
{[rotate=140] \draw(0:(\oR + 0.3 cm)node {\frakfamily 100};}

\end{tikzpicture}
\caption{6.5cm x 8cm}
\end{figure}
\end{document}