Give a go with Can Bus… Very simple and cheap to implement. Also very resilient for interference.
One good advantage over RS 485 is that it implements not only the physical layer but also the data link layer, offering retry, crc and frame format out-of-the-box.
In terms of hardware cost, RS485 only need a single line driver chip whereas CAN bus needs a line driver and interface chip.
I see CAN bus boards on Ebay for $3 including shipping. Assuming the chips are genuine, this is a tiny fraction of the price that Sparkfun and Seedstudio are charging. Not sure what’s going on there.
I suppose it depends on how much time you are prepared to spend looking at things on an oscilloscope, or whether you just need a relatively simple way of connecting devices. If you do your own data link layer, you can literally spend weeks (I did) looking at packet structures, byte stuffing algorithms, checksums and handshaking.
Timing on a half duplex RS485 link is critical. As Nick Gammon talks about in his RS485 notes, when transmitting you have to add hard coded delays so that all the bits have had a chance to leave the Tx UART before you put the RS485 driver into receive mode and the receiving device must delay sending a reply for a few microseconds to give the first device time to release the bus and switch into receive mode. None of the manufacturers application notes I’ve seen talk about this stuff. It’s very easy to create something that works OK on the bench works but is on the edge timing wise so has problems when you deploy in the field.
After many weeks I ended up with something that is very reliable, reasonably efficient, but not very flexible. I’ve learnt a lot along the way, but knowing what I know now I would’ve spent the time to investigate an off the shelf solution like Modbus even though it is very primitive in a 1970s kind of way.
As for future projects, after I found the cheap CAN bus adaptors on ebay I saw this video about CAN bus sniffing on Linux CAN Bus Sniffing with Linux - YouTube
so I’m now waiting for a USB2CAN adaptor and bunch of MCP2515 adaptors to arrive.