Electronic – arduino – the ‘best’ way of communicating with small microcontrollers/devices

arduinocommunicationmicrocontrollerwireless

var best = "simple & cheap";

I have a server in my apartment that I have an XBEE hooked up to. I use it to communicate with another XBEE plugged into an Arduino. I am trying to hook up many things to my server, but I don't want to have 10 XBEEs hooked up to 10 Arduinos, because that's expensive. I also don't want to have wires running all over the place to hook up sensors/etc to my one Arduino.

My first thought was to buy some Arduino Minis, and wire something like these to them:
RF Link Transmitter
RF Link Receiver

Would there be a betters solution? Do you have any particular resources I should go read? The endpoint devices would have to do things like read sensors, trigger switches, and even display data. Also, I'm not sure if I would use batteries for these or try to get power adapters for these.

Please comment if I should include more information about anything! 🙂

Best Answer

Bluetooth LE (Low Energy) is actually perfect for this type of application. It's meant for low power and low bandwidth communication needs, where each device only needs to send very small bursts of information periodically. It's also very highly optimized to run off of coin cell batteries so you might not need AC adapters if the sensor's duties are simple enough. We recently did a project that used lots of Bluetooth LE beacons and each one lasted for about 2 months off of a coin cell battery.

The hardware we used was already built for us but there are BLE solutions for the Arduino: http://www.adafruit.com/products/1697

Best part is you can use it with any device that has Bluetooth 4.0! (iPhone, Android phone, BT 4.0 dongle). And you'd only need one receiver since Bluetooth is already highly optimized to share the RF spectrum.

I used this book to get acquainted with BLE, it was pretty useful (very detailed but you can skim through what you need): http://amzn.com/013288836X

One important thing to note if you want to use Android: There was a rather annoying bug with its BLE implementation so you need the latest Android (4.4.3) to get the best results. Although, it only affects you if you have tons (over 2000) unique BLE device IDs floating around (which can happen if some devices want to rotate their MAC address for privacy reasons).