DS18B20 with Photon [SOLVED]

Yeah sorry ScruffR but it's about two days that I tried to do a simple thing, so get the temperature from a DS18B20 sensor with the cute photon board but I encoutered issues. Now I move on and I just tried a simple example with the OneWire.h (v 2.0.1) library from the Particle web IDE.

And with that, I get a 127 degrees temp... Could be the sensor ? Is it better to use analog sensor like the TMP36 ?

/*
Use this sketch to read the temperature from 1-Wire devices
you have attached to your Particle device (core, p0, p1, photon, electron)

Temperature is read from: DS18S20, DS18B20, DS1822, DS2438

I/O setup:
These made it easy to just 'plug in' my 18B20

D3 - 1-wire ground, or just use regular pin and comment out below.
D4 - 1-wire signal, 2K-10K resistor to D5 (3v3)
D5 - 1-wire power, ditto ground comment.

A pull-up resistor is required on the signal line. The spec calls for a 4.7K.
I have used 1K-10K depending on the bus configuration and what I had out on the
bench. If you are powering the device, they all work. If you are using parasitic
power it gets more picky about the value.

*/

#include "DS18.h"

DS18 sensor(D4);

void setup() {
Serial.begin(9600);
// Set up 'power' pins, comment out if not used!
//pinMode(D3, OUTPUT);
//pinMode(D5, OUTPUT);
//digitalWrite(D3, LOW);
//digitalWrite(D5, HIGH);
}

void loop() {
// Read the next available 1-Wire temperature sensor
if (sensor.read()) {
// Do something cool with the temperature
Serial.printf("Temperature %.2f C %.2f F ", sensor.celsius(), sensor.fahrenheit());
Particle.publish("temperature", String(sensor.celsius()), PRIVATE);

// Additional info useful while debugging
printDebugInfo();

// If sensor.read() didn't return true you can try again later
// This next block helps debug what's wrong.
// It's not needed for the sensor to work properly
} else {
// Once all sensors have been read you'll get searchDone() == true
// Next time read() is called the first sensor is read again
if (sensor.searchDone()) {
Serial.println("No more addresses.");
// Avoid excessive printing when no sensors are connected
delay(250);

// Something went wrong
} else {
  printDebugInfo();
}

}
Serial.println();
delay(15601000); //get the data every 15mn.
}

void printDebugInfo() {
// If there's an electrical error on the 1-Wire bus you'll get a CRC error
// Just ignore the temperature measurement and try again
if (sensor.crcError()) {
Serial.print("CRC Error ");
}

// Print the sensor type
const char *type;
switch(sensor.type()) {
case WIRE_DS1820: type = "DS1820"; break;
case WIRE_DS18B20: type = "DS18B20"; break;
case WIRE_DS1822: type = "DS1822"; break;
case WIRE_DS2438: type = "DS2438"; break;
default: type = "UNKNOWN"; break;
}
Serial.print(type);

// Print the ROM (sensor type and unique ID)
uint8_t addr[8];
sensor.addr(addr);
Serial.printf(
" ROM=%02X%02X%02X%02X%02X%02X%02X%02X",
addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], addr[6], addr[7]
);

// Print the raw sensor data
uint8_t data[9];
sensor.data(data);
Serial.printf(
" data=%02X%02X%02X%02X%02X%02X%02X%02X%02X",
data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8]
);
}

As you can see on the image below, the Onewire.h library is include and in the code, it's the DS18.h that it is used. I dont really understand how the libraries works, if you have to include all the files or if you can use just a little piece of the library.