Comme vous l’avez peut-être déjà lu sur mon blog, j’utilise une sonde DS18B20 connectée à mon Raspberry Pi pour connaître la température ambiante.
Il y a quelques jours, lors d’une mise à jour (janvier 2015) sudo apt-get upgrade
, je me suis aperçu que ma sonde ne renvoyait plus aucune donnée.
Concrètement, le dossier /sys/bus/w1/devices/ était vide au lieu de contenir un dossier portant le numéro de ma sonde (28-00000583d4a2
) renfermant toutes les informations y afférant.
Après quelques recherches, j’ai trouvé ces fils de discussion qui m’ont apporté la solution :
http://www.raspberrypi.org/forums/viewtopic.php?t=98407&p=689094
http://www.raspberrypi.org/forums/viewtopic.php?p=675658#p675658
On y apprend que depuis la sortie du RPi 2 Model B, le kernel a été mis à jours vers la version 3.18 qui apportes quelques changements dans l’organisation de l’arborescence des périphériques.
Pour résoudre ces problèmes, il suffit d’ajouter une ligne dans le fichier /boot/config.txt
.
$ sudo nano /boot/config.txt
Et on ajoute cette ligne à la fin du fichier :
dtoverlay=w1-gpio
Ceci fonctionne si le fil data (jaune, bleu ou blanc selon le modèle) est connecté sur le GPIO 4, le port par défaut.
Si non, le forum indique :
If you require the external pullup pin, use:
dtoverlay=w1-gpio-pullup,gpiopin=<x>,extpullup=<y>
Otherwise use:
dtoverlay=w1-gpio,gpiopin=<x>
(where <x> and <y> are GPIO pins, obviously).
If you are using the parasitic power (power over data, 2-wire) mode, add « ,pullup=1 » (or « ,pullup=on »)
On entend par « GPIO pins », le numéro du port GPIO et non le numéro de la pin.
Dans mon cas :
dtoverlay=w1-gpio,gpiopin=4
On est sur la pin « 7 » du RPi, mais sur le GPIO « 4 ». On doit indiquer gpiopin=4
.
10 ans ago ·
Merci beaucoup ! je mettait en place cette solution, apres avoir de part 3 fois refait mon montage je suis tombé sur cet article et pof ! ca marche a présent !
10 ans ago ·
Super ! 😉
Tu utilises aussi une sonde DS18B20 ou une autre ?