Global variables use 1944 bytes (94%) of dynamic memory, leaving 104 bytes for local variables. Maximum is 2048 bytes.
You do not have enough dynamic memory (ram) left on an UNO.
You can reduce the dynamic memory usage by using the F() macro for printing string literals, such as:
if (!bmp.begin()) Serial.println(F("BMP180 not found!"));
This stores the text in program memory instead of dynamic memory.
Use of String also uses a considerable amount of dynamic memory.