Archived
1
0
Fork 0

Software: Webinterface weiter

This commit is contained in:
Findus23 2014-12-14 12:58:03 +01:00
parent 430b4ff47e
commit 295dc501da
9 changed files with 98 additions and 13 deletions

BIN
figures/aktuell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
figures/wettericons.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View file

@ -29,23 +29,46 @@
name=GPIO,
description={General Purpose Input/Output\newline Kontakte, die Softwareseitig für verschiedene Zwecke angesteuert werden können\newline \zB: Auslesen von Sensoren, Ansteuern von Displays}
}
\newglossaryentry{Kernelmodul}
{
name=Kernelmodul,
description={ein Programm, welches in das Betriebssystem geladen werden kann und oft zur Unterstützung von Hardware verwendet wird}
}
\newglossaryentry{C}
{
name=C,
description={C ist eine sehr weit verbreitete Programmiersprache\newline Hier wird sie oft zum Auslesen der Sensoren verwendet, da sie sehr schnell ausgeführt wird}
description={eine sehr weit verbreitete Programmiersprache\newline Hier wird sie oft zum Auslesen der Sensoren verwendet, da sie sehr schnell ausgeführt wird}
}
\newglossaryentry{Bus}
{
name=Datenbus,
description={\textit{ein System zur Datenübertragung zwischen mehreren Teilnehmern über einen gemeinsamen Übertragungsweg, bei dem die Teilnehmer nicht an der Datenübertragung zwischen anderen Teilnehmern beteiligt sind.}\footcite{wiki:bus}}
}\newglossaryentry{I2C}
}
\newglossaryentry{I2C}
{
name=I\textsuperscript{2}C,
description={\textit{Inter-Integrated Circuit} (auf Deutsch gesprochen: \textit{I-Quadrat-C})\newline ein sehr weit verbreiteter \gls{Bus}}
}
\newacronym{voc}{VOC}{volatile organic compound (dt. Flüchtige organische Verbindungen)}
\newglossaryentry{Javascript}
{
name=Javascript,
description={eine Skriptsprache für dynamische Inhalte in Webseiten}
}
\newglossaryentry{Flickr}
{
name=Flickr,
description={ist eine Online-Plattform, auf der Fotos hochgeladen und veröffentlicht werden können}
}
\newglossaryentry{Github}
{
name=Github,
description={\emph{ist ein webbasierter Hosting-Dienst für Software-Entwicklungsprojekte}\footcite{wiki:github}}
}

View file

@ -1,4 +1,4 @@
indus\chapter{Hardware}
\chapter{Hardware}
\label{cha:Hardware}
\todo{Einleitung}
@ -102,7 +102,7 @@ Da der \emph{VOLTCRAFT CO-20} jedoch nicht mehr erhältlich ist, verwende ich de
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{figures/velux.jpg}
\caption{Velux Raumluftfühler}
\caption{Velux Raumluftfühler (eigenes Werk)}
\label{fig:velux}
\end{figure}
@ -122,7 +122,7 @@ Der Sensor wird über USB an den Raspberry Pi angeschlossen. Um die Daten unter
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.
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 ist.
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}

BIN
main.pdf

Binary file not shown.

View file

