Kontrollier mal das Pin-Mapping für _deinen_ NodeMCU.
Ich hab hier welche (LOLIN), bei denen es etwas anders ist als bei vielen anderen, scheinbar.
Weiterhin kannst du die I2C-Adresse mal überprüfen- manche Module können mehr als eine Adresse haben.
Ob du Pullups brauchst, kann man nur raten: schau nach ob die auf dem Modul drauf sind-das ist bei vielen Modulen so, aber nicht bei allen.
Manche bauen die immer ein, vorsichtshalber- ich habs bisher fast nie getan.

Ausserdem sehe ich nicht, wo du eigentlich die Pins definierst, welche die Wire-Bibliothek benutzen soll...
Ich mache das bei mir so:
Wire.begin(D2, D1); // I2C Bus SDA=D2, SCL=D1 -> das funktioniert auch, mein NodeMcu spricht mit nem Arduino.

Ohne PullUps, übrigens...da aber mein Arduino ein ProMini in der 5V-Ausführung ist, hab ich Levelshifter dazwischen.
Läuft dein Sensor denn überhaupt mit 3V?