Publié le 25 février 2014 - par

Mesure de température 1-wire DS18B20 avec le Raspberry Pi

sonde_DS18B20_250Le Raspberry Pi permet d’interagir avec le monde réel. En particulier, il est possible de l’utiliser pour effectuer et afficher/enregistrer des mesures environnementales comme la température.

Le cahier des charges était : afficher la température de la pièce sur une page web.

Mesure de température 1-wire avec le DS18B20

L’heure du choix

Après la lecture de nombreux articles et la consultation de documentations techniques, le choix se résumait à choisir

  • un capteur analogique
  • un capteur numérique

Le premier n’est pas directement utilisable sur le Raspberry Pi, il délivre une tension/un courant analogique et nécessite la mise en oeuvre d’une carte de mesure avec convertisseur analogique => digital (ADC ou CAN).

Dans les seconds, une famille est particulièrement adaptée au Raspberry Pi, c’est la série de 1-wire, ou capteurs utilisant un seul fil (nous verrons qu’il faut… trois tout de même). Le Raspberry Pi (en fait Linux) embarquant le pilote capable de gérer cette famille de composants.

Comment ça marche ?

Le bus 1-wire est basé sur une architecture maître-esclave. Le maître est l’équipement qui contrôle le bus, interroge les périphériques, ou leur envoie des ordres.

bus_1-wire_600px

Dans notre cas, le maître sera le Raspberry Pi et il n’y aura qu’un esclave, notre capteur de température DS18B20.

Sur le schéma ci-dessus, on voit que le bus 1-wire est relié au +3,3 V par une résistance de tirage de 4,7 kΩ. En fonction de la longueur des fils de liaison, il sera parfois nécessaire d’ajuster sa valeur. Tous les appareils sont branchés en parallèle sur le bus et c’est en mettant (ou pas) leur sortie à la masse qu’ils envoient les données au maître.

Le maître initialise le bus en forçant un zéro pendant plus de 480 µs. Les esclaves lui répondent en mettent eux aussi leur sortie à zéro pendant un certain temps, indiquant ainsi leur présence.

Le maître déclenche une lecture dite ROM et l’esclave renvoie son identifiant unique, gravé lors de la fabrication. Chaque identifiant a une longueur de 48 bits (8 octets) encadrés par un octet indiquant le type de matériel (ici le type est : sonde de température = 28h) et un octet de CRC qui permet au maître de vérifier qu’il a correctement reçu les informations d’identification du composant. Les 48 bits permettent d’individualiser à peu près 280 000 milliards de composants…

connexion_600px

Mode parasite

connexion_parasite_600px

Dans le mode parasite, l’esclave est connecté en reliant ses broches d’alimentation ensemble et en les reliant à la masse. Il n’y a plus besoin dans ce cas que de deux fils pour assurer la liaison avec les esclaves connectés au bus 1-wire.

Lorsque le bus est au niveau 1, un condensateur interne au composant esclave est chargé, et c’est lui qui assurera l’alimentation du composant pendant que le niveau du bus sera bas.

Le DS18B20 a une gamme de mesure qui s’étend de -55 °C à +125 °C. Il transmet sa mesure directement en degrés Celsius, codée sur 16 bits. Sa précision est de ±0,5 °C entre -10 °C et +85 °C.

Choix du composant

Le composant DS18B20, la sonde complète, le connecteur GPIO 26 points

Le composant DS18B20, la sonde complète, le connecteur GPIO 26 points

Un tour sur Internet et chez les vendeurs asiatiques montre que ce composant est disponible sous forme de boîtier TO92 (ça ressemble à un transistor, mais ce n’est pas un transistor !) ou de sonde étanche, montée, avec les fils de sortie. Au vu de la différence de prix, j’ai opté pour ce dernier modèle.

Connexion au Raspberry Pi

C’est la patte 7 (GPIO 4) du Raspberry qui joue le rôle de maître. Voici donc le branchement à réaliser pour connecter la sonde. Le fil « signal », blanc sur la sonde, a été dessiné en bleu sur le schéma, je trouvais ça plus visible… sur le fond blanc.

Schéma de la connexion du DS18B20 au GPIO du Raspberry Pi

Schéma de la connexion du DS18B20 au GPIO du Raspberry Pi

Pour le montage sur le Raspberry Pi, j’ai choisi de souder les fils de la sonde sur un connecteur 26 points GPIO qui « traînait » dans ma boîte à récup.

Photo du raccordement de la sonde DS18B20 et de la résistance au GPIO du Raspberry Pi

Photo du raccordement de la sonde DS18B20 et de la résistance au GPIO du Raspberry Pi

Il ne reste plus qu’à brancher le connecteur sur le GPIO de la framboise314, et à configurer celle-ci pour qu’elle puisse lire les informations de la sonde.

Configuration du Raspberry Pi

Pour que le noyau Linux sache gérer le composant 1-wire DS18B20, il faut lui adjoindre un module pour la gestion du bus 1-wire, et un module pour la gestion des composants de la famille 28h, capteurs de température.

Rien de plus simple… quoique…

La théorie

 Il suffit d’ajouter dans /etc/modules  les modules w1-gpio et w1-therm.

La pratique

Une fois ces modules ajoutés et le Raspberry Pi redémarré… la caméra ne fonctionne plus.

A chaque lancement de raspistill, le système répond par :

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

La LED de la caméra reste allumée… mais… rien !

Si comme moi vous avez un script shell qui se lance au démarrage pour prendre une photo toutes les 3 secondes avec raspistill, il ne reste plus qu’à lancer un putty et à vous connecter en SSH pour arrêter ça.

A priori il s’agit d’un conflit sur le port GPIO 4 entre la caméra et le pilote 1-wire.

La solution

Ouf ! Il existe une solution qui contourne ce problème : Il faut installer tous les modules y compris I2C, et ensuite ajouter à la blacklist ceux qu’on ne veut pas utiliser (vous suivez?)

Allez on y va :

Ouvrez /etc/modules avec nano en super-utilisateur  et ajoutez TOUS les modules ci-dessous :

pi@raspiblog ~ $ cat /etc/modules
# /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.

w1-therm
w1-gpio pullup=1
i2c-dev
i2c-bcm2708
spi-bcm2708
snd-bcm2835

Ensuite on va blacklister les mêmes modules… en les ajoutant à /etc/modprobe.d/raspi-blacklist.conf :

pi@raspiblog ~ $ cat /etc/modprobe.d/raspi-blacklist.conf
# blacklist spi and i2c by default (many users don't need them)

blacklist spi-bcm2708
blacklist i2c-bcm2708

Redémarrez le Raspberry Pi pour prendre ces modifications en compte. La caméra a repris du service. Voyons ce qu’il en est de la température.

Lire la température avec le DS18B20

Numéro unique de la sonde DS18B20

Dans un premier temps vérifions que le système a bien reconnu la sonde :

pi@raspiblog ~ $ cd /sys/bus/w1/devices
pi@raspiblog /sys/bus/w1/devices $ ls
28-0000054c2ec2 w1_bus_master1

Ma sonde a effectivement été détectée. Elle porte le numéro 28-0000054c2ec2 (numéro unique au monde, je vous le rappelle). Le système a créé un répertoire à son nom et c’est dans ce dossier que nous allons trouver les informations qui nous intéressent.

Lecture de la température fournie par la sonde DS18B20

pi@raspiblog /sys/bus/w1/devices $ cd 28-0000054c2ec2
pi@raspiblog /sys/bus/w1/devices/28-0000054c2ec2 $ ls
driver id name power subsystem uevent w1_slave
pi@raspiblog /sys/bus/w1/devices/28-0000054c2ec2 $ cat w1_slave
7c 01 4b 46 7f ff 04 10 09 : crc=09 YES
7c 01 4b 46 7f ff 04 10 09 t=23750

Le fichier w1_slave contient sur la première ligne le code correspondant au numéro de la sonde, avec son CRC qui a été vérifié (YES), et sur la deuxième ligne la température en hexadécimal (peu utilisable) mais aussi en milièmes de degrés Celsius.

Il suffira de diviser par 1000 pour obtenir la température réelle. On peut arrondir à un chiffre après la virgule sans vergogne, puisque la précision n’est que de ±0,5 °C.

Un exemple de lecture de la température en ligne de commande est donné sur l’excellent site pihomeserver :

find /sys/bus/w1/devices/ -name "28-*" -exec cat {}/w1_slave \; | grep "t=" | awk -F "t=" '{print $2/1000}'

Ce qui donne sur mon Raspberry Pi :

pi@raspiblog ~ $ find /sys/bus/w1/devices/ -name "28-*" -exec cat {}/w1_slave \; | grep "t=" | awk -F "t=" '{print $2/1000}'
23.812

Pour ma part j’ai opté pour le script ci-dessous, trouvé sur un forum. Il a l’avantage de lire tous les dispositifs 1-wire de type 28h (donc il fonctionne dans mon cas où il n’y en a qu’un…) :

