I'm pretty new to this whole thing so please excuse my lack of familiarity with terminology.

I'm looking to build two "buzzers" of sorts. One will live on the ground floor and the other will live on the fourth floor. There is wireless internet as well as wired internet available to connect the two.

This is the basic idea. I might put more frills in later. Both buzzers have one button and one LED. I want it so that once a buzzer's button is pressed, the LED lights on both buzzers will light up. Then, only when buzzer two's button is pressed, will the LED lights on both buzzers turn off.

I'm pretty tied up on the two Arduinos communicating with each other. Is it possible to do something like that?

  • My favourite way to link devices together is to use these XRF modules, which you can get on ebay for £12 or less with an antenna. They talk to each other over long distances (upto 1000m with wire antenna) using a configurable encrypted messaging system (AES128 if I remember correctly), and they work for me really well. Easy to attach better antennae to them as well :)
    – StampyCode
    Commented Mar 19, 2015 at 13:46

2 Answers 2



Communication speed is not a factor - you only have to transmit an on/off signal. The simplest method would be to run a 4-wire cable, like a telephone cable, between the two.

The wires would be

  1. GND
  2. 5V (maybe)
  3. Ground floor output -> fourth floor input
  4. Fourth floor output -> ground floor input

The steps are

  • Both wire 3 and 4 start LOW When ground floor button is pressed, ground floor led goes on, wire 3 is set HIGH.

  • Fourth floor is monitoring wire 3, when it goes HIGH, fourth floor led goes on, and wire 4 is set HIGH

  • Ground floor is monitoring wire 4, when it goes HIGH, ground floor led goes off, and wire 3 is set LOW

  • Fourth floor is monitoring wire 3, when it goes LOW, fourth floor led goes off, and wire 4 is set LOW

  • Ground floor is monitoring wire 4, when it goes LOW, it begins waiting for a button press again.

Wire 2 can be used for 5V (or 3.3V depending on the Arduino) so that one of the devices can be powered off the other.


The other option is to attach an RF transceiver to each Arduino, something like this would be good as it has 100m line-of-site range which you might need to get through 4 floors of concrete.


Start off with the simple wired method shown above. When it is working, connect wire 3 and 4 into the RX and TX pins and try to communicate using the serial port. Finally, move on to the wireless transceivers.


Benefits of a networked device:

  • Fairly fast because it has to be able to transfer large amounts of data
  • Can be compatible and used with computers, servers, and mobile devices. You might also only have to have one Arduino (if the second one would only be acting as a bridge between the protocol and the computer)
  • Why wouldn't you want to have a networked Arduino :)

So that rules out the protocols I2C, UART, and SPI. I find Bluetooth too hard to work with (it seems to have only a short range) using an Arduino. That leaves us with Wifi, wired network connection, and USB. USB would be best if you could run a short wire, but most USB peripherals aren't really designed to be used 100 feet away from the computer.

With ethernet and Wifi left, I'm going to advise you to go with a wired connection if possible. Benefits of keeping it wired:

  • Even faster (with lower latiencies)
  • Lower cost to interface with
  • More reliable than Wifi
  • No pesky Wifi passwords

tl;dr: Without a ton of info, wired internet (a.k.a. ethernet) seems to be the best choice. Other wireless options don't provide the distance you need and you (probably) can't run a wire with another protocol.

  • Remember that for attaching 2 like devices like Arduino you'll need a crossover cable.
    – Duncan C
    Commented Jul 24, 2014 at 0:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.