From 66681d8e71f25b5a90abd673bf582d8a30db58d1 Mon Sep 17 00:00:00 2001 From: kleph Date: Tue, 19 May 2015 02:27:09 +0200 Subject: [PATCH] [term_pi] Ajout d'un script de lecture et d'une configuration pour collectd --- content/raspi_therm.mdown | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/content/raspi_therm.mdown b/content/raspi_therm.mdown index aadb7b0..038bf8d 100644 --- a/content/raspi_therm.mdown +++ b/content/raspi_therm.mdown @@ -7,7 +7,7 @@ Tags: Linux, Arm, Embedded Lang: fr Un article parlant du branchement d'un capteur de température en 1-wire sur une raspberry. L'exemple est pour l'instant réalisé sur une raspberry 1 modèle B+. -Je me suis beaucoup inspiré du site [franboise314][1], avec un ajout de configuration pour le noyau 3.18+ et très bientôt comment faire un plugin collectd pour remonter ces informations sur le réseau. +Je me suis beaucoup inspiré du site [franboise314][1], avec un ajout de configuration pour le noyau 3.18+ ainsi qu'un script basique et une configuration pour collectd, pour pouvoir avoir cette information cruciale dans le système de monitoring :-) # Matériel - une sonde DS18B20 @@ -68,7 +68,38 @@ La deuxième ligne donne la température en millième de °C. # Plugin collectd -TODO +Dans un premier temps, je vais utiliser un script shell et le plugin [Exec][7] de collectd. J'essaierai de faire une meilleure version du plugin, en C je suppose, plus tard. + +## En utilisant le plugin exec +Voici un exemple de script donné sur la page [wiki du plugin][7], adaptée pour ce capteur : +``` bash + #!/bin/bash + # script to read DS18B20 temp value and output in collectd format + # TODO check CRC + + HOSTNAME="${COLLECTD_HOSTNAME:-localhost}" + INTERVAL="${COLLECTD_INTERVAL:-60}" + + if [ -z "$1" ]; then + echo "ERROR" + exit 1 + fi + probe_id=$1 + probe_path=/sys/bus/w1/devices/${probe_id}/w1_slave + + while sleep "$INTERVAL"; do + value=$(awk -F "t=" '/t=/ {print $2/1000}' ${probe_path}) + echo "PUTVAL \"${HOSTNAME}/exec-temp/gauge-DS18B20\" interval=${INTERVAL} N:${value}" + done + +``` + +Voici la configuration du plugin dans le fichier `collectd.conf`. Notez l'id de la sonde en paramètre du plugin, il sera passé au script de lecture. +``` bash + + Exec "pi" "/home/pi/read_temp.sh" "28-001451521dff" + +``` [1]: http://www.framboise314.fr/mesure-de-temperature-1-wire-ds18b20-avec-le-raspberry-pi/ [2]: ../Home%20router%20with%20sama5d35.html#chargeur-damorcage @@ -76,3 +107,4 @@ TODO [4]: https://www.raspberrypi.org/ [5]: images/therm_raspi.jpg [6]: images/therm_raspi_bread.jpg +[7]: https://collectd.org/wiki/index.php/Plugin:Exec