L’hiver arrive, dans la nouvelle maison je souhaite surveiller la température temporairement pièce par pièce pour mesurer l’impact du chauffage.
Pour cela, je m’aide d’un Raspberry Pi en WIFI et d’une sonde 1-wire DS18B20.
Je ne vais pas réinventer le fil à couper le beurre, le schéma de câblage d’un DS18B20 est le même sur tous les blogs :
Ce qui donne une fois soudé :
J’utilise une résistance de 4.2kΩ qui fait très bien l’affaire.
Coté Raspberry Pi, après la configuration du WIFI, place à la configuration du 1-wire.
Pour une action immédiate :
Puis allons voir ce qu’il se passe du coté du bus 1-wire :
Ah ! 28 machins, ça me rappelle des souvenirs.
Bon, on devine que 22187 correspond à 22,187°C.
Autrement on peut utiliser cette commande :
Voila voila…
Reste à grapher périodiquement cette valeur.
Vite fait, bien fait, j’aime grapher avec munin et j’ai vite trouvé un script simple et efficace :
https://gist.github.com/kminiatures/4f3…
Ah bah !?! Go !
Personnellement, je souhaite juste ma temperature, donc je supprime tous les plugins et crée le nouveau plugin :
Pour y insérer ceci (selon https://gist.github.com/kminiatures/4f3… )
#!/bin/sh case $1 in config) cat <<'EOM' graph_title Temperature graph_vlabel Temperature temperature.label temperature EOM exit 0;; esac printf "temperature.value " TEMP=`cat /sys/bus/w1/devices/*/w1_slave | grep t= | sed s/.*t=//` echo "scale=2; $TEMP / 1000" | bc
Puis on teste tout de suite notre plugin :
Bientôt la fin… J’ajoute un « allow * » au fichier /etc/munin/munin-node.conf
Puis /etc/init.d/munin-node restart
Mettons un serveur munin/apache2 en place :
Puis remplaçer toutes les occurences de Allow from localhost 127.0.0.0/8 ::1 par Allow from all .
On redémarre apache2 :
Vous pouvez également modifier le fichier /etc/munin/munin.conf pour modifier le nom de votre serveur.
Evidemment, si vous avez un autre serveur munin (mon cas), inutile d’installer un serveur munin sur votre Raspberry, il vaut mieux décharger cette tâche à une autre machine plus apte à ce genre de service.
Au bout de quelques heures ou quelques jours, vous devriez voir ce genre de graphique :
Bon, vite fait, maintenant qu’on a un apache2 sur le raspberry, une petite page PHP pour connaitre la température actuelle de la sonde.
On peut aussi lire la valeur « Cur: » sur les graphs munin, mais mes petits yeux veulent quelque chose de plus grand, surtout depuis le téléphone.
<meta name="viewport" content="width=device-width, user-scalable=no"> <center><span style="font-size:65px;"> <?php // Fichier à lire $file = "/sys/bus/w1/devices/28-000003977b0a/w1_slave"; // Lecture ligne par ligne $lines = file($file); // Recupere la 2nd ligne $temp = explode('=', $lines[1]); // Formatage de la temperature $temp = number_format($temp[1]/1000,2, '.', ''); // On affiche la temperature echo $temp; ?> </center></span>
28-000003977b0a correspond à l’ID de ma sonde DS18B20.
Ce qui donne sur smartphone :
Voila, un article vite fait bien fait, pour surveiller une température.
Cela va me permettre dans un premier temps de calibrer mon Z41.
Puis ça me permettra d’analyser les variations de température de la maison entre le chauffage au sol, le poêle à pellet, et l’ensoleillement à travers les ouvertures.
Merci à toi pour le partage, je dit simplement bravo
Bonjour,
Je suis novice et je suis en train de réaliser le montage et je butte sur quelques points:
Lorsque j’écris le plugins, il ne s’enregistre pas, de plus, je ne sais pas à quel moment je dois écrire les lignes suivantes:
# rm *
# vi 1w-temp
merci de m’aider,
Cordialement,
Bonsoir Lionel,
Ton aide m’a été précieuse puis que j’en suis arrivé à l’étape « temperature.value », mais je ne comprends pas qu’est ce que c’est l’étape allow* ???
merci de m’aider encore une fois.
Cdlt,
C’est super!! Ca semble bien marcher pour une sonde, par contre, j’ai 10 sondes DS18B20, le plugin lw-temp actuel ne fonctionne pas dans mon cas. Est-ce que c’est bien compliqué à modifier? Qu’est-ce que je dois modifier?
salut, bravo pour se tuto..
je suis en train de confectionner un ensemble pour gerer un batterie d’aquarium…
j’ai un petit probleme avec cette etape:
je ne trouve pas vi /etc/apache2/conf.d/munin
j’ai pourtant suivi le reste sans probleme quand je lance munin-run, j’ai bien la temperature qui s’affiche..
Pour completer ton tuto tu devrais ajouter la partie, comment se connecter a l’interface graphique car tu n’en parle pas…
merci d’avance si tu pouvais m’eclairer la dessus
Merci lionel,
Je regarderai ca se soir..
Je sais me connecter, il y a plusieur solution:
avec localhost en local ca devrait fonctionner:
j’ai vu aussi une ip trainer dans un fichier de conf de munin…
perso j’utiliserai plus une interface du style vnc ou teamviwer pour me connecter au raspberry pi…
meme si le terminal me pose pas trop de probleme, je l’utilise regulierement…
– vi : apt-get install vim >> installation OK
– apache2 : apt-get install apache2 >> j’ai fais comme dans le tuto apt-get install munin apache2 >> c’est peu etre la l’erreur
– munin-node : apt-get install munin-node >> apt-get install -y munin-node bc >> peu etre une difference entre les deux aussi >> puis j’ai fais un rm * comme dans le tuto pour supprimer les fichiers puis la création de « vi 1w-temp »…
cela fait une semaine presque que ca tourne je jeterai un coup d’oeil se soir, comme tu la dis cela peu mettre plus heure ou jour avant d’avoir un graph..
merci, pour ses conseil je comprend que repéter les meme choses, c’est rebervatif
a+
david
Bonjour,
J’ai en principe suivi toutes les étapes scrupuleusement, l’affiche bien la température sur une page web, mais je n’arrive pas à voir les graphes par le port 4949, où aurais-je failli??
Merci!! (très chouette tuto!)
Aurélen
Bonjour à tous,
mon problème est que quand je veux lancer le 1w-temp il me dit que c’est un service inconnu, pouvez-vous m’aider ?
Excellent, très clair ! Ca fonctionne parfaitement chez moi
Un grand merci…
bonjour
je bloque a cette etape
Puis remplaçer toutes les occurences de Allow from localhost 127.0.0.0/8 ::1 par Allow from all .
Je comprend pas ce que je dois faire
merci
bonjour si on a plusieurs sondes peut on les lire tous?
merci
ça marche super
Bonjour
Merci pour le tuto
pour les noobies comme moi 🙂
Bc à la fin du bash n’est pas natif sous raspian
donc ==> apt-get install bash bc
Bonjour,
Le sujet commence à dater mais il n’en demeure pas moins intéressant, j’ai donc suivi toutes les étapes de ce tutoriel et tout a fonctionné pour le mieux jusqu’à l’édition du fichier : « /etc/apache2/conf.d/munin », tout simplement introuvable, le répertoire conf.d n’existe pas … Je suis donc un peu perdu, et lorsque je veux accéder à munin sur mon site web, c’est à dire exemple.net/munin , je tombes sur une erreur de type « Forbidden ».
Pourriez-vous me venir en aide car autrement la sonde, le script etc fonctionnent très bien 🙂 Merci d’avance pour votre aide !
bonjour,
J’aimerais savoir comment modifier le lien du fichier index.html car il va me chercher celui de base d’apache (dans /var/www) et non celui de Munin. (/var/www/munin)
Merci d’avance !