\section{Netzwerkkonfiguration des Raspberry Pi}
Die Netzwerkkonfiguration des Projektes birgt zwei Herausforderungen:
\begin{enumerate}
    \item Erreichbarkeit der gewonnenen Daten, beziehungsweise Steuerung der Aktoren über das Hochschulnetzwerk
    \item Kommunikation der selbstgebauten Sensoren mit der Gateway über WLAN
\end{enumerate}
Die Erreichbarkeit der Daten wird sichergestellt, indem der Raspberry Pi dauerhaft über LAN an das Hochschulnetz angeschlossen ist. Zudem benötigt er eine bekannte statische IP-Adresse um auf die Daten zugreifen zu können.
Die statische IP-Adresse wird eingestellt, indem die Datei \inline{/etc/dhcpcd.conf} folgender Abschnitt für den LAN-Adapter eingefügt wird:
\label{staticIP}
\lstinputlisting[firstline=1, lastline=16]{code/dhcpcd.tex}
Um die später beschriebenen selbstgebauten Sensoren über WLAN mit dem Gateway kommunizieren zu lassen, wurde zunächst versucht, das Hochschulnetzwerk \textit{Eduroam} zu werenden. 
Da dieses jedoch die Sicherheitskonfiguration WPA2 Enterprise nutzt und dieses auf dem benutzten Mikrocontroller \textit{ESP8266} nicht unterstützt wird, muss ein alternatives WLAN-Netzwerk genutzt werden. 
Als Lösung wurde die Funktionalität des Raspberry Pis genutzt, als WLAN-Accesspoint zu dienen. 
Der Raspberry Pi, der per LAN mit dem Hochschulnetzwerk verbunden ist, spannt somit ein unabhängiges, lokales WLAN-Netzwerk auf, welches die WPA2-PSK Verschlüsselung benutzt, die auch von dem ESP8266 unterstützt wird.


\subsection{Raspberry Pi als Accesspoint}
Realisiert wird der Accesspiont durch das Softwarepaket \textit{hostapd}, welches durch folgendes Kommando installiert wird:
\begin{lstlisting}[language=bash]
sudo apt install hostapd
\end{lstlisting}
Danach wird hostapd für die Konfigurationsphase deaktiviert:
\begin{lstlisting}
sudo systemctl stop hostapd
\end{lstlisting}


\subsection{Raspberry Pi als Server}
Da das Netzwerk als Server agieren soll, wird dem Raspberry Pi eine statische IP-Adresse zugewiesen. Dazu wird in der Datei \inline{/etc/dhcpcd.conf} der WLAN-Adapter \inline{wlan0} folgendermaßen konfiguriert:
\lstinputlisting[firstline=18, lastline=29]{code/dhcpcd.tex}
Um die Änderungen zu übernehmen wird der dhcp daemon neu gestartet: 
\begin{lstlisting}
sudo service dhcpcd restart
\end{lstlisting}


\subsection{DHCP Server Konfigurieren}
Damit die Verbindung des ESP8266 mit dem Raspberry Pi unkompliziert abläuft wird ein DHCP Server eingerichtet.
Dazu wird folgende Konfiguration in die Datei \inline{/etc/dnsmasq.conf} geschrieben:
\begin{lstlisting}
interface=wlan0
dhcp-range=192.168.252.2,192.168.252.20,255.255.255.0,24h
\end{lstlisting}
Somit werden IP-Adressen für die Microkontroller automatisch vergeben.\\
Anschließend startet man den DHCP Server erneut: \inline{sudo systemctl reload dnsmasq}.


\subsection{Accesspoint Konfigurieren}
Zur Konfiguraiton des Accesspoints wird die Datei \inline{/etc/hostapd/hostapd.conf} beschrieben.\\
Wichtig dabei ist eine geeignete SSID und ein geeignetes Passwort für das Netzwerk.
\lstinputlisting{code/hostapd.tex}
Erkennbar ist die SSID \inline{smartroom} und das Passwort \inline{smarthome}.
Anschließend muss der Accesspoint Software noch die Konfigurationsdatei in der Datei\\
\inline{/etc/default/hostapd} bekannt gemacht werden:
\begin{lstlisting}
DAEMON_CONF="/etc/hostapd/hostapd.conf"
\end{lstlisting}


\subsection{Starten des Accesspoints}
Nun muss nur der Accesspoint gestartet werden und die Netzwerkkonfiguration ist abgeschlossen.
\begin{lstlisting}
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
\end{lstlisting}
