DD2-monitor/doc/dd2-monitoring.tex

169 lines
5.0 KiB
TeX

\documentclass[a4paper,11pt]{article}
% \listfiles % pour le debug
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% XXX \usepackage{lipsum}
\usepackage{makeidx}
\usepackage{listings}
% \usepackage{color}
% \usepackage{url}
\usepackage{xspace}
\usepackage[verbose]{layout}
\makeindex
\setlength{\parskip}{0.25cm plus 0.25cm}
% -------------------------------------------------------------------
\title{DD2 Monitoring}
\author{tTh}
\begin{document}
\maketitle
\pagebreak
% -------------------------------------------------------------------
\section{Introduction}
Dans le cadre du futur projet \textsl{phytotron}\index{phytotron},
nous aurons besoin d'un
système de surveillance de divers paramêtres, du genre la température
et l'humidité de l'air ambiant ou de l'enceinte thermostatée.
Et comme nous sommes au Tetalab, nous allons essayer d'en faire le plus
possible nous même, tant pour l'aspect didactique que pour la possible
ré-utilisation de la chose dans un contexte artistique comme nous
arrivons parfois à le faire.
La première étape sera donc la mise au point d'un \textsl{cadriciel}
permettant d'essayer diverses options en se basant sur une conception
modulaire de l'ensemble.
Les valeurs à mesurer étant de diverses natures, nous aurons l'occasion
de découvrir plein de capteurs différents : température, humidité,
\texttt{pH}, transparence, lumière, vibrations\dots
% -------------------------------------------------------------------
\section{Présentation générale}
\subsection{Capteurs} \index{capteurs}
Actuellement nous disposons d'un \texttt{RDing TEMPERHUM1V1.2}{} qui
semble un peu étrange à interpeller, et qui sera destiné à mesurer
l'ambiance météo du DD2\footnote{Pas de mauvais esprit, merci...}.
Par la suite, nous pourrons récupérer (par liaison série ?) des données
en provenance de l'automate de contrôle de l'enceinte. Notre dd2monitor
devrait donc aussi être capable d'envoyer des alertes en cas de souci,
par exemple si des algues\footnote{ou des pleurotes.} tentent de s'échapper.
\subsection{Stockage}
Pour entreposer toutes ces valeurs numériques, il existe plusieurs
choix, et nous allons en évaluer quelques uns :
\texttt{rrdb}\index{rrdb},
\texttt{influxdb}\index{influxdb} (page \pageref{influxdb}),
\texttt{gnocchi}\index{gnocchi}...
\subsection{Affichage}
Nous allons laisser un petit bac-à-sable pour Fred Fermion\index{nodejs},
qui nous tartine les oreilles depuis trop longtemps avec son machinjs.
Mais sachez déja que l'automate sera équipé d'un minitel, pourquoi ne
pas en mettre un second sur le monitoring ?
% -------------------------------------------------------------------
\section{Outils}
\subsection{Simulations}
Bien entendu, mettre au point un système de monitoring pour un futur
phytotron pose un problème : d'où viennent les premières mesures ?
C'est pour ça qu'il y a déja un générateur de \textit{fake-values} qui
ne demande qu'à grandir.
\subsection{Exemples}
Promis, on va en mettre ! Dès que ça marche\dots
\subsection{Analyses}
Bla bla bla\dots Corrélations, toussa\dots
Peut-être demander à Schmod777 des références de
documents bourbakistes ?
% -------------------------------------------------------------------
\section{InfluxDB} \label{influxdb}
Au programme : écriture d'un injecteur en Perl\index{Perl}.
% -------------------------------------------------------------------
\section{Serial coms} \index{serial}
Il va y avoir deux liaisons série entre l'automate et le monitoring.
La première, que nous allons juste entrevoir, passera par le port
USB de la carte Arduino. La seconde passera par un port série
auxiliaire\footnote{Il y en a 4 sur le 2560} de celle-ci.
\begin{lstlisting}
tcgetattr(uart0, &options);
options.c_cflag = baudbits | CS8 | CLOCAL | CREAD;
options.c_iflag = IGNPAR;
options.c_oflag = 0;
options.c_lflag = 0;
tcflush(uart0, TCIFLUSH);
tcsetattr(uart0, TCSANOW, &options);
\end{lstlisting}
Et en fait, le \texttt{read} sur le \textsl{fd} du serial device
n'est pas bloquant, \texttt{perror} annonce \emph{success}, mais
rien ne marche. L'année 2019 va commencer sur du vaudou programming.
% -------------------------------------------------------------------
\section{Détournements}
Dans le contexte myryssien, il est évident que l'aspect artistique
doit être dès le départ pris en compte.
Les possibilités ne seront limitées que par votre manque d'imagination.
Mais si vous voulez un petit exemple, imaginez des courbes de température
qui pilotent un \texttt{uGen} de Chuck\index{chuck} ou des algues dont la lumière
envoie du \texttt{cv/gate} en temps réel...
% -------------------------------------------------------------------
\section{Conclusion}\label{conclusion}\index{conclusion}
En fait, tout reste à faire. Mais ça peut être un beau projet
aux implications et usages multiples.
% -------------------------------------------------------------------
\setlength{\parskip}{0.05cm plus 0.05cm}
\pagebreak \tableofcontents
\printindex
\end{document}