Outils pour utilisateurs

Outils du site


raspberry_pi:ds18b20_temperature_numerique

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision Les deux révisions suivantes
raspberry_pi:ds18b20_temperature_numerique [06/10/2016 16:56]
sky99 créée
raspberry_pi:ds18b20_temperature_numerique [06/10/2016 16:58]
sky99
Ligne 59: Ligne 59:
 Cela affichera alors les données du capteur, comme on peut le voir ici : Cela affichera alors les données du capteur, comme on peut le voir ici :
 {{http://​nagashur.com/​blog/​wp-content/​uploads/​2015/​08/​shell_read_DS18B20.png | Shell affichant les données du capteur}} {{http://​nagashur.com/​blog/​wp-content/​uploads/​2015/​08/​shell_read_DS18B20.png | Shell affichant les données du capteur}}
 +
 +Comme vous pouvez le voir dans l'​exemple de l'​image,​ on obtient une sortie sur deux lignes. La première ligne est terminée par YES, indiquant que notre capteur à pu lire une température,​ et la seconde ligne est terminée par t=xxxxx, ou l'on a la température en millièmes de degrés (on divise par 1000 pour obtenir la température en degrés).
 +
 +Voici un exemple de ligne de code permettant de ne sélectionner que la température :
 +<code bash>
 +cat /​sys/​bus/​w1/​devices/​28-000006799670/​w1_slave | tail -n 1 | cut -f10 -d " " | cut -f 2 -d "​="​
 +</​code>​
 +
 +===== Programmation =====
 +
 +Nous verrons maintenant comment exploiter la sortie fournie par la sonde afin de surveiller une température. Nous verrons pour cela deux solutions : la première avec un script bash, et la seconde via un script python.
 +
 +Comme nous l'​avons déjà vu brièvement,​ il est possible de récupérer uniquement la température dans une variable. Nous devrons alors diviser l'​ensemble par 1000 pour pouvoir avoir une température en  degrés Celsius. Cependant, le problème est que l'​interpréteur bash ne gère pas les nombres à virgule, mais uniquement les entiers. Il existe diverses solutions, et [[http://​stackoverflow.com/​questions/​12722095/​how-can-i-get-a-float-division-in-bash|vous pourrez en apprendre davantage en suivant ce lien]]. Pour faire simple, une solution serait d'​utiliser bc, mais ce n'est pas installé par défaut sur le raspberry pi. Une autre solution qui fonctionne sans ajouter de paquets est d'​utiliser awk.
  
  
raspberry_pi/ds18b20_temperature_numerique.txt · Dernière modification: 06/10/2016 17:12 par sky99