What is the 'best' way of communicating with small microcontrollers/devices?
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).