Archived
1
0
Fork 0

Durchgehende überarbeitung

v.a. Glossar und Software
This commit is contained in:
Findus23 2015-01-05 19:03:21 +01:00
parent d6ae639fd2
commit 3f4f9d3f27
14 changed files with 123 additions and 37 deletions

2
auswertung.tex Normal file
View file

@ -0,0 +1,2 @@
\chapter{Auswertung}
\label{cha:Auswertung}

BIN
figures/anschluss/1_1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
figures/anschluss/1_2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
figures/anschluss/1_3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
figures/platine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 KiB

BIN
figures/streifenplatine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View file

@ -123,9 +123,45 @@
description={ein vollständiges Computersystem, welches auf einer einzelnen Platine zusammengefasst ist}
}
\newglossaryentry{a}
\newglossaryentry{LC-Display}
{
name=Einplatinencomputer,
description={ein vollständiges Computersystem, welches auf einer einzelnen Platine zusammengefasst ist}
name=LC-Display,
description={\emph{liquid crystal display}\newline Flüssigkristallbildschirm}
}
\newglossaryentry{Platine}
{
name=Platine,
description={auch genannt Leiterplatte\newline
ein Träger für elektrische Bauteile\newline
\includegraphics[width=4cm]{figures/platine.png}\footcite{platine}
}
}
\newglossaryentry{Streifenplatine}
{
name=Streifenplatine,
description={eine \gls{Platine}, bei der die Kontakte streifenförmig miteinander verbunden sind.\newline
\includegraphics[width=4cm]{figures/streifenplatine.png}\footcite{streifenplatine}
}
}
\newglossaryentry{LED}
{
name=LED,
description={\emph{light-emitting diode}\newline Licht abgebende Diode}
}
\newglossaryentry{Geraetedatei}
{
name=Gerätedatei,
description={eines der grundlegenden Prinzipien von diversen Linux-Betriebssystemen ist \emph{Everything is a file}.\newline
Daher können auf Festplatten, Schnittstellen und Informationen über das System einfach über das Auslesen von Dateien zugegriffen werden.
}
}
\newglossaryentry{Standardabweichung}
{
name=Standardabweichung,
description={ein Maß für die Streuung der Werte}
}

View file

