Okay based on the sensors you are using you have the following interfaces:
BMP180 - I²C
DS18B20 - Onewire
YL-83 - erm just a digital it rains / it doesn't rain pin? - or an analogue voltage output (how much does it rain)
For Onewire there is an application note available which describes the operation over long distances, I'm not entirely sure if that principle can be applied to the said sensor, but I guess 20 meter should be doable, they are able to get 200 meter out of that. It might be that you have to adapt the software or change the pull-up resistor to cope with the longer cable.
The digital output of the rain sensor should pose no problem, it has a high drive strength and as it is a simple high / low push pull output. Can't really tell what the limit of the cable length would be.
If you want to use the analog output of the rain sensor, things get tricky. Based on the best schematic ever, the analogue output is not buffered. Actually it's just a simple resistor divider formed by the 10kOhm resistor and whatever resistance the raindrops produce. To get that signal even remotely usable over the 20 meter you need at least an op-amp voltage follower. I don't have experience with this, someone else will have to tell you what would work best.
My approach would be to get a small microcontroller in there which would handle the analog digital conversion, also reading the value from the temperature sensor and then send the data back over the 20m cable using a low baudrate UART (4800 baud works fine over longer distances as well).
This was before I realized you won't actually place the BMP180 outside (or will you?), so I'll just leave it here as a bonus information...
I²C over a 20 meter twisted pair cable, I know it is possible if you really do messy stuff and bend the protocol to extremes. Don't do it. It's not supposed to cover that distances.
The main problem you are facing with these cable lengths is the capacitance of the cable will change the signals. As I²C and Onewire are both using pull-up resistors and open-drain transistors the capacitance of the bus is limited. For example the specification of I²C by NXP limits it to a maximum of 550pF.
Now a normal cable will have something around 120pF/m capacitance (I haven't tested that on an ethernet cable) so if you are lucky you could get maybe 3 to 4 meters without "special treatment".
If you want to place your I²C sensor there, I'd suggest to use a small microcontroller to read the sensor via I²C and send the data over the long wire using something more usable, like a low baudrate UART or even something differential for added noise immunity.