Das die D-Angabe nicht funktioniert liegt wahrscheinlich an der Einstellung „board: esp32dev“. Das ist eine allgemeine Einstellung für mehrere ESP32 Board-Typen. Wenn du unter PlatformIO Registry eine genauer Boardangabe findest, welche speziell zu Deinem Developementboard passt (z.B. „board : nodemcu-32s“), dann ist die D-Angabe vielleicht möglich. Wenn man es nicht genau weiß, dann nimmt man „board: esp32dev“ (Ich hab bei meinen zwei Projekten mit “board: esp32dev” auch nur GPIO-Angaben verwendet).
Ich würde auf jeden Fall den 4,7k Widerstand einbauen. Der interne Pull-Up Widerstand ist soweit ich mich erinnern kann 10K Ohm oder höher. In mehreren Dokumenten wird darauf hingewiesen, dass der interne Pull-Up Widerstand normalerweise nicht ausreicht. Hinzu kommt, nicht alle ESP32 Pins und nicht alle Developementboards unterstützen Pull-Ups.
Ein Mitglied hier im Forum (hab den Namen leider nicht mehr) hat bei sich folgende Werte für den Widerstand ermittelt beim Anschluss von mehreren Sensoren:
5VDC
1x Sensor = 4,7kOhm
2x Sensor = 4,7kOhm
3x Sensor = 3,3kOhm
4x Sensor = 3,3kOhm
5x Sensor = 2,7kOhm
6x Sensor = 2,7kOhm
7x Sensor = 1,0kOhm
8x Sensor = 1,0kOhm
9x Sensor = 0.680kOhm
10x Sensor = 0.680kOhm