#!/bin/bash
# a script to read and save temperature readings from all the group 28 1-wire temperature sensors
#
# get all devices in the '28' family
FILES=`ls /sys/bus/w1/devices/w1_bus_master1/ | grep '^28'`
# iterate through all the devices
for file in $FILES
do
# get the 2 lines of the response from the device
GETDATA=`cat /sys/bus/w1/devices/w1_bus_master1/$file/w1_slave`
GETDATA1=`echo "$GETDATA" | grep crc`
GETDATA2=`echo "$GETDATA" | grep t=`
# get temperature
TEMP=`echo $GETDATA2 | sed -n 's/.*t=//;p'`
#
# test if crc is 'YES' and temperature is not -62 or +85
if [ `echo $GETDATA1 | sed 's/^.*\(...\)$/\1/'` == "YES" -a $TEMP != "-62" -a $TEMP != "85000"  ]
then
# crc is 'YES' and temperature is not -62 or +85 - so save result
echo `date +"%d-%m-%Y %H:%M:%S "; echo $GETDATA2 | sed -n 's/.*t=//;p'` >> /var/1w_files/$file
else
# there was an error (crc not 'yes' or invalid temperature)
# try again after waiting 1 second
sleep 1
# get the 2 lines of the response from the device again
GETDATA=`cat /sys/bus/w1/devices/w1_bus_master1/$file/w1_slave`
GETDATA1=`echo "$GETDATA" | grep crc`
GETDATA2=`echo "$GETDATA" | grep t=`
# get the temperature from the new response
TEMP=`echo $GETDATA2 | sed -n 's/.*t=//;p'`
if [ `echo $GETDATA1 | sed 's/^.*\(...\)$/\1/'` == "YES" -a $TEMP != "-62" -a $TEMP != "85000" ]
then
# save result if crc is 'YES' and temperature is not -62 or +85 - if not, just miss it and move on
echo `date +"%d-%m-%Y %H:%M:%S "; echo $GETDATA2 | sed -n 's/.*t=//;p'` >> /var/1w_files/$file
fi
# this is a retry so log the failure - record date/time & device ID
echo `date +"%d-%m-%Y %H:%M:%S"`" - ""$file" >> /var/1w_files/err.log
fi
done
exit 0

Ce script est lancé toutes les 3 secondes. Je l’ai modifié pour qu’il range la température dans un fichier que je vais lire en php pour l’afficher sur ma page web… Pourquoi faire simple ?

Vous trouverez d’autres exemples au détour de vos recherches sur Internet, en particulier chez Adafruit, avec un script en Python.

Sources

Je ne mets qu’une partie des sources qui m’ont servi pour cet article, une recherche avec les termes Raspberry Pi et DS18B20 vous fournira bien d’autres points de chute.

Conclusion

D’un prix abordable cette sonde CPTC/CPTS* met à portée du Raspberry Pi le relevé de températures, que ce soit à l’intérieur ou à l’extérieur. Le 1-wire peut aller jusque 100 ou 200 mètres en utilisant du câble réseau de qualité et en adaptant la valeur de la résistance, tout en supportant des dizaines de capteurs !

La mise en œuvre du bus 1-wire sur Raspberry Pi est relativement simple, surtout si vous ne voulez pas faire fonctionner la caméra en même temps. Mais ce bug est signalé et devrait être corrigé dans les prochaines versions de Raspbian.

* CPTC/CPTS = C’est Pas Très Cher / Ça Peut Toujours Servir …  😉

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

