Bien basado en los sensores está utilizando tiene las siguientes interfaces:
BMP180 - I2C
DS18B20 - Onewire
YL-83 - mtc sólo digital llueve / no llueve pin? - o una salida de tensión analógica (¿cuánto es el de la lluvia)
Para Onewire hay una nota de aplicación disponible que describe la operación a través de largas distancias, no estoy del todo seguro de si ese principio se puede aplicar a dicho sensor, pero supongo que de 20 metros debe ser factible, que son capaces de llegar a los 200 metros. Podría ser que usted tiene que adaptar el software o cambiar la resistencia pull-up para hacer frente con el cable más largo.
La salida digital del sensor de lluvia no debe representar ningún problema, tiene un alto grado de unidad de la fuerza y como es una simple alta / baja de salida push-pull. Realmente no puede decir cuál es el límite de la longitud del cable sería.
Si desea utilizar la salida analógica del sensor de lluvia, las cosas se ponen difíciles. Basado en la mejor esquemático de siempre, la salida analógica no está guardado. En realidad es un simple divisor resistivo formado por la resistencia de 10kOhm y lo de la resistencia de las gotas de lluvia producir. Para conseguir que la señal incluso de forma remota utilizable sobre los 20 metros que necesita al menos un op-amp seguidor de voltaje. No tengo experiencia con esto, alguien tendrá que decirle lo que podría funcionar mejor.
Mi enfoque sería conseguir un microcontrolador pequeño en el que hay que manejar el analógico digital de conversión, también leer el valor del sensor de temperatura y, a continuación, enviar los datos sobre los 20m de cable con una baja tasa de baudios de la UART (4800 baudios funciona bien en distancias más largas).
Esto fue antes de que me di cuenta de que en realidad no coloque el BMP180 fuera (o si?), así que voy a dejarlo aquí como un bono de la información...
I2C a través de una de 20 metros de cable de par trenzado, sé que es posible, si usted realmente hacer cosas desordenadas y doblar el protocolo a los extremos. Que no lo haga. No se supone para cubrir las distancias.
El principal problema que se enfrenta con estas longitudes de cable es la capacitancia del cable que va a cambiar las señales. Como I2C y Onewire son tanto el uso de resistencias pull-up y de drenaje abierto de los transistores de la capacitancia del bus es limitado. Por ejemplo, la especificación de I2C por NXP la limita a un máximo de 550pF.
Ahora una normal de cable tendrá algo alrededor de 120pF/m capacitancia (yo no he probado que en un cable de ethernet) así que si tienes suerte, usted podría tener, quizás, de 3 a 4 metros sin "tratamiento especial".
Si usted quiere colocar su I2C sensor de ahí, me gustaría sugerir el uso de un microcontrolador pequeño para leer el sensor a través del I2C y enviar los datos a través del cable largo con algo más útil, como una baja velocidad en baudios de la UART o incluso algo diferencial para mayor inmunidad al ruido.