G. Ajouter des sondes de températures sur votre Raspberry

Nous allons voir ici un petit ajout sympathique : faire des mesures de températures avec le Raspberry PI.

Pour ce faire il nous faut :

  • 1 résistance de 4,7 K Ohms (oui, une seule résistance quel que soit le nombre de sondes)
  • Une ou des sondes de type 18DS20

Vous pouvez trouver ces sondes par exemple sur Amazon, par 5 au prix d’environ 15 € en format étanche (la photo ici).  Faite une recherche sur 18DS20.

Sonde_18DS20

La longueur de câble importe peu. Bon, je n’ai essayé avec 100 mètres non plus…. Mais 5 à 10 mètres ne m’ont posés aucun souci.

Bref, encore un montage ruineux !

 

Ces sondes fonctionnent avec des adresses (intégré à chaque sonde), donc ont peu en faire fonctionner plusieurs en parallèle et aller lire celle de son choix. Très pratique !

 

Pour la réalisation du Relais / Transpondeur de DINARD, j’ai mis 2 sondes (pour le moment) :

  • Une sur le PA du TX UHF, car c’est l’émetteur du relais, donc celui qui chauffe le plus
  • Une à l’extérieure : pour toujours avoir la température de DINARD

Après, nous allons voir comment lire les valeurs : faire les mesures à la demande.
Grâce à ceci, vous pouvez ensuite déclencher toutes les actions que vous voulez !
Dans mon cas, j’ai mis un seuil sur la sonde qui est sur le PA du TX UHF, si la température monte de trop… je commute le TX en petite puissance.

Autre approche, aller lire la température extérieure et s’en servir pour le module météo de SVXlink ou l’indiquer sur un site WEB … Votre imagination est la limite.

Passons au schéma, comment monter ces sondes sur le Raspberry.

Le schéma : La simplicité même !

Sondes_Temp

Paramétrage du Raspberry Pi pour utiliser les sondes :

Bon, a ce stade, je considère que vous avez fait des progrès, je donne les infos mais je ne détaille pas comment ouvrir un fichier, ajouter des lignes….

La config fonctionne jusqu’à 10 sondes

 

Dans le fichier : /etc/modules

Ajouter les 2 lignes suivantes :

  • w1-gpio
  • w1-therm

Vous aurez alors un fichier qui contient : (c’est un exemple)


# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with « # » are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
w1-gpio
w1-therm
bmc2708_wdog


ATTENTION : sur les version depuis Mai 2015 il faut ajouter le paramètre suivant :

Dans : /boot/config.txt

Trouver la ligne « dtoverlay » et mettre :

dtoverlay=w1-gpio


 

Ceci fait, pour prendre ne compte ces paramètres, il faut rebooter le Raspberry.

Bon, vous rebooter, vous vous reconnecter en root, et on continu.
Donc le Raspberry ayant redémarré, il a pris en compte la sonde, ou les sondes.

Et, devant nos yeux hagards, un répertoire à du apparaître au nom de la sonde, et ce dans le dossier :

  • /sys/bus/w1/devices

Pour aller voir ;


cd /sys/bus/w1/devices
ls
28-000005e72bdd 28-000005e7b852 w1_bus_master1


 

Moi j’ai donc 2 sondes sur DINARD :

  • 28-000005e72bdd
  • 28-000005e7b852

Quand je vous disais que chaque sonde a son adresse.

Avec le « nom » de la sonde, on va pouvoir lire la température relevée. Pour ce faire, il nous faut une « petite » ligne de Shell tel que :


cat /sys/bus/w1/devices/28-000005e7b852/w1_slave | grep "t=" | awk -F "t=" '{print $2/1000}'


ATTENTION, penser à mettre le « nom » de VOTRE sonde !

Et le retour de cette belle commande vous donne la température mesurée, en °C.

A vos Script pour en faire ce que vous voulez !