Vous êtes des AS ! 
@manumanu :
Alors là ca fonctionne à merveille !
Mon capteur me donne une vraie valeur, parfait m'sieur 
JE vais repartir bosser là, mais je me pencherai sur le problème exacte !
A plus tard et merci encore c'est du boulot et ta assuré 
manumanu:
Ca y est j'ai ciblé le problème dans le programme d'origine.
J'ai intégré des commentaire retourné au moniteur (et ajouté les accolades {} au conditionnements) => Voir le code.
La fonction nous retourne FAUX a deux endroit ==> A l'identification et a la recherche des capteurs.
Donc j'ai comme valeur de température 0.00c°
Je continue.
#include <OneWire.h> // Inclusion de la librairie OneWire
#define DS18B20 0x28 // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 9 // Broche utilisée pour le bus 1-Wire
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
boolean unefois = false;
boolean unefois1 = false;
OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds
//KY019 5V relay module
int relay = 7; // relay turns trigger signal - active high;
// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp) {
byte data[9], addr[8];
// data : Données lues depuis le scratchpad
// addr : adresse du module 1-Wire détecté
if (!ds.search(addr)) { // Recherche un module 1-Wire
ds.reset_search(); // Réinitialise la recherche de module
Serial.println("Recherche faux");
Serial.println();
return false; // Retourne une erreur
}
if (OneWire::crc8(addr, 7) != addr[7]){ // Vérifie que l'adresse a été correctement reçue
Serial.print("crc faux");
Serial.println();
return false; // Si le message est corrompu on retourne une erreur
}
if (addr[0] != DS18B20){ // Vérifie qu'il s'agit bien d'un DS18B20
Serial.print("Identite faux");
Serial.println();
return false; // Si ce n'est pas le cas on retourne une erreur
}
ds.reset(); // On reset le bus 1-Wire
ds.select(addr); // On sélectionne le DS18B20
ds.write(0x44, 1); // On lance une prise de mesure de température
delay(800); // Et on attend la fin de la mesure
ds.reset(); // On reset le bus 1-Wire
ds.select(addr); // On sélectionne le DS18B20
ds.write(0xBE); // On envoie une demande de lecture du scratchpad
for (byte i = 0; i < 9; i++) // On lit le scratchpad
data[i] = ds.read(); // Et on stock les octets reçus
// Calcul de la température en degré Celsius
*temp = ((data[1] << 8) | data[0]) * 0.0625;
// Pas d'erreur
return true;
}
// setup()
void setup() {
Serial.begin(9600); // Initialisation du port série
lcd.begin(16, 2); //Taille LCD
pinMode(6, OUTPUT); // LED VERTE
pinMode(8, OUTPUT); // LED ROUGE
pinMode(relay, OUTPUT); // Relais sortie
}
// loop()
void loop() {
if (!unefois) {
//Affichage TEXTE (Nom du produit) une seule fois
lcd.setCursor(0, 0);
lcd.print(" * X-Fresh *");
lcd.setCursor(0, 1);
lcd.print(" Version : 1.0");
delay(4000);
lcd.clear();
unefois = true;
}
if (!unefois1) {
//Affichage TEXTE (Démarrage) une seule fois
lcd.setCursor(0, 0);
lcd.print("Bonjour !");
lcd.setCursor(0, 1);
lcd.print(" Demarrage...");
delay(1000);
lcd.clear();
unefois1 = true;
}
float temp;
// Lit la température ambiante à ~1Hz
bool cr = getTemperature(&temp);
// Affiche la température
Serial.print("Temperature : ");
Serial.print(temp);
Serial.write(176); // caractère °
Serial.write('C');
Serial.println();
if (!cr)
return; // !!!!!!! On ne fait pas le traitement
const float consigne=25;
const float hysteresis=0.5;
// Action au-dela de 25°C enclanche relais
if (temp >= consigne) { //Conditionnement de mise en service.
lcd.setCursor(0, 0);
lcd.write("Arrosage actif");
digitalWrite(8, LOW); // VERTE ETEINTE
digitalWrite(6, HIGH); // ROUGE ALLUMEE
digitalWrite(relay, HIGH); // MOTEUR ALLUME
}
if (temp <= consigne - hysteresis) { //Conditionnement de mise hors service.
lcd.setCursor(0, 0);
lcd.write("Normal ");
//digitalWrite(relay, LOW); // MOTEUR ETEINT
digitalWrite(8, HIGH); // VERTE ALLUMEE
digitalWrite(6, LOW); // ROUGE ETEINTE
}
lcd.setCursor(0, 1);
lcd.print(temp);
lcd.print(" C ");
}