Domotique FabLab Robert-Houdin: les températures
Revision for “Domotique FabLab Robert-Houdin: les températures” created on 13 décembre 2014 à 15 h 08 min
Titre | Domotique FabLab Robert-Houdin: les températures |
---|---|
Contenu | <h2>Les températures</h2>
<h3>Comment obtenir les info</h3>
ça, c'est le problème classique. Un DS18S20 qui trainais est utilisé.
Une recherche sur internet qui fourni la page qui va bien: <a href="http://www.framboise314.fr/mesure-de-temperature-1-wire-ds18b20-avec-le-raspberry-pi/">1wire</a>
Donc la capteur est connecté sur <span style="text-decoration: underline;">GPIO4</span>. Les modules sont installés par défaut.
<pre><span style="color: #00ff00;">pi@raspberrypi ~ $</span> ls /sys/bus/w1/devices
<span style="color: #00ccff;">10-00080123e2a9 w1_bus_master1</span>
<span style="color: #00ff00;">pi@raspberrypi ~ $</span> cat /sys/bus/w1/devices/10-00080123e2a9/w1_slave
18 00 4b 46 ff ff 0f 10 3a : crc=3a YES
18 00 4b 46 ff ff 0f 10 3a <span style="text-decoration: underline;">t=11812</span>
</pre>
température: 11.812°C : précis et froid !
Autre information: le Raspberry intégre une sonde de température.
Il suffit de regarder dans "/sys/class/thermal/thermal_zone0/temp"
<pre><span style="color: #00ff00;">pi@raspberrypi ~/FabLab $</span> cat /sys/class/thermal/thermal_zone0/temp
<span style="text-decoration: underline;">34704
</span></pre>
<h3>Leur utilisation</h3>
Maintenant que ces températures sont disponibles, il faut les "logger".
Un petit script python est crée pour la peine:
<pre><span style="color: #666699;">#!/usr/bin/python
import datetime
# Log temp value in temps.log
# 2014/11/02 Creation by EGo
# 2014/11/08 Added /sys/class/thermal/thermal_zone0/temp
f = open("/sys/bus/w1/devices/10-00080123e2a9/w1_slave", "r")
line = f.readline()
line = f.readline()
f.close()
f = open("/sys/class/thermal/thermal_zone0/temp", "r")
line2 = f.readline()
f.close()
t = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
print t+" ",float(line[29:])/1000," ",float(line2)/1000
</span></pre>
Assez simple en fait. Il ouvre les fichiers qui vont bien, et <em>print</em> les données avec la date et l'heure. Ne pas oublier de lui ajouter les droits d’exécution:
<pre><span style="color: #00ff00;">pi@raspberrypi ~/FabLab $</span> chmod +x getTemps.py</pre>
Ce qui nous donne l’exécution suivante (attention à l'heure dans le fuseau qui nous concerne):
<pre><span style="color: #00ff00;">pi@raspberrypi ~/FabLab $</span> TZ='Europe/Paris'; export TZ; ./getTemps.py
2014-12-02T18:55:41 12.0 34.166</pre>
On y est presque: reste plus qu'à utiliser le "cron" pour appeler cette commande toutes les 10 minutes:
<pre><span style="color: #00ff00;">pi@raspberrypi ~/FabLab $</span> sudo crontab -e</pre>
La ligne qui nous intéresse est la suivante:
<pre>*/10 * * * * TZ='Europe/Paris'; export TZ; /home/pi/FabLab/getTemps.py >> /home/pi/FabLab/temps.log</pre>
Le fichier "~/FabLab/temps.log" contient donc nos lignes:
<pre><span style="color: #00ff00;">pi@raspberrypi ~/FabLab $</span> tail temps.log
2014-12-02T17:30:02 12.125 34.166
2014-12-02T17:40:02 12.0 34.166
2014-12-02T17:50:02 12.0 34.166
2014-12-02T18:00:03 12.062 34.166
2014-12-02T18:10:02 12.062 34.166
2014-12-02T18:20:02 12.25 34.166
2014-12-02T18:30:02 12.125 34.166
2014-12-02T18:40:03 12.062 33.628
2014-12-02T18:50:02 12.0 34.166
2014-12-02T19:00:02 12.0 34.166</pre>
Mise à jour (12/12/14) suite aux oublis fréquents de la cafetière: un capteur 'spécial cafetière' a été ajouté !
Le script 'getTemps.py' a été ajouté, ainsi que le script dans la page index.php...
On peut donc maintenant détecter la cafetière allumée le soir, et prochainement envoyer un SMS à Daniel ;-) |
Extrait |