ESP8266 can't detect DS18B20 Temperature Sensor

are pin D2 D4 etc defined? it depends on the Tools>Board selected
try the following code

// ESP8266 are D2 and D4 defined ???

// NO  -Tools>Board select Generic ESP8266 module
// YES -Tools>Board select NodeMCU 1.0 (ESP-12 Module)

void setup() {
  Serial.begin(115200);
  Serial.println("\n\nESP8266 D2 and D4");
  Serial.println(D2);
  Serial.println(D4);
}

void loop() {}

if compiled with Tools>Boards "Generic ESP8266 module" selected the following compile time errors are displayed

F:\Ardunio\Networking\WiFi\ESP8266\Pins_Defined\Pins_Defined.ino: In function 'void setup()':
F:\Ardunio\Networking\WiFi\ESP8266\Pins_Defined\Pins_Defined.ino:9:18: error: 'D2' was not declared in this scope
    9 |   Serial.println(D2);
      |                  ^~
F:\Ardunio\Networking\WiFi\ESP8266\Pins_Defined\Pins_Defined.ino:10:18: error: 'D4' was not declared in this scope
   10 |   Serial.println(D4);
      |                  ^~
exit status 1

Compilation error: 'D2' was not declared in this scope

if compiled with Tools>Boards "NodeMCU 1.0 (ESP-12 Module)" selected it compiles, links, uploads and runs - serial monitor displays

ESP8266 D2 and D4
4
2

I generally use GPIO numbers not D2, D4 etc