@ -238,10 +238,10 @@
\renewcommand{\lstlistingname}{Datei}
\renewcommand{\lstlistlistingname}{Dateiverzeichnis}
\newcommand{\code}[4]{
\lstinputlisting[language=#2,style=mystyle,firstline=#3,lastline=#4,caption=#1 (Zeile #3 bis #4),firstnumber=#3,label=file:#1]{code/#1}
\lstinputlisting[language=#2,style=mystyle,firstline=#3,lastline=#4,caption=#1 (Zeile #3 bis #4),firstnumber=#3,label=file:#1-#3]{code/#1}
}
\newcommand{\codeline}[3]{
\lstinputlisting[language=#2,style=mystyle,firstline=#3,lastline=#3,caption=#1 (Zeile #3),firstnumber=#3,label=file:#1]{code/#1}
\lstinputlisting[language=#2,style=mystyle,firstline=#3,lastline=#3,caption=#1 (Zeile #3),firstnumber=#3,label=file:#1-#3]{code/#1}
}
\newcommand{\dateiklein}[1]{
\lstinputlisting[style=mystyle,caption=#1,label=file:#1,basicstyle=\scriptsize]{code/#1}
@ -261,6 +261,8 @@
\counterwithout{footnote}{chapter}
\hyphenpenalty=3000 %test von weniger Trennungen
\tolerance=1000
@ -300,6 +302,7 @@
\input{template/pdf_settings} %% should be *last* definitions in preamble!
%\usepackage{showlabels}
%% ========================================================================
%%%% begin{document}
%% ========================================================================

View file

@ -192,6 +192,18 @@
Timestamp = {2014.10.25}
}
@Online{wiki:github,
Title = {GitHub --- Wikipedia{,} Die freie Enzyklopädie},
Author = {Wikipedia},
Date = {2014-12-14},
Url = {http://de.wikipedia.org/w/index.php?title=GitHub&oldid=136725990},
Year = {2014},
Urldate = {2014-12-14},
Owner = {lukas},
Timestamp = {2014.12.14}
}
@Online{wiki:raspberry,
Title = {Raspberry Pi--- Wikipedia{,} Die freie Enzyklopädie},
Author = {Wikipedia},

View file

@ -1,5 +1,5 @@
\chapter{Software}
Die Software, die verwendet wird, teilt sich in (?) Teile auf:
Die Software, die verwendet wird, teilt sich in (?\todo{Anzahl hinzufügen}) Teile auf:
\begin{itemize}
\item Auslesen der Sensoren, Aufbereiten der Daten und allgemeine Steuerung (main.sh)
\item Steuern des Displays
@ -16,7 +16,7 @@ Das wichtigste Programm ist das Bash-Script \textit{main.sh}. Mithilfe eines Bas
\subsection{Allgemeines}
\label{subsec:main.sh/allgemeines}
Zunchst werden 10 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 LEDs angeschlossen sind. In den Zeilen 11-13 wird nun die grüne 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.
@ -63,13 +63,12 @@ Nachdem alle Sensoren ausgelesen und die Messwerte in Variablen gespeichert wurd
\code{main.sh}{bash}{89}{90}
Hierdurch entsteht eine \gls{CSV}-Datei die wie folgt aussehen kann.
\dateiklein{dygraph.csv}
Diese Datei wird auch in den Ordner des Webservers kopiert, damit es grafisch dargestellt werden kann (siehe \ref{}\todo{Link zu Webinterface}). Weiters verwendet die \textit{Endauswertung} (siehe \ref{}\todo{Link zu Endauswertung}) auch diese Datei zur rechnerischen Auswertung.
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{}\todo{Link zu 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.
\codeline{main.sh}{bash}{92}
\datei{text.txt}
\label{file:text.txt}
\lstinputlisting[style=mystyle,caption=text\_ws.txt,basicstyle=\footnotesize]{code/text_ws.txt}
\lstinputlisting[style=mystyle,label=textws.txt,caption=text\_ws.txt,basicstyle=\footnotesize]{code/text_ws.txt}
Abschließend wird noch 8 Sekunden gewartet und jedes tausende Mal ein Backup gemacht und mir per E-Mail geschickt, bevor die nächste Messung von vorne beginnt.
@ -82,7 +81,7 @@ Das Programm liest aus \emph{text.txt} (siehe \ref{file:text.txt}) die aktuellen
\centering
\includegraphics[width=0.9\textwidth]{figures/display.jpg}
\caption{eingebautes Display (eigenes Werk)}
\label{fig:display}
\label{fig:display_alt}
\end{figure}
\section{Webinterface}
@ -93,6 +92,36 @@ Einer der wichtigsten Teile des Projektes ist die grafische Auswertung. Diese ka
\subsection{Livedaten}
\label{subsec:Livedaten}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{figures/aktuell.png}
\caption{Livedaten (eigenes Werk 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 veranschaulicht 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. Zusätzlich gibt es für ältere Browser eine einfache tabellarische Ansicht\footnote{\href{http://winkler.kremszeile.at/aktuell_einfach.html}{winkler.kremszeile.at/aktuell\_einfach.html}}
\subsubsection{Wetterrater}
\label{subsubsec:Wetterrater}
Um die Daten auch anders zu nutzen habe ich einen \emph{Wetterrater} programmiert. Dieser versucht auf Basis von einfachen Berechnungen und Schätzungen das aktuelle Wetter zu \enquote{schätzen}. Es gibt drei Werte aus:
\begin{itemize}
\item Tag oder Nacht
\item Niederschlag (keiner/Gewitter/Schnee/Regen/Schneeregen)
\item Bewölkungsgrad (sonnig/leicht bewölkt/stark bewölkt)
\end{itemize}
Aus diesen Werten wird dann eine Grafik (siehe Abbildung \ref{fig:wettericons}) bestimmt, welche dann angezeigt wird.
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{figures/wettericons.png}
\caption{Wettericons (eigenes Werk)}
\label{fig:wettericons}
\end{figure}
\subsection{Diagramme}
\label{subsec:Diagramme}
%%\begin{lstlisting}[language=bash,style=terminal]
%%lukas@kinderzimmer:~$ main.sh -h

18
weitere_informationen.tex Normal file
View file

@ -0,0 +1,18 @@
\chapter{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}
\begin{itemize}
\item Der komplette Programmcode und alle anderen Dateien, die entstanden sind, sind hier gesammelt.
\item Auch alle Veränderungen seit Dezember 2013 können hier angesehen werden: \url{https://github.com/Findus23/Umweltdatenmessung/commits/master}
\item Große Veränderungen werden zusätzlich separat gelistet: \url{https://github.com/Findus23/Umweltdatenmessung/releases}
\end{itemize}
\item \gls{Flickr} \url{https://www.flickr.com/photos/findus23/sets/72157637721138445/}
\begin{itemize}
\item Hier sind über 100 Bilder vom Projekt zu sehen.
\end{itemize}
\item Youtube: \url{https://www.youtube.com/playlist?list=PLjtFdocVknd4aw90_zVr0U4BFlRH9PatA}
\begin{itemize}
\item Einige Videos (z.B. vom Display) sind auf Youtube zu finden.
\end{itemize}
\end{itemize}