I'm planning an Arduino system that consists of several Arduino boards. The maximum distance between the boards is about 50 meters. I want to send basic data between these, like short strings or integers. I know I could send data through ethernet cables but that requires an ethernet shield or the Arduino Ethernet board that doubles the costs. Is there a low budget way I could connect the boards using only the most basic boards (like Uno) and some other components but not a full shield?
|
There are two categories i can think of to classify comminucation features of the Arduino boards: Between 2 devices:
Between more than 2 devices
There are other methods available, but these listed only require a minimum of external hardware. For distance ratings, see http://forum.arduino.cc/index.php?topic=82937.0 and http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-distance.html These data rates are directly controlled in Serial and can be tweaked in many others. |
||||
|
For long distance wired communication, look at RS-485.
You can use the MAX485 chip. It's pretty easy to work with but there's a good library as well: |
|||||||||||||
|
Freakduino makes some Arduino boards with built in wireless. Their long range wireless is 900 MHz and their shorter range is 2.4GHz. I think they are actually XBee radios and for programming you would use a library called chibiArduino, which is available (and documented) on the Freakduino website. When communicating wirelessly with another radio you can use Broadcast or specify a radio by it's ID which is a value you need to set in the EEPROM of the Freakduino. Taken directly from the Freakduino site:
|
||||
|
Like you said, Ethernet shields are expensive, but you don't have to use the shield. Check out the enc28j60 for wired networking, or the ESP8266 if you would prefer wireless. Both are about $4USD. I am using the ESP8266 now and have about 8 devices talking to each other and a Raspberry Pi. It is a really great little chip! I cannot speak personally to the ENC28j60, as they are still sitting in the package on my desk. |
|||
|
You could use a Ethernet breakout board ($2 at Sparkfun). This lets you use the Ethernet cables but you don't have to use a full TCP/IP protocol, instead you can just hook up data pins to the breakout board, use the Ethernet to connect them, and then have them talk using serial. I use this quite a bit to place one wire sensors further from the Arduino for a strong yet cheap connection. |
|||
|