I've been trying to find a way to get two or more Arduino's to communicate with each other over long distances.
My situation is a farm house 1200' from a barn and another 300' to a "shop" I'd like to be able to have an Arduino in each building talking with each other. We buried telephone cable between all three buildings, the cable was meant to be buried and is standard telephone cable. I believe the cable contains three twisted pairs with no shield (we are only using one pair).
I'm avoiding wireless and even WIFI networks at the moment, hoping there might be a more basic way.
I really do not need any bandwidth. I'd like to be able to monitor and set temperatures in the both buildings, control a couple of relays in each building and have the ability hook up other senors down the road, smoke and heat sensors etc..
I've done some reading on RS485, I'll do some more on "current loop" as I've never heard that term before.
I'd be happy to follow the NMEA sentence format used in the marine industry if you think it would work over that distance? Maybe I should keep it simpler however.
That shield would be a fine starting point.
Connect one to each end of the wire with an arduino; send a simple test message from to another receive it, and return a response, confirm the wiring is all good. Then play with faster data rates, start creating more complex messages for whatever your need is.
If you also have a power line then you could give ethernet-over-mains a try. It might be overkill for what you need but doesn't cost a lot and is available off the shelf, and also gives you almost infinite room for growth for the other features you might want to add including non-Arduino ones such as web cams.
"Current loop" simply means that you have a transistor controlled by the sending device with a resistor to limit the current (probably supplied by 12V or more) and at the other end, an opto-isolator whose LED is fed from the line and output transistor with pull-up, feeds into the receiving device. It is minimally different from simply connecting an output and ground to the line and at the other end, the line into an input via another transistor.
The limitation is distortion of the voltage and currents due to capacitance on the line. The opto-isolator prevents problems from "ground" voltage differentials. RS-485 uses differential transmission to counter both of these problems.
RS485 also allows master & slave to communicate over the same pair of wires.
I suppose current loop could be made to do the same, with an opto on both ends and each end agreeing to only transmit when appropriate.