Communicate between Arduinos over 20 meters cable

I'm a bit stuck here.
There are cables in my house for a home alarm, and I can't use them for a lan/ethernet.
I want to communicate with a few other Arduinos.
I can connect one cable to another to get and finally for example to the garage. It's only 6 meters away, but it's 20 meters (or more) cable to get there.
The maximum distance is about 15 meters, and the maximum cable length could be 30 meters.
There are a number of different cables, sometimes with 3, or 4 or 6 wires.

The cables are sometimes running along power cables or phone lines.
So I need to protect against spikes, and I need a checksum to prevent false data.

The data is only short commands, or temperature readings and so.

  • With serial TTL-leve RX and TX, I need some collision detect, and I need 3 wires. But this is the most simple solution.
  • With 1-wire, I'm stuck with a fixed timing.
  • With I2C, I need to write something that is about 4kbit/s or less, and need 3 wires.
  • With 2.4GHz wireless, I doubt if they can do 15 meters indoors, and I have to find out how that works (never used it before).
  • Using 433MHz would be possible. But the home alarm is at 433MHz and I don't want to interfere with that.

What is the best option ?

Async over RS-485, needs 3 wires.


Rob

Thanks.
The MAX485 seems very common and cheap.
But I also need a ground wire ?

I forgot to mention that it is a single master (an Arduino + Ethernet shield) with a few slaves. And I want to send and receive with all slaves.

I'm also looking at 686MHz tranceivers.

The MAX485 seems very common and cheap.

Because RS-485 is the industry standard for this sort of thing.

But I also need a ground wire ?

Yes, unless you use isolated transceivers.

I forgot to mention that it is a single master (an Arduino + Ethernet shield) with a few slaves. And I want to send and receive with all slaves.

That's what RS-485 does, or a least that's what your protocol does over RS-485.

I assume the Ethernet is not for talking to the slaves? It could be but that drives the cost up a lot.


Rob

Graynomad:
I assume the Ethernet is not for talking to the slaves? It could be but that drives the cost up a lot.

Thanks for your answers.
Ethernet is only for the master. I have a webserver running with the website on SD card. It can show data from the Arduino and I can send commands to it. With a wifi-tablet to control it, is so much fun, that I want to control all Arduinos via that webserver.