176 réflexions au sujet de « Mesure de température 1-wire DS18B20 avec le Raspberry Pi »

    1. admin Auteur de l’article

      Bonjour Dodutils
      Les 3 fils sortent de la sonde et tous les picots du connecteur sont disponibles, je n’avais qu’une sonde à relier et pas de fil à tirer au travers d’un pièce… Mais oui, pourquoi pas?
      Certains sont dubitatifs (non, ce n’est pas un gros mot ;-)) quand à son utilisation.
      Cordialement
      François

      Répondre
      1. Dodutils

        Pour info j’ai un câble 1 Wire (2 fils uniquement) d’environ 70m de long avec 10 x DS18B20 et autant de DS2401 tous les DS18B20 sont en mode parasite branché sur un clé USB->1Wire et je n’ai aucun problème depuis 5 ans et 2.5000.000 relevé pour chaque sonde avec mon fil qui passe même par le frigo et le congel 🙂

        Répondre
          1. admin Auteur de l’article

            Merci pour ces précisions! Je n’avais pas testé le 1-wire avant cet article mais ton retour avec l’expérience que tu as est très intéressant.
            Je vais ajouter le mode parasite à l’article
            Cordialement
            François

  1. Dodutils

    Le seul problème avec le mode parasite est que le temps pour récupérer l’information de T° est plus long (le temps de charger un condensateur interne je crois) il faut environ 2 secondes par sonde.

    Répondre
  2. lionel

    Bonjour,

    Tout d’abord merci pour ce que vous faites. Je viens de me procurer une framboise314 et ce site est une petite mine d’info.

    Intéressé par le montage de cette sonde, je cherche à calculer la résistance nécessaire pour le montage. Vous parliez d’une 4,7 kΩ pour un montage avec le composant nu. La sonde que j’ai trouvé à un câble de 108cm d’après le descriptif.

    Une deuxième question en découle. La sonde est destinée à rester près du raspberry pour une simple prise de température intérieure. Vaut-il mieux acheter le composant nu ou bien la sonde entière? (au pire je peux raccourcir le câble de la sonde complète et rester à 4.7kΩ…

    Merci d’avance!

    Répondre
    1. admin Auteur de l’article

      Bonjour Lionel
      A priori sur de courtes distances la valeur de la résistance a peu d’importance si elle est entre 4k et 10k. Sur la photo vous pouvez voir que j’ai utilisé une 6k8 et ça fonctionne. Je n’ai pas testé le 1-wire sur de grandes distances, ni avec beaucoup de capteurs. Un lecteur plus expérimenté que moi pourra sans doute vous renseigner (je pense a Dodutils ci-dessus ;-))
      Cordialement
      François

      Répondre
  3. José

    Bonjour à tous,

    J’ai écris un petit descriptif de ce que l’on peut faire avec 3 sondes et un capteur à ultrasons en terme de supervision.
    Par contre pour au autre projet, je butte sur une limitation à 10 capteurs DS18B20 via le bus one-wire (GPIO 4) de la framboise.
    Un lecteur aurait-il une solution de contournement ?

    Merci

    Répondre
      1. José

        J’ai une installation domestique avec 10 capteurs de températures (toutes les pièces) comme ceux évoqués sur votre présentation. Lorsque, j’ai voulu ajouté la sonde du grenier et de la sortie du chauffe eau, le fonctionnement est devenu aléatoire.

        J’avais trouvé sur un forum (dont j’ai bêtement oublié de garder le lien), que les modules w1-therm
        w1-gpio limitaient à 10 le nombre de capteur sur un bus One Wire.

        Et effectivement au delà du 11ème ça se confirme.
        Au passage si ça peut intéresser du monde, je publierai le fonctionnement de mon installation : http://eyesathome.free.fr/

        Répondre
        1. Laurent

          Bonjour,
          Même si ce fil date un peu il est utile de préciser que cette limitation à 10 sondes vient de Domoticz lui-même et non du bus 1Wire ou de ses librairies.
          C’est peut être corrigé maintenant, mais j’ai lu cela sur un forum dédié au Raspberry et Domoticz sur un post de 2015.

          Répondre
  4. Pascal

    Bonjour,
    J’utilise mon Raspberry avec le logiciel Domoticz et j’ai (comme expliqué dans l’article) un conflit entre le module caméra et le bus one-wire (gpio4).
    J’ai bien essayé la solution proposée…mais rien n’y fait !
    Si quelqu’un a réussi à résoudre se problème….

    Merci

    Répondre
  5. Patrick63

    Bonjour à tous,

    Tout d’abord, félicitation et merci pour ce site qui est un « puits de sciences ».
    Je viens d’acheter une framboise, et très intéressé par cet article, je vais suivre vos conseils.

    En ce qui concerne le paramétrage du fichiers /etc/modules, dans ma configuration, y figurait déjà les lignes
    :
    snd-bcm2835
    # hardware watchdog
    bcm2708_wdog
    #DS18B20 sur bus 1wire
    w1-gpio
    w1-therm
    #I2C
    i2c-bcm2708
    i2c-dev
    rtc-ds1307

    mais sans le parametre « pullup=1 ». Pouvez vous me dire si il faut le rajouter et à quoi il correspond ?
    Ensuite, vous indiquez : « on va blacklister les mêmes modules… en les ajoutant à /etc/modprobe.d/raspi-blacklist.conf ».

    Cela suppose t’il qu’il faut y mettre les lignes suivantes :
    w1-therm
    w1-gpio pullup=1
    i2c-dev
    i2c-bcm2708
    spi-bcm2708
    snd-bcm2835

    Ou seulement les deux premières comme dans l’exemple ?
    J’espère avoir été suffisamment clair

    Merci pour votre réponse

    Répondre
  6. Rinty

    Bonjour,

    J’utilise le One Wire de la franboise avec des capteurs de température DS18B20 en utilisant mon câblage téléphonique de ma maison (montage en étoile).

    Cela fonctionne très bien tant que je n’utilise qu’un seul point (avec deux capteurs au bout) pour mes capteurs. Dès que je câble une nouvelle prise pour mettre un nouveau capteur, la lecture du capteur devient impossible (retour T=0)

    Je suppose qu’il s’agit là d’un effet de l’impédence, résistance, induction de mon câblage utilisé. Mes connaissances en électronique étant assez limitées, avez vous une idée pour me permettre d’étendre mon réseau One Wire.

    Répondre
      1. Rinty

        Je ne maîtrise pas totalement la longueur du câble. mais la maison étant à étage je pense que les branches du montage en étoile doivent faire entre 20 et 30m.

        Pour l’alimentation je suis sur celle du rasp donc en 3.3v.

        Est ce que le fait d’avoir une branche sans capteur peut avoir une importance sur la lecture des autres capteurs ?

        Répondre
    1. admin Auteur de l’article

      Bonjour Rinty
      A priori d’après ce que vous expliquez, je pense que c’est le câblage en étoile qui ne convient pas… Faites l’essai en câble volant de brancher vos capteurs sur un vrai BUS, je pense que ça devrait confirmer.
      Cordialement
      François

      Répondre
      1. Rinty

        C’est un peu ce que je crains.

        Par contre je ne suis pas sure que madame soit très motivée pour que je laisse un câble volant 😉

        En farfouillant dans les doc, il faut que je vérifie que la tension au repos de la data soit bien de 3.3v un ajustement de la résistance de pullup est peut être nécessaire.
        Toutefois j’en doute un peu. Arrivant à faire une lecture (certe erroné) je pense plutôt être face à un problème de réflexion.

        http://www.maximintegrated.com/app-notes/index.mvp/id/148

        The network radius is limited by several factors: the timing of waveform reflections, the time delay produced by the cable, the resistance of the cable, and the degradation of signal levels. The typical signal propagation speed in a phone cable is about 2/3 of the speed of light. In a 750m cable, for example, the roundtrip delay is 7.5µs. If the master pulls the line low for 7.5µs to start a read time slot, then the end of the master’s low pulse (i.e., after a roundtrip) coincides with the instant at which a near-end fast slave may stop pulling the line low. Consequently, the roundtrip delay of such a long cable makes it impossible for the master to communicate with that near-end slave.

        Répondre
        1. José

          Pour ma part et par rapport à ma propre expérience, je ne pense pas que le montage en étoile soit la cause du problème.

          J’ai dans mon grenier une boite de dérivation à partir de laquelle partent 5 câbles vers 5 capteurs différents. Je pense que la longueur totale de l’ensemble de mes 10 capteurs (longueur de câble mis bout à bout) avoisine les 60 m.

          Par contre, je pense qu’il faudrait alimenter les capteurs en 5v avec une alimentation différente (les masses doivent être communes) et je vous rejoins également sur la valeur de la résistance de pull up.

          Je regarderai ce soir celle que j’ai mise

          Répondre
          1. admin Auteur de l’article

            Merci José
            je n’ai pas mis en œuvre « sur le terrain » et votre expérience est précieuse !
            Cordialement
            François

        2. Rinty

          En abaissant la résistance de pullup a 1.5k j’ai pour le moment réussi à ajouter 2 branches de 30m chacune. Il m’en reste 4… Affaire à suivre.

          Répondre
          1. José

            Désolé pour le retard de la réponse, je viens de vérifier et ma résistance est de 24 ohms. J’utilise une alimentation différente du rapsberry pi.

  7. vanbiervliet

    bonjour,
    je viens de tenter le montage mais mon 18b20 se met à chauffer …. je ne vois ou j’ai pu faire une erreur ! avez vous une idée ???
    bonne journée. !

    Répondre
  8. David

    Bonjour,

    Tout d’abord félicitation pour votre blog.
    J’ai suivi votre tutoriel pour connecter la sonde de température mais j’ai un problème, je ne vois pas le répertoire 28-*…

    J’ai testé les deux montages, parasite et non parasite, j’ai vérifié que les modules étaient bien chargés (ils le sont) , j’ai bien mis à jour raspbian (à jour) ….

    Je sèche, si vous avez une piste, une idée ?!

    Merci d’avance pour votre aide.

    NB: Je suis totalement novice en linux…

    David

    Répondre
      1. David

        Bonjour,

        Merci pour votre réponse. Non je n’ai qu’un capteur donc je n’ai pas pu faire le test avec un autre.

        Je voulais être sûre d’éliminer tout problème « logiciel » avant d’acheter un autre capteur.

        Mais je crois que je n’ai pas le choix…

        Encore merci.
        David

        Répondre
  9. David

    Bonjour,

    Je ne pense pas avoir inversé VCC/Masse, à aucun moment la sonde n’a chauffé.
    Après avoir refait le montage, toujours rien. Je viens d’en commander une nouvelle.
    Encore une fois merci pour vos réponses.

    David

    Répondre
    1. José

      Bonjour,

      N’hésitez pas à en acheter plusieurs car on prend vite l’habitude de mesurer les températures partout dans la maison. 🙂
      Au passage, je me demandais si vous aviez fait l’essai en 5v ?

      Faites nous part de votre retour à la réception du nouveau capteur c’est toujours bien de comprendre ce qui n’allait pas.

      Bonne journée

      José

      Répondre
      1. Rinty

        Je confirme, on en mets partout.

        Personnellement j’ai actuellement 15 points de mesures dont 11 avec des DS18B20 avec un branchement type étoide utilisant mon câblage téléphonique de maison. Il m’a juste été nécessaire de baisser la résistance de pullup pour garder le contrôle des capteurs et de modifier le fichier de configuration pour passer la limite des 10 capteurs.

        De mon coté je n’ai jamais fait le test en 5v. Dans ce genre de montage la ligne data n’envoie t’elle pas du 5v au raspberry ? Si oui cela me semble dangereux pour notre framboise.

        Répondre
        1. José

          J’ai également une dizaine de capteurs et je n’ai pas réussi à dépasser cette limite de 10.

          ===> D’ailleurs, si vous avez le moyens de m’expliquer comment faire se serait top du top :).

          Pour revenir sur le 5 volts, je n’ai aucun souci. En utilisant les alimentations 3 ou 5 volts de la framboise, j’avais un problème de stabilité des capteurs ainsi qu’un certain nombre d’erreur de lectures. J’ai donc une seconde alim de 5 volts dédiée servant aux capteurs et autres relais de commande.

          José

          Répondre
          1. Rinty

            Pour dépasser les 10 capteurs rien de plus simple. il suffit de créer un fichier wire.conf dans
            /etc/modprobe.d/
            Vous écrivez à l’intérieur « options wire max_slave_count=20 »

            Et Hop la limite passe à 20…

            Pour les alim j’ai fait le choix d’alimenter tous mes capteurs par une alimentation externe.
            J’utilise une alim type rail DIN (compteur EDF) qui me fourni du 5V et j’utilise un convertisseur à faible chute LF33CV pour produire du 3.3V.
            voir montage du site ci dessous :
            http://www.sonelec-musique.com/electronique_realisations_alim_simple_012.html

  10. José

    @ Rinty

    Et dire que je cherche cette info depuis des mois…. 🙂 et que dire de la simplicité de la réponse.
    Le 11ème capteur apparaît maintenant sans problème.

    Merci beaucoup,

    Répondre
  11. David

    Bonjour,

    Je viens de recevoir une nouvelle sonde. Et là ça fonctionne !
    La précédente était bien HS.
    Pour répondre à José, je l’avais testé en 5v.
    Je peux vous dire qu’aujourd’hui à 19h22 à Montpellier il y a quelques nuages mais 33,5°C sur la terrasse 🙂

    Merci à tous pour votre aide.

    David

    Répondre
    1. José

      Bonjour David,

      Désolé pour cette réponse tardive mais je suis très heureux de voir que tout fonctionne désormais.
      Je me demande si je ne vais pas modifier mon installation pour connaitre le niveau d’eau qui tombe chaque jours 🙂 dans l’Allier.

      Bonne continuation.

      Répondre
  12. Rinty

    Pour connaitre l’eau qui tombe dans l’Allier ou ailleurs, je pense recycler un ancien pluviomètre électronique. En y regardant de plus prêt il s’agit d’un capteur à effet de hall.
    Il suffit donc d’un daemon qui compte les impulsions du capteur, de calculer le volume du godet et mesurer la surface du disque qui capte la pluie…

    Répondre
    1. José

      Chouette projet en perspective.
      De mon coté, il faut que je termine mon projet domotique avant de me lancer dans autre chose.
      Car là tout de suite sur mon bureau c’est le chantier.

      Répondre
  13. Rinty

    Sur le mien, je mesure la température, hygrométrie, pression atmosphérique, consommation EDF. Je pilote ma vmc mes volets et prises électriques. Je termine le panneau de contrôle avec écran LCD, led témoin et bouton de contrôle et il me reste à optimiser l’interface web. Si cela t’intéresse mail moi je te communiquerais mes travaux et recherches.

    Répondre
    1. Philippe

      Bonsoir Rinty, je suis intéressé par ton installation. Peux-tu svp m’expliquer comment tu as réalisé ton montage et aussi côté logiciel.
      Je débute avec la Framboise et dans la domotique.

      Dans l’attente de te lire, je te remercie d’avance. Bonne soirée, Philippe

      Répondre
      1. rinty

        bonsoir.

        Le sujet est vaste et le chemin long et tortueux.
        Le plus simple est que tu me poses les questions précises auxquelles tu cherches des réponses en privé (rinty35 [at] laposte.net) Les questions allant aller bien au delà de l’article qui porte notre échange….

        Pour faire général, j’ai du commencer mon projet domotique il y a un an. Un sujet en apportant un autre celui ci c’est étoffé.
        Coté soft, j’ai fait pas mal de reuse de ce que j’ai trouvé sur internet en y apportant mes réflexions et remarques. je travaille du coup beaucoup en python, un peu de shell et de C pour la partie daemon. Pour la partie interface c’est du php et une base mysql.

        Sur le hard, des sondes DS18B20 mais aussi des DHT22, des relais 5v/220v, un émetteur 433Mhz, une BMP085 pour la pression, un circuit sur base optocoupleur pour la conso edf, des puces mcp23017 pour augmenter le nombre de GPIO, un LCD HD44780, LED, Boutons….

        Et bientôt un DAC MCP3008 pour intégrer des capteurs de luminosités…

        Voilà dans les grandes lignes

        Répondre
        1. Sébastien

          Bonjour actuellement en cours de création d’une ligne 1-wire via un bus DS9490R connecté à mon RPI, je rencontre des soucis de montage pour les sondes DHT22.
          Auriez-vous svp un schéma sûr de montage pour ce circuit avec 3 DHT22 et des 8 DS18B20 ?
          D’avance merci.

          Répondre
  14. FREDO

    Bonjour,
    j’ai un petit problème sur mon raspberry pi model B et des capteurs DS18B20.
    Ça fonction très bien si je n’ai que 1 capteur relier au +3,3V du Raspberry.
    mais dés que j’en branche 1 supplémentaire, je n’arrive plus à lire correctement les informations des capteurs, je pers les capteurs et ils reviennent parfois !!! il y a des températures de 85°C souvent !!!
    j’ai sur mon Raspberry une picamera et une carte extension PiFace.
    J’ai mis une résistance de pullup de 4,7K au +3,3V du raspbeery.
    Je ne vois pas ou viens le probléme !!
    on dirait un conflit lors de la lecture des capteurs !!
    merci de votre aide
    FREDO

    Répondre
    1. Rinty

      Quel est ta longueur de câble ?

      Pour ma part avec 11 capteurs utilisant chacun une vingtaine de mètre de câble j’utilise une 1,5K de mémoire. j’ai eu ce genre de phénomène avec une résistance de pullup trop grande.

      Répondre
      1. FREDO

        pour l’instant j’utilise que la longueur de câble des capteurs étanches, mais quand ça marchera, je voudrais mettre 35m sur un des capteurs.

        Répondre
      2. LAMIRAULT

        Bonjour, je viens de trouver le problème, ça viens de ma carte d’extension PiFace, qui doit perturbé mes capteurs, j’ai essayé sans le piFace et ça marche impeccable, avec 3 capteurs et 1 résistance de 4,7K. Je vais recherché le problème qui perturbe sur le PiFace , peu-être l’alimentation un peu juste . Je vous tiendrais au courant
        merci de vos aides

        Répondre
  15. Cédric

    Bonjour

    Merci pour cet article qui m’a bien inspiré 🙂
    Toutefois je rencontre un petit problème … Une fois tout branché, le Raspberry refuse de démarrer.
    Si je débranche la masse, il démarre nickel ..
    J’utilise une breadboard avec un T-Cobbler de Adafruit et une sonde DS18B20 étanche

    Une idée ?

    Merci

    Répondre
  16. Superbebert

    Bonjour,
    Merci pour ce tutoriel si claire et concis.
    J’ai cependant un petit bémol à apporter non pas sur le contenu mais sur la sonde elle même. En effet, la sonde me donne comme vous ~22.8°C à la première lecture et vu comme je claque des dents n’ayant pas mis le chauffage ce n’est clairement pas la température ambiante.
    Bon j’avoue, j’ai aussi mis un thermomètre à coté qui lui m’indique 17°C.
    Savez vous si il y a un étalonnage à faire ou si la différence de température est linéaire par rapport à la réalité ?
    merci
    PS: je ne suis vraisemblablement pas le seul à avoir eu ce genre de problème ici

    Répondre
    1. Dodutils

      Juste pour info, la sonde DS18B20 est vraiment très sensible, le simple fait de respirer devant modifie le résultat, et si le capteur est situé au dessus du RasPi la simple convection de chaleur générée par son processeur suffit à faire varier le résultat.

      Répondre
        1. Dodutils

          Quand je reçois des DS18B20 je les met tous en parallèle sur une plaque de test et je compare les valeurs pour vérifier qu’ils sont tous bien calibrés mais jusqu’à présent je n’ai jamais eu de grosses variations.

          Répondre
  17. Jean-Philippe

    Bonjour,

    Je souhaite brancher directement ma sonde sur les GPIO du raspberry, sans passer par de breadborad. (j’en ai pas encore :s)

    Première question, est-ce possible?

    Deuxème question, la résistance est-elle obligatoire pour que la sonde fonctionne?

    Je l’ai branché normalement, mais dans /sys/bus/w1/devices, je n’ai que w1_bus_master1, j’en déduis que ma sonde n’est pas détécté.

    Si résistance oblige, alors le problème vient de là, et je dois attendre d’en recevoir. Sinon help me please.

    Cordialement

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      oui bien sur c’est possible de brancher directement sur le GPIO
      Il faudra généralement souder sur les picots du connecteur ce qui va rendre par la suite l’utilsation de connecteurs femelles plus difficile (ils auront du mal à rentrer !). C’est pour cela que j’ai utilisé un connecteur femelle sur lequel j’ai soudé les fils…
      et oui la résistance de tirage est obligatoire pour le fonctionnement du DS18B20
      Sur http://www.raspiblog.fr/index.php/camera/ la température de la pièce est mesurée avec le DS18B20 illustrant cet article (ça tourne 24/24 7/7 depuis presque 1 an…)
      Cordialement
      François

      Répondre
      1. Jean-Philippe

        Merci François pour cette réponse rapide.

        J’ai bien fais la soudure comme il faut, j’utilise des cables wires femelle femelle pour relier la sonde sur les GPIOs, donc de ce coté là pas de soucis.

        Je vais commander un lot de résistance de différents calibres et normalement ça devrait fonctionner.

        Je reviendrais vers vous pour mon projet d’alarme avec détéction d’ouverture de porte avec un capteur de hall.

        Bon dimanche à vous

        Répondre
  18. François MOCQ Auteur de l’article

    Bonjour
    ci-dessous une remarque de Kleph au sujet de la lecture de température en ligne de commande :

    Du coup, une modeste contribution en retour sur un UUOC (Useless Use Of Cat) qui m’a sauté aux yeux en lisant l’article 🙂
    cat | grep « t= » | awk -F « t= » ‘{print $2/1000}’
    Ça peut se faire en awk directement, comme ça on enlève deux appels inutiles à des binaires externes et ça simplifie légèrement l’écriture.
    cat wl_slave | grep « t= » | awk -F « t= » ‘{print $2/1000}’
    devient :
    awk -F « t= » ‘/t=/ {print $2/1000}’ wl_slave
    soit avec le find :
    find /sys/bus/w1/devices/ -name « 28-* » -exec awk -F « t= » ‘/t=/ {print $2/1000}’ ‘{}’/w1_slave \;

    Rapidement, la syntaxe de awk est la suivante :
    awk ‘/regexp_de_selection_des_lignes_a_traiter/ {bloc de traitement}’ fichier d_entree

    Merci Kleph pour ce retour sur l’utilisation de awk!
    Cordialement
    François

    Répondre
  19. François

    Bonjour,
    Je me lance dans la domotique avec un raspberry…et je teste avec jeedom (qui me semble assez aisé d’utilisation, moi qui vient du monde mac. Je commence également à tester les sondes DS18B20. Une 1ere a bien fonctionné et je voudrais avoir une interface clean, d’où jeedom. Quelqu’un a-t-il déjà essayer la configuration jeedom/DS18B20 ? Avec quel résultat (et quelle manip) ?
    Au passage, j’ai vu des photos de la sonde directement connectée dans une prise RJ45 : discret et y a plus qu’à la branchée su le réseau filaire de la maison (ancien téléphonique).

    Répondre
  20. isitom

    Bonjour,
    j’ai moi aussi quelques soucis de longueur de câble + parasites avec mes DS18B20.
    Je viens d’essayer l’alimentation en 5V indépendante du bus des capteurs. Ça a l’air d’améliorer les choses, mais il subsiste de temps en temps des erreurs de conversion.
    J’ai pris une alim 2A avec 2 USB, une pour le rasp et une pour le bus DS18B20 sur breadbord.
    J’essaierai un peu plus tard avec des longueurs plus importantes (40m) sur mon deuxième site (qui affiche dans syslog de nombreuses erreurs de conversion, plusieurs par minute)
    Ces erreurs ne gênent pas mes enregistrements.

    Vous pouvez suivre mes températures en direct ici : http://82.227.40.57/jpt/ws_temp_jd.html
    Pour afficher les temperatures dans le HTML? J’utilise les websockets.
    Tout est expliqué là http://82.227.40.57/public/ dans le readme.txt
    Isitom

    Répondre
    1. José

      Bonjour,

      C’est du super boulot, j’ai quelques pistes qui peuvent expliquer ces erreurs de lecture. Mais avant tout prenez connaissance du mail que je vous ai envoyé 🙂

      Si la fréquence de collecte des températures est égale au rafraichissement de la page, cela peut expliquer ce niveau d’erreur de lecture. Je suis certain qu’en dissociant la collecte et l’affichage cela améliorerait les choses.

      Votre script python de collecte renseigne un fichier txt par exemple si vous ne souhaitez pas utilisez de base de données. Votre page web utilise ce fichier pour l’affichage public. Ainsi on peut imaginer une collecte de température toutes les deux minutes et un rafraichissement de la page toutes les 5 secondes.

      Ensuite, sur de grande distance, il faut s’affranchir des plaques de tests qui parfois ne font pas très bien contact.
      Enfin, dissocier l’alimentation est une excellente chose.

      Bonne continuation.

      Répondre
      1. isitom

        Bonjour José
        Merci pour tes conseils.
        Pour le rafraichissement: ttes les 5s c’est le programme python qui collecte les infos et qui fabrique un tableau html qu’il envoie à la page via le websocket.Les températures sont donc quasi en temps réel. A coté de cela, un autre programme enregistre les températures dans un fichier tous les quarts d’heure. Est-ce que tu crois qu’il peut y avoir un télescopage de toutes ces demandes d’enregistrement et de visu de pages ? C’est compliqué à cerner. J’ai effectivement remarqué que des erreurs apparaissaient lorsque j’accédais à ma page html. Mais au fait, comment ça marche le 1wire ? Quand les fichiers 28-0000xxx sont ils mis à jour. A la demande ou systématiquement toutes les x (milli)secondes ?
        Pour les parasites: je veux bien croire que les breadbords c’est pas top et les dominos non plus. Mais comment fais-tu avec tes 60m ? Est-ce que tu as tout soudé ?
        Dernière question : pour alimenter en 5V, j’ai coupé un câble USB (à 1,5€), et j’ai récupéré le fil rouge 5V et noir GND. Mais que faire de la tresse du câble ? Je suis nul en électronique et confonds terre, masse, neutre, moins .

        Tu me parles d’un mail. J’en ai reçu un effectivement, mais il contient ton commentaire uniquement ??

        Répondre
        1. José

          Désolé pour cette réponse tardive 🙂

          Je reprends tes points un à un.
          Oui il est possible que les collectes successives engendrent ces erreurs de lectures. Il faut prendre en compte le temps de mesure des capteurs associée à la longueur du câble. A mon sens, la mesure temps réel n’est pas très utile, une collecte toutes les 5 minutes serait plus stable. De plus, l’affichage de la page doit être dissociée de la collecte. Je faisais comme toi au début pour une dizaine de capteurs. Le résultat était long à l’affichage et clairsemé d’erreur.

          Cette page te décrira le fonctionnement du bus one wire http://www.planete-domotique.com/blog/2009/06/20/le-bus-1-wire/ et surtout le temps de lecture.

          Mon montage est en étoile. J’utilise du câble réseau et du câble téléphonique. Tout est soudé ou branché sur des borniers. Il faut savoir que la longueur du bus one wire est égal à la somme des branches de l’étoile. De ce fait la distance peut vite devenir importante.

          Ton alimentation me semble bien, j’ai fait comme toi également. Je ne suis pas un spécialiste et d’autres répondront mieux. Il est possible que la tresse serve d’antiparasites ??

          Enfin, je t’ai envoyé un mail expéditeur eyesathome[at]free[point]fr sur l’adresse mail qui figure en contact de ta page de température. Je t’alerte sur certains points.
          @ +

          Répondre
          1. Dodutils

            Pour info j’en suis à 2.800.000 de relevés (1 par minute) pour chacune des mes 11 sondes en mode parasite réparties sur 70m de câble depuis plusieurs années et mon taux d’échec est de 0.3%

          2. isitom

            Je vois que ton installation est très propre. La mienne, au bout de 1 an est encore au stade fil volant sur breadbord.
            J’ai eu sur ce site quelques informations sur les temps de conversion. https://jahislove314.wordpress.com/2014/07/16/installation-dun-capteur-de-temperature-1-wire-ds18b20-sur-raspberry-partie-1
            Est-ce que quelqu’un peut confirmer que par défaut on est en 12 bits avec un temps de conversion de 750ms. Avec 10 capteurs, ça fait pas mal de secondes !
            Y-a-t’il un moyen simple de travailler en 9 bits (temps de conversion=93,75ms ?
            Je renouvelle ma demande, sur quoi faut-il brancher la tresse de mon alim 5V ? sur gnd ? ou sur rien ?
            Enfin, je précise que malgré les erreurs de conversion, mes applis marchent très bien (sans valeurs erronées), aussi bien en visualisation qu’en enregistrement.
            Je n’ai pas compris pour le mail. Je reçois bien un mail de notification de commentaire, mais qui contient exactement ce qu’il y a dans le commentaire.

        2. José

          Dans mon mail , je te disais de retirer tes adresses de ton fichier xml.
          Leur indication présente, à mon sens, beaucoup de risque. 🙂

          La tresse ne se branche nulle part.

          Pour les conversions, je laisse le soin aux spécialistes pour te répondre.

          Répondre
          1. isitom

            Bonjour José,
            Je n’ai reçu aucun mail de eyesathome[at]free[point]fr, et je ne vois pas de quelle adresse tu parles sur ma page températures.
            Merci pour toutes tes réponses et tes conseils.
            J’allais te répondre que les adresses dans le fichier domo.xml, dans le répertoire /public étaient bidons, mais je m’aperçois avec stupeur que le fichier xml de mon répertoire de production était également visible, ainsi que tous les autres fichiers.
            J’avais mis par principe tous les répertoires de www en chmod 505 et les fichiers en 404. Mais je crois que 400 serait mieux. Avis des spécialistes sécurité ??
            Isitom

  21. Marc

    Salut,

    Merci pour toutes ces infos.

    J’ai moi-même trois DS18B20 sur le W-1, mais je rencontre un petit souci.
    En effet, ils ne sont pas toujours détectés ! Quand je lance le script, ça fonctionne… puis des fois ça bugue, les capteurs ne sont pas détectés.
    A noter qu’il ne me faisait pas ça les jours passés.

    Ces trois DS18B20 sont au bout de trois cables de longueur ~4m. J’ai une rés. de 4.7K en pull up. Est-ce que vous pensez que diminuer la valeur de la résistance supprimerait ce problème de « reconnaissance irrégulière » ?

    Merci !

    Répondre
    1. Rinty35

      Salut,
      Je pense en effet que baisser ta pull-up devrait aider à stabiliser le fonctionnement.

      J’ai eu le même problème.
      De mémoire aujourd’hui avec 11DS18B20 toutes à une vingtaine de mettre de la framboise ma pull-up doit être à 1,5K

      Répondre
  22. Dodutils

    Pour ceux que ça intéresse j’ai trouvé un petit schéma pour brancher du 1-Wire sur port série en mode parasite et non-parasite :

    http://martybugs.net/electronics/tempsensor/hardware.cgi

    Le montage utilise 3 diodes en plus de la résistance il se base sur le circuit « officiel » de Maxim (qui produit les composants 1-Wire) qui fourni aussi les connecteurs série DS9097U et USB DS9490R basés sur ce schéma.

    Je suppose que les diodes stabilisent le flux électrique.

    http://www.maximintegrated.com/en/products/ibutton/products/readers.cfm

    Répondre
  23. Dodutils

    Pour ceux qui veulent faire du 1-Wire pensez à jetter un oeil au système de fichier OWFS qui permet de lire les sondes comme un lit un chemin au travers d’un /mnt/ et du coup de pouvoir les interroger avec un simple cat /mnt/1wire/id_de_la_sonde

    Répondre
    1. Cédric

      Bonjour,
      merci pour la solution, j’ai mis à jour et perdu mon bus aussi.
      J’ai donc passé 1h à chercher le problème et heureusement j’avais un raspberry pi non à jour ce qui m’a permis de comprendre l’origine du problème !

      Répondre
    2. isitom

      Bonjour,
      Je suis également passé à la dernière version Raspbian (Wheezy du 16/02/2015), et là miracle!
      Je n’ai plus aucune erreur de conversion avec mes DS18B20.
      Soit elles ne sont plus loguées (dans syslog et messages), soit ils ont fait une sérieuse amélioration dans la gestion du bus OneWire.
      Avez vous constaté le même phénomène ?

      Répondre
    3. JCC

      Merci !
      J’ai passé quelques heures à refaire mes montages, à tester le Pi au métrix avant de tomber sur ce post :p Je pensais que le gpio avait prit un coup ou que mes sondes étaient HS.

      Répondre
    4. Cyrille

      Bonjour,

      J’ai modifié le fichier « /boot/config.txt » pour prendre en compte le 1-wire.
      Simplement ajouté la ligne suivante : « dtoverlay=w1-gpio »

      Sans préciser donc le port GPIO utilisé.
      Quel est donc l’intérêt/l’avantage de rajouter le numéro de port ?

      Cyrille

      Répondre
      1. François MOCQ Auteur de l’article

        Bonjour Cyrille
        Par défaut l’overlay utilise le port GPIO 4
        Si c’est le port que vous utilisez pas besoin de préciser le N° de port
        Il est possible de modifier le port en ajoutant le paramètre gpiopin
        Cordialement
        François

        Répondre
  24. Teddy

    Bonjour,

    je voulais savoir quelle type de technologie était utilisé dans ce capteur (thermistance, thermocouple, sonde à résistance de platine) ?

    Merci

    une réponse avant ce soir si possible, pour projet BTS

    Répondre
  25. Eddie

    Bonjour,

    Je farfouille mais je trouve pas ce que je veux. Ou je m’y prend mal…
    Je voudrais rajouter des conditions à ma sonde. C’est à dire que c’est soit la LED verte ou rouge qui s’allume en fonction de la plage de t°.

    Si un tuto avec montage en french est dispo je suis preneur… 🙂

    Cordialement,

    Rahan

    Répondre
      1. François MOCQ Auteur de l’article

        Bonjour
        un bout de programme en python?
        C’est quoi le cahier des charges ? Par exemple moins de 20°C LED verte / plus de 20°C LED rouge?
        Posez la question sur le forum, vous aurez plus de réponses 😉
        Cordialement
        François

        Répondre
        1. Eddie

          Bonjour François,

          Je m’étais permis d’écrire ici car j’ai vu beaucoup d’échange technique. Donc pourquoi pas moi 😛 Mais en effet c’est plus (+) le rôle du forum.

          Oui sinon pour répondre a la question, c’est tout a fait ça.

          Merci

          Répondre
  26. ben08fr

    Merci pour ce tutos

    Je viens de le faire sur mon pi2 ça marche super !

    Bien sur il faut modifier le config.txt comme indiquer par Jerome
    J’ai brancher un servos qui m’indique la température (comme un gros compteur de voiture). ça sert a rien mais ça m’éclate

    Par contre je voudrais savoir comment brancher plusieurs DS18B20. En parallèle par rapport au schéma je suppose ? et comment recalculer la résistance si je connecte plusieurs sonde ?

    Répondre
  27. Ping : TFM – UNIR

  28. nicolas

    Bonjour
    Je sollicite un avis pour reussir un branchement :

    j’ai 3 sondes ds18B20 installées dans la maison. connectées en mode maitre esclaves sur le GPIO 4 avec une resistance de 4,7K : ca fonctionne

    J’ai une sonde DS18B20 installée dans la piscine sur un cable de 50 mettre avec une resitance bcp plus faible. Si je l’installe sur le gpio 4 : ca fonctionne

    Je pose donc la question suivante : comment faire pour mettre les 4 sondes en meme temps sachant que j’ai essayé de mettre les 3 de la maison sur le gpio 4 et celle de la piscine sur un autre GPIO : seules celles du gpio4 sont reconnues

    merci de votre aide

    Nicolas

    Répondre
    1. José

      Bonsoir Nicolas,

      L’idée est d’interconnecter toutes les sondes sur le même bus. Pour ma part, je supprimerai la résistance de 4,7k des sondes de la maison pour ne laisser que la plus faible du montage de la piscine (avec les pertes du câble ça devrait le faire). Les quatre sondes seraient ainsi interconnectés sur le GPIO 4.

      Pour une meilleure stabilité, il faudrait peut être prévoir une alimentation de 5v différente du rasp.

      Jo

      Répondre
  29. Ping : DS18B20 Raspberry pi - Mesurer la température avec une sonde numérique - Slog

  30. Ping : Informatique, informatique et un poil de mécanique | Col Blanc et Mains Grasses

  31. christophe27

    Bonjour
    Problème identique a celui de marc du 08/02/2015
    Malgré toutes ces infos sur la valeur de la résistance….. je nage.
    Je ne lis pas l’anglais et découvre l’électronique…..
    J’ai donc réalisé ce montage (pas en parasite) avec 60 M de câble téléphone et 3 sonde 18b20
    j’ai « adapté » le scrit pyhton de adafruit pour lire les sondes toute les minute( qui a bien fonctionné avant que je rallonge les fils)…..puis aléatoirement une sonde n’est plus détectée…
    quel valeur de résistance me conseillerez-vous?
    je doit ajouter 4 sondes et 50 M de fils quel seras alors la valeur de la résistance?
    existe t-il un moyen (avec un voltemêtre ou autre..)pour savoir si la résistance est adaptée?
    merci

    Répondre
  32. Ping : Mesure de température 1-wire DS18B20 ave...

  33. Ping : [RPi] Ajout d’une sonde de température ambiante

  34. nico974

    Bonjour, je tenais dabord a vous felicitez pour la qualite du contenu de votre site.
    Une ame charitable pourrait meclairer a propos du branchement de ses sondes en serie? Mon niveau est tres nul en electronique. A chaque sonde me faut il une resistance? Si quelquun aurait un schema je suis preneur. Merci beaucoup

    Répondre
    1. Dodutils

      Bonjour, pour le réseau 1-Wire il ne faut qu’une seule résistance, cependant on a le choix pour ce qui est de la forme du réseau, soit on fait un gros fil de xx mètres de long et on y « accroche » des DS18B20, soit on fait « pendre » des DS18B20 en ce sens que le fil qui part du brin principal peut faire 3 mètres par exemple, soit on part en étoile avec un brin de 20m par exemple puis on l’éclate en 4 brins de 10m qui partirons dans plusieurs direction avec un DS18B20 au bout de chaque brin, en fait tout est possible à condition de respecter certains contraintes de distance et de longueur de brins, pour ma part la dizaine de sondes le long de 70m de câble tournent plutôt bien depuis plusieurs années avec 0,5% d’erreur de lecture sur 2.5 millions de relevés par sonde (1 par minute).

      Pour plus d’infos sur la façon de construire un réseau 1-Wire fiable voir le tutoriel sur le site du fabricant Maxim :

      https://www.maximintegrated.com/en/app-notes/index.mvp/id/148

      Répondre
  35. Nico974

    Merci des infos, jai reussit a monter tous sa et je peux vous dire que les cours d’elec au lycee me manque lol allez il me reste plus qu’a mettre en place la supervision.

    Bonne journee et merci encore

    Répondre
  36. chaby

    Bonjour, et félicitation pour votre travail sur ce site et la clarté des explications.
    Je voudrais faire un montage pour relever les températures sur une distance de 100m, avec 10 capteurs, a priori une alimentation externe s’impose, avez vous une recommandatation (marque, …) pour cette alim?

    D’avance merci

    Répondre
      1. chaby

        Merci pour l’info!
        Le but c’est de remonté des informations de températures sur la chaufferie de ma copro, donc j’ai besoin d’un fil qui parte de chez moi, serpentant dans les caves et qui à des sondes à l’extémité, et surement sur d’autres points le long du chemin.
        D’ou mes questions :
        le mode parasite est il utile dans mon cas? Car je ne vois pas trop l’intérêt (noob inside)
        Tu dis que tu as 70m de cable, l’alimentation des sondes à l’aide du raspberry j’en déduit que te suffit donc?

        Répondre
        1. Dodutils

          La mode parasite est pratique car cela « économise » un fil et du coup tu as juste besoin d’une paire au lieu de 3 fils et pour ma part je passe par un petit adaptateur USB/1Wire DR9490R car quand j’ai démarré mon réseau 1-wire il y a 7 ans le Raspi n’existait pas encore il est donc relié à un simple PC de type Netbook EEE-PC qui me sert de serveur domotique 24/24 depuis tout ce temps sans faillir 😉

          Répondre
  37. Henri

    Bonjour,

    Merci pour votre tuto !

    Il m’a bien aidé, même si au final ma solution diffère un peu en étant basé sur un Arduino, car je n’ai pas réussi à mettre des DS18B20-PAR sur le Raspberry.

    Maintenant je surveille les températures de 2 salles machines (corridor froid, chaud, faux-plancher, faux-plafond) via 62 sondes DS18B20-PAR et 4 sondes DHT22 branchées en parallèles sur au total 156m de câble RJ45, et une résistance que j’ai du baisser à 470 Ω.

    Pas de jalousie, vive la framboise, l’Arduino et les gens qui, comme vous, partagent 😉
    Cordialement, Henri

    Répondre
  38. hornet02

    bonjours je veux moi aussi me lancé dans le projet de mettre des sondes et ainsi gerer mon chauffage par contre comment installé vous vos sonde moi je recherche des petits boitiers pour un peu les caché .
    comment avez vous dissimulé vos sondes?

    Répondre
    1. Laurent

      Bonjour,
      Essayez une recherche sur Ali Express, c’est bien mieux réglementé qu’Ebay pour l’acheteur protection de ce dernier pendant 60 à 90 jours mini avec remboursement total en cas de litige.
      En fait Ali Express ne paie le vendeur qu’une fois la transaction confirmée reçue par l’acheteur.
      C’est de vécu !
      Il faut lire les retours d’acheteurs, Google translate est un mai parfois 🙂
      Langue de Shakespeare obligatoire par contre mais la plupart du temps le port est gratuit vers la France même pour des trucs à moins de 1€, ça aussi c’est du vécu !

      Répondre
  39. chaby

    Bonjour, les tests que j’ai fait fonctionnent \o/
    J’aurais une question vous utilisez quoi comme câble pour relier le raspberry pi aux sonde, du RJ45 blindé ça vaut le coup (sachant que j’ai 150m de câble), ou un « simple » cable 3 fils (genre cable électrique) convient parfaitement?

    D’avance merci

    Répondre
  40. Laurent

    Bonjour,

    Très bon tuto comme d’hab., félicitation pour cette passion suivie pour la framboise, et merci pour tout ces tuyaux, exemples et code gentiment partagés

    Répondre
  41. Laurent

    Bonjour ou bonsoir selon,
    Ah les insomnies parfois ……
    Petite précision à apporter pour ceux qui, comme moi, sont sur une version de kernel récente utilisant le Device Tree. Je suis en 4.1.13v7+ depuis un récent dist-upgrade.
    Il faut impérativement ajouter la ligne suivante dans le fichier config.txt de la partition fat32 de boot :
    dtoverlay=w1-gpio,gpiopin=4
    Vous pouvez éditer directement ce fichier config.txt par la commande :
    sudo nano /boot/config.txt

    J’ai galéré 2 bonnes heures hier soir à chercher à comprendre pourquoi le gpio présent et le wiringpi en fonctionnement je n’avais aucune sonde esclave reconnue. Tout vérifié, câbles, paquetages, modules.
    Bref au bout du compte, ma femme me regardant de travers, donc je suis allé au dodo.

    Et en me levant, là, j’ai fureté et trouvé un tuto qui le précisait, et bien la sonde marche maintenant. Avant nada le gpio ne devait peut être pas adresser la bonne pin comme Master je pense;

    Voilà, si ça peut aider.

    Répondre
  42. Laurent

    Et merci François ça marche nickel à part ce petit détail du à un kernel récent et une profonde modification sur les noyaux.

    Euhhhh l’est pas à l’heure d’hiver ton serveur , il est presque 4h là 🙂

    Répondre
      1. Laurent

        Bonjour François,

        Laisses tomber à part mettre la grouille dans nos hormoges cette heure d’été/d’hiver ne sert à rien de toutes façons.
        Moi ça fait belle burettes que j’ai repris le soleil comme mentor 🙂

        Bonne journée.

        Répondre
  43. Norbert

    Bonjour,

    Bravo pour le tuto, j’avoue que j’ai ramé parce que la modification du config.txt n’est pas dans le tuto initial. J’étais à deux doigts de tout renvoyé aux Chinois quand j’ai effectivement découvert qu’il faut absolument « dtoverlay=w1-gpio ».
    Ne faudrait-il pas corriger la page initialel? J’avoue que je ne lis pas systématiquement les commentaires car les remarques sont souvent intégrés dans le texte initial.

    Salutations,

    Répondre
  44. clot

    Bonsoir

    je me posais la question de la compatibilité entre un DS18B20

    et un module RTC en I2C ( GPIO4)

    Vais-je rencontrer des difficultés?

    Crdlmt

    Répondre
      1. clot

        Tout à fait,

        Je cherche juste à optimiser mes achats pour un projet de nature professionnelle
        ( remise en état de convecteurs dont les afficheurs sont HS et ne sont plus fabriqués)

        Belle journée à tous

        Répondre
        1. Dodutils

          Si c’est un problème d’afficheur sur des convecteurs, un RasPi me semble un peu excessif, pourquoi ne pas utiliser un Arduino ou un ESP8266 à moins que l’idée soit d’équiper chaque convecteur d’une sonde DS18B20 et toutes les relier à un RasPi en filaire ?

          Répondre
  45. Ping : Avec Cayenne, pimentez la gestion de votre Raspberry Pi | Framboise 314, le Raspberry Pi à la sauce française….

  46. Dodutils

    Avec ces intempéries ma cave a été inondée, j’ai 1 mètre d’eau mais le truc intéressant c’est que mon fil 1 wire qui fait 70m de long et parcours toute la maison jusqu’à la cave a résisté à 1m sous l’eau ?!?

    Et pourtant en arrivant dans la cave le câble fait un raccord via un simple domino pour aller plonger un DS18B20 dans le congélateur (la porte du coffre du congélateur ferme sans problème sur la paire de fils extraite d’un câble Ethernet).

    A 3H00 du matin quelque chose a fait sauter les plombs de la cave, mon onduleur m’envoi une alerte mais je ne suis pas du tout sur place, à 11H45 le congélateur qui tenait toujours sur sa réserve de froid voit sa température grimper d’un seul coup… pourquoi donc ? et bien la montée des eaux a fini par l’atteindre (il était surélevé mais pas à 1 mètre) ce qui a fait flotter et basculer. L’eau étant un très bon conducteur thermique elle a « aspiré » le froid des parois du congélateur.

    Enfin bref, j’avais encore jamais vu un système électrique dénudé réussir à fonctionner sous l’eau 😉

    Répondre
  47. izmirak

    Bonjour, j’ai vu votre article il y a 3 semaine et à cause de vous j’ai décidé de me lancer…………………
    Matériel reçu, soft installé , impeccable en suivant vos tutos.
    Je suis novice dans le raspberry et j’explore tant bien que mal les différents menus.
    Mon projet et d’afficher ma centrale double flux sur un graphique et de pouvoir y lire les 4 températures importantes.
    Domoticz mais il est nécessaire de calculer le rendement de l’installation par des multiplication et soustraction de ces 4 températures. Je n’ai pas trouvé ces opérations basiques dans domoticz.
    Avez vous une idée?

    Répondre
  48. chevalier

    Bonjour
    j’ai suivi votre tuto
    lorsque je fais
    pi@raspiblog ~ $ cd /sys/bus/w1/devices
    pi@raspiblog /sys/bus/w1/devices $ ls
    je n’ai rien dans ce répertoire
    pouvez vous m’aider
    cordialement
    pierre chevalier

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Pierre
      difficile de voir d’où ça peut venir avec aussi peu d’éléments
      vous êtes sous Jessie? en mode graphique ? si oui avez vous activé le 1-Wire depuis la fenêtre de configuration ?
      cordialement
      François

      Répondre
  49. chevalier pierre

    Bonsoir François
    merci de bien vouloir m’aider
    mon raspberry est sous rasbian jessie
    j’utilise PuTTY et VNC
    je n’avais pas activé 1-wire
    sudo nano /boot/config.txt
    dtoverlay=w1-gpio,gpiopin=4
    le gpio 4 est donc forcé!!!
    comment activé 1-wire à partir de la fenètre de configuration
    je réessaye demain matin et je vous tiens au courant
    cordialement
    Pierre

    Répondre
    1. José

      Bonsoir,
      Je pense que François parle de la fenêtre de configuration accessible au moyen de la commande sudo raspi-config puis choix 9 « Advanced options » puis choix A9 1-Wire.

      Répondre
  50. chevalier pierre

    Re Bonsoir François
    j’avais un peu de temps
    j’ai fait les corrections
    tout fonctionne correctement
    j’obtiens la température de la pièce
    j’ai en projet de récupérer la température dans une pièce de le transmettre au raspberry qui va l’analyser et en fonction des résultats, agir sur ma chaudière pour déclencher la mise en route (contact sec)
    avez vous une idée?
    je suis un informaticien à la retraite qui essaye de combiné électronique et informatique
    cordialement
    Pierre

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Pierre
      c’est un grand classique 😉 et très bien pour démarrer avec le RasPi : un capteur et une sortie
      le capteur c’est fait. Un bout de programme en Python par exemple et vous pourrez coller un relais lorsque la température dépasse la valeur de consigne.
      Au début la consigne peut être fixe… après elle devient réglable avec un commutateur rotatif par ex.
      et pourquoi pas un afficheur LCD à 2 lignes pour afficher la consigne, la temp. lue et l’état de la chaudière 🙂
      vous voyez il y a plein de possibilités !
      pour la carte relais vous trouverez des cartes opto couplées http://www.ebay.it/itm/Module-4-relais-opto-4-relay-module-10A-250V-5-3-3V-contacteurs-Pi-ESP32-BS10173-/281565751660 qui permettent de commuter sans mettre les sorties du GPIO en danger.
      Pesez à mettre un peu d’hystérésis pour éviter des mises en route/arrêt trop rapprochées par ex. Mise en route à 19 °C arrêt à 20°C
      Bon amusement
      Cordialement
      François

      ps merci José oui soit raspi-config soit en passant par l’interface graphique Menu > Préférences > configuration > interfaces

      Répondre
  51. chevalier pierre

    Bonjour François
    merci pour ces renseignements, je vais y regarder
    comment est alimenté le fichier w1_slave, à quelle cadence ?
    je viens de l’éditer il m’affiche 19.687
    j’ai mis 2 thermostats classiques à coté
    l’un m’affiche 20.9 et l’autre 21.2
    pourquoi une telle différence avec le DS18B20
    Cordialement
    Pierre

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Pierre
      d’après ses caractéristiques :
      Caractéristiques du DS18B20 Capteur de Température Numérique – 1-Wire:

      Mesure les températures de -55°C à +125°C (-67°F à +257°F)
      ± 0,5°C Précision de -10°C à +85°C

      Ce qui veut dire que la précision est de l’ordre du degré…
      ça doit être du même ordre pour les autres appareils 🙂 voire pire ?
      certains thermostats travaillent avec une CTN et ce n’est pas forcément le meilleur système 🙁
      Admettons que ce soit la même précision : un thermostat indique 20.9°C la temp. doit être entre 20.4°C et 21.4°C
      Le DS18B20 indique environ 19.7°C donc une température entre 19.2 et 20.2 °c
      on pourrait situer la temp. vers 20.3 °C
      Apres il y a aussi la justesse de la mesure. Si vous n’avez pas de thermomètre étalon, difficile de dire lequel de vos trois mesures est la plus juste ….
      Dernière chose la fidélité, avec le DS18B20 elle est assurée et pour la même température vous aurez la même mesure.
      On peut corriger par programme si vous constatez un décalage mais il fut être certain de la mesure…
      A mon avis… fiez vous plutôt au DS18B20 !
      cordialement
      François

      Répondre
      1. chevalier pierre

        bonsoir François
        merci pour ces précisions
        j’essaye d’avancer dans mon projet
        comment peut on tester l’emetteur recepteur RF233 avec le raspberry, afin de voir si les composants sont bons?
        cordialement
        Pierre

        Répondre
  52. chevalier pierre

    Bonjour François
    j’ai oublié
    où peut on se procurer des composants rapidement
    avec Amazon il faut attendre environ 1 semaine
    Cordialement
    Pierre

    Répondre
  53. chevalier pierre

    Bonsoir François
    je suis bien en panne
    suite à vos conseils, j’avais réussi à identifié mon DS18B20 qui avait cette forme 28-0316364ee3ff
    vous disiez que c’était un numéro unique au monde
    bizarrement, j’ai maintenant dans le répertoire cd /sys/bus/w1/devices, ces informations
    pi@raspberrypi:/etc/raspberry_control $ cd /sys/bus/w1/devices
    pi@raspberrypi:/sys/bus/w1/devices $ ls -l
    total 0
    lrwxrwxrwx 1 root root 0 juin 29 22:51 00-680000000000 -> ../../../devices/w1_bus_master1/00-680000000000
    lrwxrwxrwx 1 root root 0 juin 29 22:50 00-a80000000000 -> ../../../devices/w1_bus_master1/00-a80000000000
    lrwxrwxrwx 1 root root 0 juin 29 22:51 00-e80000000000 -> ../../../devices/w1_bus_master1/00-e80000000000
    lrwxrwxrwx 1 root root 0 juin 29 22:31 w1_bus_master1 -> ../../../devices/w1_bus_master1
    pi@raspberrypi:/sys/bus/w1/devices $

    je ne retrouve plus mon 28-0316364ee3ff
    pouvez vous m’aider ?
    cordialement
    pierre

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour Pierre
      pas facile à distance
      tout ce que je peux vous conseiller c ‘est de reprendre depuis le début de vérifier scrupuleusement le câblage…
      Si votre capteur a fonctionné il n’y a pas de raison qu’il disparaisse comme ça
      entre temps avez vous déplacé le montage? redémarré le RasPi, modifié quoique ce soit dans le système? etc… à distance c’est difficile de savoir tout cela mais ce sont les fondamentaux de la maintenance
      cordialement
      François

      Répondre
  54. dicke

    Bjr, jespere que vous allez bien, je n’arrive pas a detecter mon capteur de temperature sur mon raspberry jai pourtant fai le meme cablage .cependant le capteur est different de celui presenté sur la fiche, c’est un e-block thermometer avec 2 cables interconectés a une petite carte. 2 fild en noir reliés representant la sonde et 3 autres fils (noir rouge blanc) representant les fils connectés sur le raspberry .
    merci de m’aider!

    Répondre
    1. François MOCQ Auteur de l’article

      bonjour
      bin… il faudrait savoir ce que c’est comme thermomètre pour vous aider eblock ? je ne connais pas vous n’avez pas une référence ou une doc? u lien vers le site sur lequel vous l’avez acheté ?
      le même cablage avec un capteur différent hmmmmm ????
      cordialement
      François

      Répondre
          1. dicke

            Bjr, Oui c’est exactement celui la . mais donc le materiel avec lequel il est connecté c’est un arduino oubien. je croyais que c’était un raspberry.
            donc je ne peux utiliser un numérique comme le votre?

  55. François MOCQ Auteur de l’article

    Bonjour
    effectivement c’est connecté sur un Arduino qui possède des entrées analogiques et peut donc recevoir les infos de ce capteur. Sur le Raspberry Pi les entrées sont uniquement digitales (0 ou 1) le bus 1-wire dont parle cet article est un bus numérique. Le capteur envoie la température sous forme de bits codés.
    Votre capteur sort une tension variable en fonction de la température.
    C’est donc incompatible.
    Soit vous connectez votre capteur à un Arduino, soit vous intercalez un convertisseur analogique => numérique entre votre capteur et le Raspberry Pi en respectant les contraintes de tension (l’Arduino fonctionne en 5v et le Raspberry Pi en 3,3 volts !
    Enfin si ce capteur peut être changé, procurez vous un DS18B20 qui s’adapte nativement au Raspberry Pi 🙂
    cordialement
    François

    Répondre
    1. dicke

      D’accord j’ai meme un rasPi qui possede un pin 5V (modele B+) .
      ou pourait trouver un adaptateur analog => num ou pourait-je avoir un lieu pour savoir a quoi sa ressemble.
      merci vraiment pour l’explication.

      Répondre
      1. François MOCQ Auteur de l’article

        bonjour
        bin oui, tous les Raspberry Pi ont une broche 5V… mais c’est une alim rien à voir avec une entrée ou une sortie… Après si vous ne savez pas ce qu’est un convertisseur Analogique > Numérique, je vous déconseille de vous lancer dans l’aventure… Il faudrait acquérir les notions de bas avant, si vous grillez les étapes vous allez pester en disant que le Raspberry Pi c’est de la m…. alors qu’en fait il vous manque les bases pour l’utiliser. Un Raspberry Pi ou un Arduino ce n’est pas une tablette qu’on branche et qu’on utilise. C’est un outil pour apprendre et pour développer ses connaissances.
        Je dis toujours : « Avant de vous lancer dans un projet de tondeuse à gazon guidée par GPS avec évitement d’obstacles à laser et retour vidéo, apprenez déjà à allumer une LED 🙂 « …
        Enfin, vous faites comme vous voulez, ce n’est que mon avis…
        cordialement
        François

        Répondre
  56. dicke

    bjr! j’ai fait de l’electro je sais bien ce que c’est un convertisseur analog > num c’etait pr voir a quoi ressemble celui qui est adapté au thermo au cas où. mais j’ai pas mal galèrer avec le RPi.
    merci de votre aide c’est gentil.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      il n’y a pas de réponse toute faite
      ça dépend des caractéristiques de votre module
      il y a des cartes adafruit par exemple avec des CAN
      mais il faut connaitre les caractéristiques du signal que vous envoyez
      et… lire les docs
      désolé je ne peux pas en dire plus avec les infos que vous donnez
      cordialement
      François

      Répondre
      1. dicke

        Bjr en fait j’ai une étape des travaux ou je doit récupérer la température a partir de la sonde et l’afficher sur un écran lcd 1602.je me suit retrouvé coincé maintenant avec cette thermo analog et je n’arrive âs aussi a afficher un message quelconque sur le lcd (il ya que la luminosité et le contraste qui marche) bien vrai que j’ai suivi un tuto pdf avec le code et le branchement et tout!!

        Dicke!

        Répondre
        1. François MOCQ Auteur de l’article

          Bonjour
          une nouvelle fois je ne peux vraiment pas répondre à votre question (il n’y en a pas d’ailleurs) mais LCD1602 est une appellation générique pour un afficheur LCD comportant 2 lignes de 16 caractères. Ce qui importe c’est l’interface… bus parallèle, I2C, SPI ? on revient sur le problème que vous avez eu avec le thermomètre… vous confondez la fonction et le signal. Je pense que si vous avez des bases en électro (électronique, électrotechnique?) vous vous lancez dans des projets pour lesquels suivre un « tuto pdf » ne suffit pas. Il faut aussi vérifier que le matériel correspond à celui qui est utilisé dans le tuto, lire les docs…. Mais c’est vrai que lire les docs est un travail ingrat et puis… celui qui a fait le tuto l’a déjà fait, non ? Voir la remarque de Dodutils : Et Internet ça sert à quoi ? 😉
          On veut bien vous aider mais il faut avoir déjà fait vous même un minimum de chemin et fournir le minimum d’infos pour qu’on sache ce que vous avez fait. La ref exacte du LCD, le tuto suivi ???
          Par exemple j’ai un afficheur LCD1602 équipé d’un équivalent intégré d’Arduino qui se pilote avec…2 fils
          Encore une fois je reviens sur ma tondeuse automatisée mais… j’ai l’impression que vous vous êtes lancé dans un projet sans avoir les bases de départ. Ces bases vous ne les acquerrez pas en suivant un tuto mais en bossant par vous même pour comprendre comment ça fonctionne. Sinon ça « tombe en marche » et on ne sait pas pourquoi
          cordialement
          François

          Répondre
  57. Ping : La Saga Blink : Un Raspberry pour faire clignoter une LED ! | Framboise 314, le Raspberry Pi à la sauce française….

  58. Ping : Raspberry PI - ofort | Pearltrees

  59. Michel

    Bonjour,
    impossible de faire fonctionner ma sonde DS18B20P sur ma nouvelle RASPBERRY 3 ModelB
    Cette dernière fontionnait très bien sur une ancienne version de RPI.
    Pourriez-vous m’aider?
    merci

    Répondre
  60. higgins

    bonjour, comment paramétrer l’alerte email de munin ?
    J’ai parcourus différents site et c’est toujours le même exemple qui n’est pas du tout documenté et explicite !

    merci d’avance

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      bin mon domaine c’est plus le Raspberry Pi (matos et prog de base)
      je ne peux pas connaitre toutes les applis qui tournent dessus, il y en a des centaines
      je pense que les utilisateurs du forum sont plus pointus et spécialisés.
      Le forum est géré par une équipe qui gère et modère, je n’interviens pratiquement pas, ils font ça très bien :)… on ne peut pas être partout 😀
      Si tu as une réponse -et une solution- ce serait sympa d’ajouter l’info dans les commentaires pour les autres utilisateurs de munin
      bonne journée
      cordialement
      François

      Répondre
  61. Schneider

    Bonjour, J’ai monté un réseau de sondes sur un raspberry et tout semble fonctionner sauf qu’au bout d’un certain temps (2 à 3 jours) le répertoire du 1wire contient des id de sondes farfelues qui changent sans arrrêt. Le montage est en étoile, une résistance de 4,7KO avec le 3,3V et l’alimentation sur le 5V. En général la situation se rétablie en coupant l’alimentation des sondes (5V) ce qui doit provoquer un reset des sondes. Une idée sur les causes possibles ?
    Merci d’avance
    Cordialement

    Répondre
  62. Francky

    Bonjour,

    J’utilise 4 sondes DS18B20. Pour réguler la température d’un liquide je n’en interroge qu’une mais les quatres sont connectées pour une évolution du projet par la suite. Je chauffe le liquide à l’aide d’un élément chauffant controller par PWM. Tout se passe bien sauf que de temps à autre les répertoires devices ne s’affiche plus comme si la RPi avait perdu les sondes. Tant que je ne déconnecte pas les sondes pour les reconnecter ensuite, la RPi ne les trouve pas.
    J’ai fait des tests en déconnectant la pin 4 (clock/data) pour déconnecter les sondes pendant un fonctionnement normal et en les reconnectant pour provoquer la même erreur. Cependant, dans ce dernier cas les répertoires ne sont pas perdus par la RPi et à la reconnexion elle les retrouve quasiment tout de suite.
    J’ai aussi fait le test en mettant la pin 4 à la masse. Idem les répertoires ne sont pas perdu et quand je la remet sur les sondes RPi les retrouve tout de suite.
    Les sondes ne sont pas montées en mode parasite.

    Quelqu’un peut-il m’aider à résoudre mon problème, svp ?

    Merci d’avance

    Cordialement

    Répondre
    1. Francky

      Bonjour,
      J’ai finalement contourné mon problème en alimentant les sondes via un port GPIO. Cela me permet couper l’alimentation des sondes si des valeurs aberrantes sont ovbservées. En générale, en attendant environ 20s puis réalimentant, les sondes donnent à nouveau des valeurs normales. Si ce n’est pas le cas je recommence l’opération. Il faut aussi attendre un peu juste après la réalimentation des sondes.

      Voilà

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.