@ -56,7 +56,7 @@ Mithilfe von 4 Sensoren des Typs \emph{DS18B20} werden die Innentemperatur, die
Der Sensor wird mithilfe von einem \gls{1-Wire}-\gls{Bus} ausgelesen. Hierbei benötigt man (außer für die Stromversorgung mit \SI{5}{\gls{Volt}} nur ein Kabel, auf dem die Daten übertragen werden.\footcite{1-wire} Zusätzlich wird ein \SI{4.7}{\kilo\glslink{Ohm}{\ohm}} Widerstand zwischen dem Pin für Daten und dem Pin für \SI[retain-explicit-plus]{+5}{\glslink{Volt}{\volt}} benötigt. (siehe Abbildung \ref{fig:temp_pin})
Ein weiterer Vorteil von 1-Wire ist, dass nahezu beliebig viele Sensoren auf einem Datenkabel parallel geschaltet werden können.
Die Messdaten des \emph{DS18B20} können auf dem Raspberry Pi sehr einfach ausgelesen werden, weil dies von einem Linux-\gls{Kernelmodul} erledigt wird. Um die Temperatur zu erhalten, muss nur eine virtuelle Datei ausgelesen werden, welche das Messergebnis in tausendstel Grad Celsius enthält. (Siehe Abbildung \ref{fig:temp_screenshot})
Die Messdaten des \emph{DS18B20} können auf dem Raspberry Pi sehr einfach ausgelesen werden, weil dies von einem Linux-\gls{Kernelmodul} erledigt wird. Um die Temperatur zu erhalten, muss nur eine \gls{Geraetedatei} ausgelesen werden, welche das Messergebnis in tausendstel Grad Celsius enthält. (Siehe Abbildung \ref{fig:temp_screenshot})
\begin{figure}[h]
\centering
@ -106,7 +106,7 @@ Da der \emph{VOLTCRAFT CO-20} jedoch nicht mehr erhältlich ist, verwende ich de
\label{fig:velux}
\end{figure}
Der Sensor wird über USB an den Raspberry Pi angeschlossen. Um die Daten unter Linux auszulesen, wird das Programm \emph{usb-sensors-linux} verwendet.\footcite{usb-sensors-linux}
Der Sensor wird über USB an den Raspberry Pi angeschlossen. Um die Daten unter Linux auszulesen, wird das Programm \emph{usb-sensors-linux}\footcite{usb-sensors-linux} verwendet.
\section{Display}
\label{sec:Display}
@ -114,15 +114,35 @@ Der Sensor wird über USB an den Raspberry Pi angeschlossen. Um die Daten unter
\begin{figure}[h]
\centering
\includegraphics[width=0.9\textwidth]{figures/erstes_display.jpg}
\caption{Erstes Display (eigenes Werk)}
\caption{Das erste Display (eigenes Werk)}
\label{fig:erstes_display}
\end{figure}
Damit nicht immer ein Computer benötigt wird, um die aktuellen Messwerte zu erfahren, verwende ich ein Display, welches diese anzeigt. Ursprünglich habe ich ein 16x2 Zeichen Display von \emph{Conrad Electronic} verwendet.\footcite{conrad_datenblatt}
Dieses wird nach der Anleitung von \emph{www.schnatterente.net}\footcite{schnatterente} angeschlossen.
Damit nicht immer ein Computer benötigt wird, um die aktuellen Messwerte zu erfahren, verwende ich ein Display, welches diese anzeigt. Ursprünglich habe ich ein 16x2 Zeichen \gls{LC-Display} von \emph{Conrad Electronic} verwendet.\footcite{conrad_datenblatt}
Dieses wird nach der Anleitung von \emph{schnatterente.net}\footcite{schnatterente} angeschlossen.
Da jedoch fix angelötete Kabel unflexibel sind, bin ich auf ein Display von \emph{Pollin.de}\footcite{display_pollin} umgestiegen, welches mit einer Steckverbindung angeschlossen wird.
\section{Anschluss}
\label{sec:Anschluss}
\todo[inline]{Kapitel über Gehäuse, Platinen, Zusammenbau}
Anfangs wurde sämtliche Hardware auf einem \gls{Steckbrett} aufgesteckt und mit einzelnen Kabeln verbunden. Dies ist sehr praktisch für schnelle Versuche und häufige Änderungen, ist aber sehr unstabil und nicht transportabel.
\begin{figure}[h]
\begin{minipage}[b]{0.33\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/anschluss/1_1.jpg}
\caption{\emph{DS18B20} (\ref{subsec:Temperatur})}
\end{minipage}\hfill
\begin{minipage}[b]{0.33\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/anschluss/1_2.jpg}
\caption{Steckbrett mit Display (\ref{sec:Display})}
\end{minipage}\hfill
\begin{minipage}[b]{0.33\textwidth}
\centering
\includegraphics[width=\textwidth]{figures/anschluss/1_3.jpg}
\caption{erste mehrwöchige Messung}
\end{minipage}
\end{figure}

BIN
main.pdf

Binary file not shown.

View file

@ -96,7 +96,7 @@
%% e.g., "" (empty), "disable", ...
%% Options for the todonotes-package. If "disable", all todonotes will
%% be hidden (including listoftodos).
\RequirePackage[l2tabu, orthodox]{nag} %% EIGENE ÄNDERUNG
%% Load main settings for document preamble:
\input{template/preamble}%% DO NOT REMOVE THIS LINE!
@ -309,6 +309,7 @@
\include{hardware}
\include{software}
\include{auswertung}
\appendix %% closes main document, appendix follows until end; only available in book-classes
%\addpart*{Anhang} %% adding Appendix to tableofcontents
\include{weitere_informationen}

View file

@ -1,4 +1,5 @@
\chapter{Präsentationen}
\label{anhang:präsentationen}
Während ich am Projekt arbeitete, hatte ich mehrmals die Möglichkeit es anderen vorzustellen.
So konnte ich zum Beispiel am 23. April 2014 bei den \textsf{EDU|days}\footnote{\href{http://www.edudays.at/index.php/programm2014}{www.edudays.at/index.php/programm2014}} den \emph{Raspberry Pi -- Anfänger/innen Workshop} von meinem Klassenvorstand \emph{MMag. Rene Schwarzinger} begleiten und dort den aktuellen Zwischenstand präsentieren.

View file

@ -60,8 +60,8 @@
@Online{rasp_bild,
Title = {Rev. 2 des Raspberry Pi Model B - made in UK},
Author = {Philipp Bohk},
Url = {https://commons.wikimedia.org/wiki/File%3aLambdaPlaques.jpg},
Year = {2012},
Date = {2012-09-04},
Url = {http://commons.wikimedia.org/wiki/File:RaspberryPiModelBRev2.by.Philipp.Bohk.jpg},
Urldate = {2014-07-04},
File = {:home/lukas/VWA/figures/raspberry.jpg:JPG image}
@ -191,6 +191,30 @@
Timestamp = {2014.12.13}
}
@Online{streifenplatine,
Title = {Veroboard sample},
Author = {Tfitzp},
Date = {2013-08-22},
Url = {http://commons.wikimedia.org/wiki/File:VEROBOARD_sample.jpg},
Urldate = {2015-01-05},
File = {:figures/streifenplatine.jpg:JPG image;:figures/streifenplatine.png:PNG image},
Owner = {lukas},
Timestamp = {2015.01.05}
}
@Online{platine,
Title = {gold plated printed circuit board},
Author = {Ulfbastel},
Date = {2007-08-22},
Url = {http://commons.wikimedia.org/wiki/File:Aupcb.jpg},
Urldate = {2015-01-05},
File = {:figures/streifenplatine.jpg:JPG image;:figures/streifenplatine.png:PNG image},
Owner = {lukas},
Timestamp = {2015.01.05}
}
@Online{usb-sensors-linux,
Title = {Install AirSensor on Linux},
Author = {usb-sensors-linux},

View file

@ -1,22 +1,22 @@
\chapter{Software}
Die Software, die verwendet wird, teilt sich in (?\todo{Anzahl hinzufügen}) Teile auf:
Die Software, die verwendet wird, teilt sich in 5 Teile auf:
\begin{itemize}
\item Auslesen der Sensoren, Aufbereiten der Daten und allgemeine Steuerung (main.sh)
\item Steuern des Displays
\item Endauswertung
\item Webinterface
\item Webinterface (Livedaten, grafische Darstellung und Informationen)
\item mathematische Endauswertung
\item sonstiges
\end{itemize}
\section{main.sh}
\label{sec:main.sh}
Das wichtigste Programm ist das \gls{Bash}-Script \textit{main.sh}. Mithilfe eines solchen können Programme gesteuert und ihre Ausgaben verarbeitet werden. Dieses Script kümmert sich um die Aufzeichnung und Speicherung der Daten und die Steuerung der anderen Programme.
Das wichtigste Programm ist das \gls{Bash}-Script \textit{main.sh}. Mithilfe eines solchen können Programme gesteuert und ihre Ausgaben verarbeitet werden. Dieses Script kümmert sich um die Aufzeichnung, erste Verarbeitung und Speicherung der Daten und die Steuerung der anderen Programme.
\subsection{Allgemeines}
\label{subsec:main.sh/allgemeines}
Zunächst werden die Pins angegeben, an denen die LEDs angeschlossen sind. In den Zeilen 11-13 wird nun die grüne LED eingeschaltet, um zu zeigen, dass das Programm läuft.
Zunächst werden die Pins angegeben, an denen die \gls{LED}s angeschlossen sind. In den Zeilen 11-13 wird nun die grüne \gls{LED} eingeschaltet, um zu zeigen, dass das Programm läuft.
\code{main.sh}{bash}{8}{13}
Nun startet das eigentliche Programm. Alles, was nun folgt wird wiederholt, bis die Aufzeichnung beendet wird.
@ -30,9 +30,9 @@ In den folgenden drei Zeilen wird der aktuelle Zeitpunkt in drei verschiedenen F
\hline
\%Y/\%m/\%d\ \%H:\%M:\%S & 2014/11/23 16:47:50 & Format zum Abspeichern in \gls{CSV} \\
\hline
\%d.\%m\ \%H:\%M:\%S & 23.11 16:47:50 & einfach lesbares Format für Display \\
\%d.\%m\ \%H:\%M:\%S & 23.11 16:47:50 & einfach lesbares Format für das Display \\
\hline
\%d.\%m.\%y\ \%H:\%M:\%S & 23.11.2014 16:47:50 & einfaches, exaktes Format für Webinterface \\
\%d.\%m.\%y\ \%H:\%M:\%S & 23.11.2014 16:47:50 & einfaches, exaktes Format für das Webinterface \\
\end{tabulary}
\caption{Datumsformate}
\end{table}
@ -42,7 +42,7 @@ In den folgenden drei Zeilen wird der aktuelle Zeitpunkt in drei verschiedenen F
\subsection{Messung}
\label{subsec:main.sh/messung}
Als erstes werden die Sensoren ausgelesen. Am einfachsten kann mit dem im Raspberry Pi integrierten Thermometer die \gls{CPU}-Temperatur ausgelesen werden:
Als erstes werden die Sensoren ausgelesen. Am einfachsten kann mit dem im Raspberry Pi integrierten Thermometer die \gls{CPU}-Temperatur ausgelesen werden. Hierzu muss\todo{müssen?} nur eine \gls{Geraetedatei} geöffnet und daraus die Zeichen 6-9 gelesen werden:
\codeline{main.sh}{bash}{32}
Nur wenig aufwändiger sind die Temperatursensoren (\emph{DS18B20}, siehe \ref{subsec:Temperatur}). Da die Sensoren manchmal ungültige Werte zurückgeben, wird nach der ersten Messung überprüft, ob dies der Fall ist (Zeile 34) und die Messung solange wiederholt, bis eine gültige Messung erfolgt.
@ -54,18 +54,18 @@ Dadurch kann die Ausgabe einfach aufgetrennt werden:
\code{main.sh}{bash}{66}{69}
Auch hier wird bei ungültigen Messwerten mehrmals gemessen.
\emph{usb-sensors-linux}\footcite{usb-sensors-linux} gibt direkt den relativen Wert für die Luftqualität zurück, der nicht weiterbearbeitet werden muss.
Der relative Wert für die Luftqualität wird direkt von \emph{usb-sensors-linux}\footcite{usb-sensors-linux} zurückgegeben und muss daher nicht weiterbearbeitet werden.
\codeline{main.sh}{bash}{84}
\subsection{Speichern, Aufbereiten und Verarbeiten}
Nachdem alle Sensoren ausgelesen und die Messwerte in Variablen gespeichert wurden, müssen sie dauerhaft gespeichert werden. Hierzu werden alle Werte durch ein Komma getrennt und als neue Zeile an die bisherigen Messungen angehängt.
Nachdem alle Sensoren ausgelesen wurden, müssen sie dauerhaft gespeichert werden. Hierzu werden alle Werte durch ein Komma getrennt und als neue Zeile an die bisherigen Messungen angehängt.
\code{main.sh}{bash}{89}{90}
Hierdurch entsteht eine \gls{CSV}-Datei die wie folgt aussehen kann.
Hierdurch entsteht eine \gls{CSV}-Datei die wie folgt aussehen kann:
\dateiklein{dygraphs.csv}
Diese Datei wird auch in den Ordner des Webservers kopiert, damit es grafisch dargestellt werden kann (siehe \ref{subsec:Diagramme}). Weiters verwendet die \textit{Endauswertung} (siehe \ref{sec:Endauswertung}) auch diese Datei zur rechnerischen Auswertung.
Diese Datei wird in den Ordner des Webservers kopiert, damit sie grafisch dargestellt werden kann (siehe \ref{subsec:Diagramme}). Weiters verwendet die \textit{Endauswertung} (siehe \ref{sec:Endauswertung}) auch diese Datei zur rechnerischen Auswertung.
Als nächstes wird der Text für das Display (siehe \ref{sec:Display}) erzeugt. Da dort der Platz beschränkt ist (16x2 Zeichen), werden alle Messwerte um 3 Stellen (bzw. 2 bei Luftdruck) gekürzt. Anschließend werden diese Daten in text.txt (für Display) und text\_ws.txt (für Webinterface) exportiert.
Als nächstes wird der Text für das Display (siehe \ref{sec:Display}) erzeugt. Da dort der Platz beschränkt ist (16x2 Zeichen), werden alle Messwerte um 3 Stellen (bzw. 2 bei Luftdruck) gekürzt. Anschließend werden diese Daten in \emph{text.txt} (für Display) und \emph{text\_ws.txt} (für Webinterface) exportiert.
\codeline{main.sh}{bash}{92}
\datei{text.txt}
\lstinputlisting[style=mystyle,label=textws.txt,caption=text\_ws.txt,basicstyle=\footnotesize]{code/text_ws.txt}
@ -74,7 +74,7 @@ Abschließend wird noch 8 Sekunden gewartet und jedes tausende Mal ein Backup ge
\section{Display}
\label{sec:Software/Display}
Um die aktuellen Messungen auch ohne Computer zu sehen, werden sie auch direkt am Raspberry Pi auf einem Display angezeigt (siehe auch \ref{sec:Display}). Um das Display anzusteuern wird ein Programm\footcite{schnatterente_code} von \emph{www.schnatterente.net} verwendet. Dieses wurde von mir um einige Funktionen ergänzt.
Um die aktuellen Messungen auch ohne Computer zu sehen, werden sie auch direkt am Raspberry Pi auf einem Display angezeigt (siehe auch \ref{sec:Display}). Um das Display anzusteuern wird ein Programm\footcite{schnatterente_code} von \emph{schnatterente.net} verwendet. Dieses wurde von mir um einige Funktionen ergänzt.
Das Programm liest aus \emph{text.txt} (siehe Datei \ref{file:text.txt}) die aktuellen Messwerte aus. Da der Platz jedoch stark beschränkt ist, werden diese auf 11 Seiten aufgeteilt, zwischen denen das Display alle 3 Sekunden wechselt.
\begin{figure}[h]
@ -87,26 +87,27 @@ Das Programm liest aus \emph{text.txt} (siehe Datei \ref{file:text.txt}) die akt
\section{Webinterface}
\label{sec:Webinterface}
Einer der wichtigsten Teile des Projektes ist die grafische Auswertung. Diese kann live auf der Webseite des Raspberry Pi und zeitverzögert unter \href{http://winkler.kremszeile.at}{winkler.kremszeile.at} angesehen werden. Die Auswertung besteht aus zwei von einander unabhängigen Teilen. Zum einen gibt es die Anzeige der Live-Daten, zum anderen die Darstellung der kompletten Aufzeichnung als interaktives Diagramm.
Einer der wichtigsten Teile des Projektes ist die grafische Auswertung. Diese kann live auf der Webseite des Raspberry Pi und zeitverzögert unter \href{http://winkler.kremszeile.at}{winkler.kremszeile.at} angesehen werden. Die Auswertung besteht aus zwei von einander unabhängigen Teilen. Zum einen gibt es die Anzeige der Live-Daten, zum anderen die Darstellung der kompletten Aufzeichnung als interaktives Diagramm. Zusätzlich werden auf zwei zusätzlichen Seiten Informationen über das Projekt und Links zu mehr Informationen (siehe Anhang \ref{anhang:weitere_informationen} angezeigt.
\subsection{Livedaten}
\label{subsec:Livedaten}
\begin{figure}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{figures/aktuell.png}
\caption{Livedaten (Screenshot von \href{http://winkler.kremszeile.at/aktuell.html}{winkler.kremszeile.at/aktuell.html})}
\label{fig:display_neu}
\end{figure}
Auf der Webseite des Raspberry Pi können die aktuellen Messwerte angezeigt und grafisch eranschaulicht werden. Hierzu wird alle 5 Sekunden mithilfe von \gls{Javascript} die Datei \emph{text\_ws.txt} nachgeladen und ausgewertet. Zusätzlich zur Anzeige der Zahlenwerte werden die Messungen mithilfe von Balken und Farbverläufen angezeigt. Für ältere Browser gibt es auch eine einfache tabellarische Ansicht\footnote{\href{http://winkler.kremszeile.at/aktuell_einfach.html}{winkler.kremszeile.at/aktuell\_einfach.html}}
Auf Webinterface können die aktuellen Messwerte angezeigt und grafisch veranschaulicht werden.\footnote{\href{http://winkler.kremszeile.at/aktuell.html}{winkler.kremszeile.at/aktuell.html}}
Hierzu wird alle 5 Sekunden mithilfe von \gls{Javascript} die Datei \emph{text\_ws.txt} nachgeladen und ausgewertet. Zusätzlich zur Anzeige der Zahlenwerte werden die Messungen mithilfe von Balken und Farbverläufen angezeigt. Für ältere Webbrowser gibt es auch eine einfache tabellarische Ansicht\footnote{\href{http://winkler.kremszeile.at/aktuell_einfach.html}{winkler.kremszeile.at/aktuell\_einfach.html}}
\subsubsection{Wetter-Rater}
\label{subsubsec:Wetterrater}
Um die Daten auch anders zu nutzen habe ich einen \emph{Wetter-Rater} programmiert. Dieser versucht auf Basis von einfachen Berechnungen und Schätzungen das aktuelle Wetter zu \enquote{erraten}. So wird zum Beispiel die aktuelle Außentemperatur mit der nach Jahreszeit und Tageszeit zu erwartenden Temperatur verglichen, um Rückschlüsse auf den Bewölkungsgrad zu ziehen oder aufgrund der Luftfeuchtigkeit ermittelt, ob es Niederschlag gibt.
Hierzu wird zum Beispiel die Temperaturschwankung über einen Tag als Cosinusfunktion mit einer Schwankung von \SI{5}{\degreeCelsius} angenommen.
Hierzu wird die Temperaturschwankung über einen Tag als Cosinusfunktion mit einer Schwankung von \SI{5}{\degreeCelsius} angenommen.
$$ \textit{Temperaturerwartung} = -5 \cdot \cos\left(\frac{\text{Stunde}\cdot 2 \cdot \pi }{24}\right) + \textit{Mittlere Temp. des Tages}; $$
\begin{figure}[h]
\centering
@ -156,35 +157,35 @@ Aufgrund von diesen Werten wird dann eine Grafik (siehe Abbildung \ref{fig:wette
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{figures/dygraphs.png}
\caption{Webinterface (von \href{http://winkler.kremszeile.at/dygraphs_außen.html}{winkler.kremszeile.at/dygraphs\_außen.html})}
\caption{Webinterface (von \href{http://winkler.kremszeile.at/dygraphs\_au\%C3\%9Fen.html}{winkler.kremszeile.at/dygraphs\_außen.html})}
\label{fig:dygraphs}
\end{figure}
Damit auch die vergangenen Messergebnisse angesehen werden können, werden diese im Webinterface auf einer eigenen Seite als Diagramm dargestellt. Diese werden mithilfe von \emph{dygraphs}\footcite{dygraphs}, einer \gls{Javascript}-Bibliothek für interaktive Diagramme, erstellt.\footnote{\href{http://winkler.kremszeile.at/dygraphs_au\%C3\%9Fen.html}{winkler.kremszeile.at/dygraphs\_außen.html}}
Hierzu lädt der Webbrowser die komplette Aufzeichnung in Form der Datei \emph{dygraphs.csv} (siehe Datei \ref{file:dygraphs.csv}) nach. Daraus wird ein Diagramm über den gesamten Zeitraum der Messung erstellt. Im Gegensatz zu anderen Darstellungen kann hier jedoch einfach hineingezoomt werden. So können einfach einzelne Wochen oder Tage betrachtet werden. Da das Diagramm mit allen 10 Messkurven auf einmal überladen wäre, können einzelne Kurven aktiviert und deaktiviert werden. Zusätzlich kann ein Faktor eingegeben werden, um den die Kurven automatisch geglättet werden sollen. Mit einem Tastendruck kann man auch auf die letzten 24 Stunden oder 7 Tage zoomen oder in einem Kalender den Zeitraum auswählen. Es gibt auch ein Auswahlmenü, um den gewünschten Datensatz auszuwählen. Das Diagramm ist auch darauf angepasst, auch mit Tablets bzw. Touchscreens bedient zu werden.
Hierzu lädt der Webbrowser die komplette Aufzeichnung in Form der Datei \emph{dygraphs.csv} (siehe Datei \ref{file:dygraphs.csv}) nach. Daraus wird ein Diagramm über den gesamten Zeitraum der Messung erstellt. Im Gegensatz zu anderen Darstellungen kann hier jedoch einfach hineingezoomt werden. So können einfach einzelne Wochen oder Tage betrachtet werden. Da das Diagramm mit allen 10 Messkurven auf einmal überladen wäre, können einzelne Kurven aktiviert und deaktiviert werden. Zusätzlich kann ein Faktor eingegeben werden, um den die Kurven automatisch geglättet werden sollen. Mit einem Tastendruck kann man auch auf die letzten 24 Stunden oder 7 Tage zoomen oder in einem Kalender den Zeitraum auswählen. Es gibt auch ein Auswahlmenü, um den gewünschten Datensatz auszuwählen. Das Diagramm ist darauf angepasst, auch mit Tablets bzw. Touchscreens bedient zu werden.
Auf Youtube gibt es ein Video, wo man die Verwendung in Aktion sehen kann: \href{https://www.youtube.com/watch?v=1bv6CEXuN5c}{www.youtube.com/watch?v=1bv6CEXuN5c}
\section{Endauswertung}
\label{sec:Endauswertung}
Unabhängig vom Webinterface habe ich ein zweites Programm in \gls{Python} geschrieben. Dieses kann die fertige \emph{dygraphs.csv} (siehe Datei \ref{file:dygraphs.csv}) einlesen und verschiedene mathematischen Auswertungen über einen beliebigen Zeitraum erstellen.
Unabhängig vom Webinterface habe ich ein zweites Programm in \gls{Python} geschrieben. Dieses kann die fertige \emph{dygraphs.csv} (siehe Datei \ref{file:dygraphs.csv}) einlesen und verschiedene mathematische Auswertungen über einen beliebigen Zeitraum erstellen.
Zunächst wird die Datei in zwei Dateien aufgespalten. Die eine enthält nur die erste Spalte mit den Zeitstempeln jeder Messung, die andere die Messergebnisse. Da schon wenige Messfehler (zum Beispiel einmalig \SI{6}{\degreeCelsius} bei \SI{20}{\degreeCelsius} Außentemperatur) den Mittelwert (und die Standardabweichung) stark verändern, wird zunächst nach Ausreißern gesucht. Hierzu für jeden Messwert überprüft, ob er um mehr als \SI{10}{\degreeCelsius} von dem vorherigen \emph{und} dem folgenden abweicht. Wenn dem so ist, wird eine Meldung ausgegeben:
Zunächst wird die Datei in zwei Dateien aufgespalten. Die eine enthält nur die erste Spalte mit den Zeitstempeln jeder Messung, die andere die Messergebnisse. Da schon wenige Messfehler (zum Beispiel einmalig \SI{6}{\degreeCelsius} bei \SI{20}{\degreeCelsius} Außentemperatur) den Mittelwert (und die \gls{Standardabweichung}) stark verändern, wird zunächst nach Ausreißern gesucht. Hierzu wird für jeden Messwert überprüft, ob er um mehr als \SI{10}{\degreeCelsius} von dem vorherigen \emph{und} dem folgenden abweicht. Wenn dem so ist, wird eine Meldung ausgegeben:
\code{ausgabe.txt}{,morekeywords={Spalte,Zeile}}{5}{8}
Als nächstes kann man den Zeitraum angeben, für den die Auswertung erstellt werden soll. Hierbei wird überprüft, ob das eingegebene Datum gültig ist. Das Programm testet dann, welche Zeilen der Eingabedatei in diesem Zeitraum liegen.
Als nächstes kann man den Zeitraum angeben, für den die Auswertung erstellt werden soll. Zunächst wird überprüft, ob das eingegebene Datum gültig ist. Das Programm testet anschließend, welche Zeilen der Eingabedatei in diesem Zeitraum liegen.
\code{ausgabe.txt}{}{22}{28}
Nun werden für jede Spalte bzw. für jeden Sensor der Mittelwert, das Minimum, das Maximum und die Standardabweichung berechnet und ausgegeben:
Nun werden für jede Spalte bzw. für jeden Sensor der Mittelwert, das Minimum, das Maximum und die \gls{Standardabweichung} berechnet und ausgegeben:
\code{ausgabe.txt}{}{29}{59}
\section{diverses}
\label{sec:diverses}
Abgesehen von den großen Teilen gibt es auch einige kleinere Aspekte, von denen ich nun einige vorstellen möchte:
Abgesehen von den großen Teilen des Projektes gibt es auch einige kleinere Aspekte, von denen ich nun einige vorstellen möchte:
\subsection{Weather Underground}
\label{subsec:wunderground}

View file

@ -1,4 +1,5 @@
\chapter{Weitere Informationen}
\label{anhang:weitere_informationen}
In dieser VWA können nur die wichtigsten Teile des Projektes erwähnt werden. Weitere Informationen gibt es unter folgenden Quellen:
\begin{itemize}
\item \gls{Github}: \url{https://github.com/Findus23/Umweltdatenmessung}