Monthly Archives: novembre 2014
Monitorer la temperature avec un Raspberry Pi, vite fait bien fait
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.
w1-therm
w1-gpio pullup=1
snd-bcm2835
Pour une action immédiate :
# modprobe w1-gpio pullup=1
Puis allons voir ce qu’il se passe du coté du bus 1-wire :
# ls -l
total 0
lrwxrwxrwx 1 root root 0 nov. 18 00:05 28-000003977b0a -> ../../../devices/w1_bus_master1/28-000003977b0a
lrwxrwxrwx 1 root root 0 nov. 17 22:45 w1_bus_master1 -> ../../../devices/w1_bus_master1
Ah ! 28 machins, ça me rappelle des souvenirs.
# cat w1_slave
63 01 4b 46 7f ff 0d 10 15 : crc=15 YES
63 01 4b 46 7f ff 0d 10 15 t=22187
Bon, on devine que 22187 correspond à 22,187°C.
Autrement on peut utiliser cette commande :
22.187
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 !
# cd /etc/munin/plugins/
Personnellement, je souhaite juste ma temperature, donc je supprime tous les plugins et crée le nouveau plugin :
# vi 1w-temp
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 :
# munin-run 1w-temp
temperature.value 22.25
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 :
# vi /etc/apache2/conf.d/munin
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.
# cd /var/www/
# vi index.php
<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.
Alimenter des Raspberry Pi par le réseau
Une petite astuce permettant d’alimenter plusieurs Raspberry Pi à partir du réseau sans utiliser le PoE tel que la norme le défini.
L’avantage du Raspberry, c’est qu’il se glisse partout dans une maison, il consomme peu (650 mA pour le modele B+) ; l’inconvénient est qu’il ne supporte pas le PoE au sens strict de la norme (IEEE 802.3af), à moins d’y rajouter un module très cher.
Ou bien, en PoE passif, avec un peu de câbles, sans devoir toucher au fer à souder 🙂
Actuellement j’utilise 3 Raspberry Pi :
– Compteur téléinfo et contrôle de l’alarme.
– Compteur à impulsion sur le compteur d’eau et monitoring des températures.
– Dans l’atelier, en tant que poste de travail, SSH, web, etc…
Voici le nécessaire utilisé :
Transformateur 5 Volts / 3 Ampères :
Récupéré d’un hub USB.
Avec embout en 3,5mm.
Neuf, comptez entre 2 $ et 6 $.
*Pas de photo*
Splitter DC 3,5mm (arraignée) :
1 femelle 3.5mm vers 4 mâles 3,5 mm.
Nombres de sorties à adapter selon le nombre de Raspberry souhaité.
Comptez environ 5,60 $.
Injecteur/splitter PoE passif :
Se vend par couple, un mâle 3,5mm et une femelle 3,5mm
Environ 3,16 $ mais moins cher si acheté en lot.
Adaptateur DC 3,5 mm vers micro USB :
Et la fin ! L’adaptateur DC 3,5mm vers micro USB mâle à brancher dans le Raspberry Pi.
Environ 2 $ / pièce.
PoE passif pour le Raspberry Pi :
Coté baie de brassage :
L’adaptateur secteur 5V branché au splitter (arraignée) 1 vers 4 fiches.
A chaque sortie de l’araignée : l’injecteur passif, d’un coté le switch (mâle RJ45 dans le switch), de l’autre le câble RJ45 (femelle RJ45 + cordon de brassage dans le panneau).
Coté Raspberry Pi :
Câble réseau raccordé au splitter PoE passif.
Le câble réseau du splitter dans le Raspberry Pi et la fiche mâle DC raccordé à l’adaptateur DC vers micro USB pour alimenter le Raspbery Pi.
Voila, aussi simple que ça pour une seule alimentation pour plusieurs Raspberry Pi et garder une baie de brassage propre.
Z41 Remote disponible pour Android
Une info peu reprise : l’application Z41 Remote est enfin disponible pour Android.
Depuis bien longtemps les utilisateurs d’iPhone pouvaient contrôler leurs maisons avec leurs téléphones.
C’est maintenant aux utilisateurs Android de pouvoir piloter leurs maisons comme s’ils étaient en face de leur Z41.
Pour rappel, l’application Z41 Remote de Zennio est une application qui permet de dupliquer l’écran du Z41 sur son smartphone.
L’application Android est une Beta.
Elle est grossièrement stable, certaines fonctions sont indisponibles, quelques plantages aléatoires.
Mon Z41 n’est pas encore configuré dans ses plus belles fonctions, mais j’ai d’ors et déjà pu constater que Z41 Remote sur android ne me permet pour l’instant pas :
– D’afficher les graphiques
– De choisir la couleur de mon rail LED RGBW.
Vivement la suite ! (Initialement l’application était prévue pour juillet 2014)
Télécharger Z41 REMOTE pour Android