Sonde DS18b20 non reconnus

Bonjour a tous et a toute,

je suis nouveau dans le monde du raspberry et aussi sur le forum. Je viens vers vous car j’ai comme projet de faire un contrôleur pour aquarium.
Le premier module que je voudrais ajouter est, un contrôle de la température via une sonde étanche DS18b20.
Pour cela je me suis aider de ce tutoriel.
Sauf que arriver a la partie 3 du tuto quand je fais la commande : « cd /sys/bus/w1/devices » et « ls », il me trouve que le périphérique « w1_bus_master1 » et pas ma sonde.

Pouvez vous m’éclairer sur mon problème svp ?

PS: ma sonde chauffe beaucoup si je touche le bout (la partie métallique normalement immerger) je me brule pas sur que ce soit normale.

PS2: je peut prendre des photos de mon montage au besoin.

Merci d’avance.

Hello !

Tu es sur d’avoir connecté correctement ta sonde au GPIO? Vérifie ton montage, ta sonde ne doit pas chauffer (se serait un comble)

bonjour,

Après vérification je ne vois pas ou peut être le problème voici mon câblage.

après différent montage rien a faire toujours pas reconnus par la machine :frowning:

Coucou
Je pense qu’il va falloir tester avec une autre sonde
C’est comme tu dis pas normal
Essai aussi un autre gpio pour la pin data , sais on jamais !

Courage !

1 « J'aime »

Ça a l’air de le faire que on démarrage du raspberry, il est allumer depuis 2 jours du coup et la sonde est froide

Bonjour,

Attention, il faut mettre l’adresse de la sonde qui fait 64 bits pour la voir.

Sinon, rien n’apparaît.

Bonne journée,
Jean-Nono

Merci pour cette réponse Nathan Michael mais comment lui indiquer cette adresse et comment la savoir aussi ?

Bonjour Brumos,

J’ai un exemple pour Arduino :

/* Test des Sondes DS18B20 sur la Pin 6
Modif JNM du 17/08/2017
*/

#include <OneWire.h>
#include <DallasTemperature.h>
byte OneWirePin = 6; // sondes DS18B20 sur pin 6

OneWire oneWire(OneWirePin); // bus pour com avec les sondes
DallasTemperature sensors(&oneWire);
byte addr[8]; // pour reconnaissance adresses des sondes

// Déclaration des variables des sondes de temperature
float temp[10];
byte nbrSondes = 0; // 0 sonde au démarrage

