There are many ways to communicate with remote Arduinos. I have found that many of them hit a slightly higher price point than what I would like. Also, ethernet shields (and wifi dito?) consume many valuable hardware pins. I will describe how to communicate host to Arduino using commercially available wireless serial ports. They are cheap(ish) and only use the rx/tx pins. The drawback is that the air-protocol isn't encrypted so I wouldn't use it for sensitive applications. I use it to control lighting. I would be more impressed than offended if a neighbour hacked my indoor lighting. Serial ports (even wireless) are designed for point to point communication. It is possible to use in one-to many or other constellations but certaing design consideration have to be taken. My Arduino library referenced in step 5 supports one-to many.
The described project is for one-way or two-way communication using (i. e. transciever). If you know you will only send commands "blindly" you can attach a transmitter to the PC end and a receiver to the Arduino. Those modules are really cheap.
Step 1: What You Need
- USB serial adapter
- Two or more Wireless RS232 modules (e. g. EWRF 3022)
- Arduino. It's a Nano in the picture but any model should due.
- A gadget box
- Soldering equipment
- Basic Arduino skills
Step 2: Attach the USB Module to the Transciever
The VBUS connector on the USB module provides +5v for the transciever. Cross rx/tx lines. See pictures.
Step 3: Fit the Modules in the Box
For the PC-end I added a small enclosure. Drill a hole for the antenna and dremel an opening for the USB socket.
Step 4: Attach the Second Transciever to the Arduino
Attach vcc, gnd and rx/tx (crossed) of the transciever module to the Arduino
Step 5: Load the Software
Flash the Arduino sketch of choice, which uses serial communication with a PC.
If you want to write your own interaction you may want to check my CmdCallBack library out. The library makes it easy to link commands with parameter with callback functions in the sketch. I might make a separate Instructable about that.