I have a project that I want to receive data from 10 Arduinos same time wirelessly. I can do this with WiFi shields of course, however the cost will be huge. Are there any other recommended alternatives? I know that with RF I can do it very cheap, but I have read in some forums that it can be unstable if I am reading/broadcasting from multiple sources in the same area. Also I know there is Bluetooth or Zigbee, but again problems may occur there as well.
Therefore I would like to know a few things more about how to do this to avoid problems beforehand.
How often will the wireless transmitters be transmitting?
This type of problem depends entirley on how reliable you want the project to be.
Can you afford to lose data?
A Master Slave arrangement is the best option , but does require bi directional transmission.
I agree with robin2, you need to have error checking and re sending etc.
AFIK the nrf24l01 has this built in already
To avoid collisions you could use time domain multiplexing
E.g you sync the clocks in the slaves, and each slave only sends at a particular millisecond modulus range
E.g. Slave 1 sends between 0 and 99 ms after each second
Slave 2 sends between 100 and 199 ms after each second.
Albeit this requires relatively accurate timing, I suspect it is possible, especially if you can send a UDP type data packet from the master to all slaves containing the time, so they can all sync together
Also I know there is Bluetooth or Zigbee, but again problems may occur there as well.
No they will not occur.
These system have protocols to ensure they work correctly.
Zigbee or Xbee in particular have a packet structure to allow routing of data.