Software: Webinterface weiter
This commit is contained in:
parent
430b4ff47e
commit
295dc501da
9 changed files with 98 additions and 13 deletions
BIN
figures/aktuell.png
Normal file
BIN
figures/aktuell.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 89 KiB |
BIN
figures/wettericons.png
Normal file
BIN
figures/wettericons.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 126 KiB |
27
glossar.tex
27
glossar.tex
|
@ -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}}
|
||||
}
|
||||
|
|
|
@ -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
BIN
main.pdf
Binary file not shown.
7
main.tex
7
main.tex
|
@ -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}
|
||||
%% ========================================================================
|
||||
|
|
|
@ -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},
|
||||
|
|
41
software.tex
41
software.tex
|
@ -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
18
weitere_informationen.tex
Normal 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}
|
Reference in a new issue