>
Relevés de l'humidité relative.
5) Script de commande et pages html

Le script de commande checkHumi.sh fait fonctionner le tout. On le téléchargera à partir de ce lien (choisir Enregistrer la cible sous...) et on le copiera sur le serveur hors de visibilité du serveur Web, c'est à dire ni dans les répertoires des pages html, ni dans les répertoires CGI. On lui donnera l'attribut exécutable pour root :

chown root:root checkHumi.sh
chmod 700 checkHumi.sh

Puis avec vi (ou tout autre éditeur Unix) on modifiera les 5 lignes suivantes pour tenir compte de l'environnement spécifique:

logfileHumi="/usr/local/rrdtool/datas/humiLast";
rrdfileHumi="/usr/local/rrdtool/datas/humidity.rrd";
rrdtoolbin="/usr/local/rrdtool/bin/rrdtool";
htmldir="/WWW/temperature";
/path2digitemp/digitemp -a -o"%.2C" | tail -n1 > $logfile

logfileHumi est le chemin d'accès et le nom du fichier de travail du script. Généralement on le placera au même endroit que la base de donnée. Ce fichier contient toujours la dernière mesure d'humidité.
rrdfileHumi est le chemin d'accès et le nom de la base de donnée Round Robin.
rrdtoolbin est le chemin d'accès complet de rrdtool.
htmldir est le chemin d'accès des fichiers html des pages de mesure d'humidité. Les relevés d'humidité seront plaçés dans ce répertoire.
path2digitemp doit être remplacé par le chemin d'accès complet menant au logiciel d'acquisition.

On configurera crontab de root pour exécuter ce script toutes les 5 minutes:

*/5 * * * * /path_2_script/checkHumi.sh > /dev/null 2>&1

path_2_script devant être modifié pour le chemin d'accès où vous avez placé le script. Si tout va bien :-), une mesure d'humidité sera faite toutes toutes les 5 minutes et les fichiers suivants seront placés dans le répertoire du serveur Web:

humiDaily.png    relevés d'une journée.
humismall.png    relevés d'une journée (petite image).
humiWeekly.png   relevés d'une semaine.
humiMonthly.png  relevés sur 28 jours.
humi2Monthly.png relevés sur 60 jours (-60j - 0j).
humi3Monthly.png relevés sur 60 jours (-120j - 60j).
humi4Monthly.png relevés sur 60 jours (-180j - 120j).
humiYearly.png   relevés sur une année (maxima et minima journalier).
lasthumi.txt     valeur de la dernière humidité mesurée.
lastdate.txt     date et l'heure de la dernière mesure.

Une fois ces fichiers créés la première fois, on y appliquera les mêmes droits et owner/group/world que les autres fichiers html de votre serveur (généralement 644).

Pour afficher vos graphiques, il restera à créer des pages html avec les images aux endroits voulus, par exemple:
‹img src="humiDaily.png"› pour placer le relevé journalier.

Pour utiliser les fichiers texte, le serveur Web devra être configuré avec SSI (Server Side Include) et l'extension changée en shtml. Par exemple, la date et la dernière humidité mesurée sera inclue sur la page à l'endroit voulu avec les instructions suivantes:
‹!--#include virtual="lastdate.txt" --›
‹!--#include virtual="lasthumi.txt" --›
Ce qui nous donnera quelque chose du genre:

Sat Nov 6 17:40:05 CET 2004 - Humidité relative: 60 %

Vous pouvez très facilement modifier le script pour changer tous les paramètres des graphiques. Pour cela, bien entendu, vous aurez lu en détail le mode d'emploi de RRDTool.

Note importante:
Les capteurs présents sur un bus 1Wire doivent être lus séquentiellement. Ils ne peuvent pas être lus simultanément. Cela veut dire que si vous mesurez déjà la température toutes les cinq minutes, il faudra mesurer l'humidité après les mesures de température terminées (ou avant, mais pas en même temps).
Pour cela, on peut soit concaténer les script checkTemp.sh et checkHumi.sh, soit les placer séquentiellement dans un script qui lui sera executé par le cron.

Home : Linux : mesures de l'humidité : page précédente : script de commande : page suivante
© Georges Rosset 2004-2007