// Relever les adresses des Sondes et les mettre dans le tableau
DeviceAddress Sonde0 = { 0x28, 0xFF, 0x2A, 0x85, 0xA6, 0x16, 0x03, 0xD6 }; //adresse propre à chaque sonde
DeviceAddress Sonde1 = { 0x28, 0xFF, 0x46, 0xA3, 0xA5, 0x16, 0x05, 0xA6 }; //
DeviceAddress Sonde2 = { 0x28, 0xFF, 0x05, 0x25, 0xA6, 0x16, 0x04, 0x6B }; //
DeviceAddress Sonde3 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //
DeviceAddress Sonde4 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //
DeviceAddress Sonde5 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //
DeviceAddress Sonde6 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //
DeviceAddress Sonde7 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //
DeviceAddress Sonde8 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //
DeviceAddress Sonde9 = { 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; //

// Initialisation
void setup()
{
Serial.begin(9600);
sensors.begin();
// Recherche le nombres de sondes disponible
nbrSondes = sensors.getDeviceCount();
Serial.println();
Serial.print(« Nombre de capteurs trouves sur le BUS = « );
Serial.println(nbrSondes);
Serial.println( » aux adresses: « );
for (byte s = 0; s <= nbrSondes; s++)
{
if (!oneWire.search(addr))
{
Serial.println(« Pas d’autres sondes trouvées. »);
oneWire.reset_search();
delay(250);
return;
}
Serial.print(« Sonde Numéro : « );
Serial.print(s);
Serial.print( » à l’adresse { »);
for (byte i = 0; i < 8; i++)
{
Serial.print(« 0x »);
Serial.print(addr[i], HEX);
if (i < 7)
{
Serial.print( », « );
}
}
Serial.println( »} »);
}
// Fixe la résolution des capteurs à 10 bits (choix entre 9 et 12)
sensors.setResolution(Sonde0, 10);
sensors.setResolution(Sonde1, 10);
sensors.setResolution(Sonde2, 10);
sensors.setResolution(Sonde3, 10);
sensors.setResolution(Sonde4, 10);
sensors.setResolution(Sonde5, 10);
sensors.setResolution(Sonde6, 10);
sensors.setResolution(Sonde7, 10);
sensors.setResolution(Sonde8, 10);
sensors.setResolution(Sonde9, 10);
Serial.println(« Fin du set up. »);
}

// Programme principale
void loop()
{
Serial.println();
Serial.println(« Lecture des temperatures en cours… »);
sensors.requestTemperatures();
temp[0] = printTemperature(Sonde0, 0);
temp[1] = printTemperature(Sonde1, 1);
temp[2] = printTemperature(Sonde2, 2);
temp[3] = printTemperature(Sonde3, 3);
temp[4] = printTemperature(Sonde4, 4);
temp[5] = printTemperature(Sonde5, 5);
temp[6] = printTemperature(Sonde6, 6);
temp[7] = printTemperature(Sonde7, 7);
temp[8] = printTemperature(Sonde8, 8);
temp[9] = printTemperature(Sonde9, 9);
delay(5000);
}

// Affichage des Températures
float printTemperature(DeviceAddress deviceAddress, byte cptSondes)
{
float tempC = sensors.getTempC(deviceAddress);//lecture des sondes
if (tempC == -127.00) //Vérifications si erreurs
{
if (cptSondes < nbrSondes)
{
Serial.print("Problème de sonde numéro : ");
Serial.println(cptSondes);
}
tempC = 0;
}
else //affichage temperature
{
Serial.print(« Sonde numéro : « );
Serial.print(cptSondes);
Serial.print( » mésuré à : « );
Serial.print(tempC);
Serial.println( » °C. »);
}
return tempC;
}

Celui-ci permet de lire 10 sondes…

On voit les adresse sur 64 bits.

Voir la doc du DS18B20 (datasheet) ou bien sur les sites Arduino qui explique bien mieux que le PI :frowning:

A bientôt,
Jean-Nono

Bonjour Jean-Nono,

merci pour ta piste de recherche je suis tomber en cherchant un peu sur un code basique qui permet de tester la broche si il y a une bien quelque chose de brancher dessus.

Le voici:

import RPi.GPIO as GPIO
import time

#configuration générale
GPIO.setmode(GPIO.BOARD);

#configuration des entrées/sorties
GPIO.setup(7, GPIO.IN);

#test de la broche
while True:

temp = GPIO.input(7);

print (temp);

time.sleep(1);

ce petit programme me retourne bien 1 quand mon capteur est brancher et 0 quand je le débranche.

j’en conclue que mon branchement doit être bon mais j’arrive pas a récupérer les donnée

PS: j’ai tenter l’exemple et d’autres exemples pour arduino mais j’ai l’impression des les librairie ne sont pas les même?

je perd espoir de faire mon projet ;(

coucou ici,

je pense que j’ai ecrit des bétises alors je dit que jai ecrit des bétises ^^

je vais juste dire que oui, tu ne dois pas orienter tes recherches vers arduino mais bien RPi.GPIO et bash ou python script !

Courage

Rebonjour, à tous/tes après d’autre recherche et test elle marche toujours pas je sèche totalement ;(

Coucou ,

je vais te faire tester (si tu lacceptes) un truc qui semblera ptete plus compliqué a la mise en place mais te rendra la tache milles fois plus simples a l’utilisation

Commences par trouver une nouvelle carte SD et installe la dernieres raspbian dessus
avant de charger dans ton RPI , crée un fichier ssh sans extention et colle le a la racine de ta carte SD
si tu tu connectes en wifi tu peux aussi créer un fichier wpa_supplicant.conf avec tes bonnes infos a la racine de ta SD aussi , lors du premier boot ces infos seront reprise et ton rpi se connectera directement a ton wifi et le ssh sera ouvert

(normalement tu dois connaitre l’ip que ton rpi va remonter, la meme que ta précédente carte SD en wifi, s’il a été connecté ces derniers jours)

Ensuite connectes toi en ssh sur ton rpi , et intalle la suite domotique jeedom

cd
sudo apt-get update
wget https://raw.githubusercontent.com/jeedom/core/stable/install/install.sh
sudo chmod +x install.sh
sudo ./install.sh -m monmotdepassesql -v 3.1

la c’est l’heure du café !
une fois l’install finie, reboot ton pi, puis cette fois ci , connectes toi via un navigateur a l’ip de ton rpi
Tadam te voila sur ton premier Jeedom, les id par defaut sont admin/admin (a changer rapidement)

Maintenant il faut que ton jeedom puisse piloter les GPIO de ton rpi, pour cela, rendez vous sur le market et récuperes le plugin jeedouino
Actives le, installes ses dépendances RPI.GPIO et surtout le pti patch a DS18B20

Maintenant il ne te reste plus qu’a créer dans Jeedouino « un equipement » (ton rpi) , lui préciser que sur la pin X est connecté la broche data de ta sonde.

Assures toi que ton « démon » pour cette sonde est bien demarré dans jeedouino et remet toi sur la page d’accueil de ton dashboard

HOP le tour est joué

courage
j’ai résumé énormément mais reste dispo pour des points de détails au besoin

Si tu arrives jusqu’a la , a savoir
installer jeedom, puis installer et configurer le plugin Jeedouino pour qu’il lise et affiche le retour de ta sonde, tu pourra vraiment faire tout et n’importe quoi avec tes rpi et directement via une interface web simple
Courage²