2018-12-08 14:35:45 +01:00
|
|
|
|
2018-12-20 17:53:18 +01:00
|
|
|
\documentclass[a4paper,11pt]{article}
|
2018-12-08 14:35:45 +01:00
|
|
|
|
2018-12-10 20:51:23 +01:00
|
|
|
% \listfiles % pour le debug
|
2018-12-08 14:35:45 +01:00
|
|
|
|
2018-12-10 20:51:23 +01:00
|
|
|
\usepackage[french]{babel}
|
2018-12-08 14:35:45 +01:00
|
|
|
\usepackage[utf8]{inputenc}
|
|
|
|
\usepackage[T1]{fontenc}
|
|
|
|
% XXX \usepackage{lipsum}
|
|
|
|
\usepackage{makeidx}
|
2018-12-20 17:53:18 +01:00
|
|
|
\usepackage{listings}
|
2018-12-08 14:35:45 +01:00
|
|
|
% \usepackage{color}
|
|
|
|
% \usepackage{url}
|
|
|
|
\usepackage{xspace}
|
|
|
|
\usepackage[verbose]{layout}
|
|
|
|
|
|
|
|
\makeindex
|
2018-12-10 20:51:23 +01:00
|
|
|
\setlength{\parskip}{0.25cm plus 0.25cm}
|
2018-12-09 22:11:20 +01:00
|
|
|
|
2018-12-08 14:35:45 +01:00
|
|
|
% -------------------------------------------------------------------
|
|
|
|
\title{DD2 Monitoring}
|
|
|
|
\author{tTh}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
|
2018-12-09 22:11:20 +01:00
|
|
|
\pagebreak
|
2018-12-08 14:35:45 +01:00
|
|
|
|
|
|
|
% -------------------------------------------------------------------
|
|
|
|
|
|
|
|
\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
|
2018-12-11 00:33:15 +01:00
|
|
|
et l'humidité de l'air ambiant ou de l'enceinte thermostatée.
|
2018-12-08 14:35:45 +01:00
|
|
|
|
2018-12-13 19:19:24 +01:00
|
|
|
Et comme nous sommes au Tetalab, nous allons essayer d'en faire le plus
|
2018-12-08 14:35:45 +01:00
|
|
|
possible nous même, tant pour l'aspect didactique que pour la possible
|
2018-12-10 20:51:23 +01:00
|
|
|
ré-utilisation de la chose dans un contexte artistique comme nous
|
|
|
|
arrivons parfois à le faire.
|
2018-12-08 14:35:45 +01:00
|
|
|
|
|
|
|
La première étape sera donc la mise au point d'un \textsl{cadriciel}
|
2018-12-10 20:51:23 +01:00
|
|
|
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
|
2018-12-08 14:35:45 +01:00
|
|
|
|
|
|
|
% -------------------------------------------------------------------
|
|
|
|
|
2018-12-09 22:11:20 +01:00
|
|
|
\section{Présentation générale}
|
2018-12-08 14:35:45 +01:00
|
|
|
|
2018-12-09 22:11:20 +01:00
|
|
|
\subsection{Capteurs} \index{capteurs}
|
2018-12-08 14:35:45 +01:00
|
|
|
|
|
|
|
Actuellement nous disposons d'un \texttt{RDing TEMPERHUM1V1.2}{} qui
|
2018-12-10 20:51:23 +01:00
|
|
|
semble un peu étrange à interpeller, et qui sera destiné à mesurer
|
|
|
|
l'ambiance météo du DD2\footnote{Pas de mauvais esprit, merci...}.
|
2018-12-09 22:11:20 +01:00
|
|
|
|
|
|
|
Par la suite, nous pourrons récupérer (par liaison série ?) des données
|
2018-12-10 20:51:23 +01:00
|
|
|
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.
|
|
|
|
|
2018-12-08 14:35:45 +01:00
|
|
|
|
|
|
|
\subsection{Stockage}
|
|
|
|
|
|
|
|
Pour entreposer toutes ces valeurs numériques, il existe plusieurs
|
2018-12-11 11:52:25 +01:00
|
|
|
choix, et nous allons en évaluer quelques uns :
|
2018-12-13 19:19:24 +01:00
|
|
|
\texttt{rrdb}\index{rrdb},
|
|
|
|
\texttt{influxdb}\index{influxdb} (page \pageref{influxdb}),
|
|
|
|
\texttt{gnocchi}\index{gnocchi}...
|
2018-12-10 20:51:23 +01:00
|
|
|
|
|
|
|
\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.
|
2018-12-08 14:35:45 +01:00
|
|
|
|
2018-12-11 14:33:16 +01:00
|
|
|
Mais sachez déja que l'automate sera équipé d'un minitel, pourquoi ne
|
|
|
|
pas en mettre un second sur le monitoring ?
|
|
|
|
|
2018-12-08 14:35:45 +01:00
|
|
|
% -------------------------------------------------------------------
|
2018-12-09 22:11:20 +01:00
|
|
|
\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 ?
|
|
|
|
|
2018-12-10 20:51:23 +01:00
|
|
|
C'est pour ça qu'il y a déja un générateur de \textit{fake-values} qui
|
|
|
|
ne demande qu'à grandir.
|
|
|
|
|
|
|
|
|
2018-12-13 19:48:45 +01:00
|
|
|
\subsection{Exemples}
|
|
|
|
|
2018-12-20 17:53:18 +01:00
|
|
|
Promis, on va en mettre ! Dès que ça marche\dots
|
2018-12-13 19:48:45 +01:00
|
|
|
|
2018-12-10 20:51:23 +01:00
|
|
|
\subsection{Analyses}
|
|
|
|
|
2018-12-13 19:48:45 +01:00
|
|
|
Bla bla bla\dots Corrélations, toussa\dots
|
|
|
|
|
|
|
|
Peut-être demander à Schmod777 des références de
|
2018-12-13 19:19:24 +01:00
|
|
|
documents bourbakistes ?
|
|
|
|
|
2018-12-13 19:48:45 +01:00
|
|
|
|
|
|
|
|
2018-12-12 20:07:49 +01:00
|
|
|
% -------------------------------------------------------------------
|
|
|
|
|
2018-12-13 19:19:24 +01:00
|
|
|
\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.
|
2018-12-10 20:51:23 +01:00
|
|
|
|
2018-12-20 17:53:18 +01:00
|
|
|
\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.
|
2018-12-09 22:11:20 +01:00
|
|
|
|
|
|
|
% -------------------------------------------------------------------
|
|
|
|
|
|
|
|
\section{Détournements}
|
|
|
|
|
|
|
|
Dans le contexte myryssien, il est évident que l'aspect artistique
|
2018-12-10 20:51:23 +01:00
|
|
|
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
|
2018-12-11 00:33:15 +01:00
|
|
|
qui pilotent un \texttt{uGen} de Chuck\index{chuck} ou des algues dont la lumière
|
2018-12-10 20:51:23 +01:00
|
|
|
envoie du \texttt{cv/gate} en temps réel...
|
|
|
|
|
2018-12-09 22:11:20 +01:00
|
|
|
|
|
|
|
|
|
|
|
% -------------------------------------------------------------------
|
|
|
|
|
|
|
|
\section{Conclusion}\label{conclusion}\index{conclusion}
|
|
|
|
|
2018-12-10 20:51:23 +01:00
|
|
|
En fait, tout reste à faire. Mais ça peut être un beau projet
|
|
|
|
aux implications et usages multiples.
|
2018-12-09 22:11:20 +01:00
|
|
|
|
|
|
|
% -------------------------------------------------------------------
|
|
|
|
\setlength{\parskip}{0.05cm plus 0.05cm}
|
|
|
|
|
2018-12-08 14:35:45 +01:00
|
|
|
\pagebreak \tableofcontents
|
|
|
|
|
2018-12-10 20:51:23 +01:00
|
|
|
\printindex
|
|
|
|
|
2018-12-08 14:35:45 +01:00
|
|
|
\end{document}
|
|
|
|
|
|
|
|
|