1

I would like to know what device and model to use for an application where I will have 1 arduino as a master micro controller waiting to receive data from 5 slave arduino microcontrollers.

The Master arduino will be connected to local network via Ethernet cable so once it receive data from a Slave controller it needs to post to server the information, get a response back and in case the response is a "true" value then the Master need to talk back to the Slave in order to turn a LED on.

There will be cases when maybe 3 of the Slaves will send data at the same time, this doesn't mean at exactly the same millisecond. So I don't know if there will be data lost.

I was reading that Xbee maybe is the best device because it has a feature that will hold the data until there is a success communication with slave.

Is this a doable and "easy" task using Xbee? Anyone that already try to do something like this that can guide me?

I was reading that there is a device nRF24l01 that is very cheap and can do exactly what I need. Just that I don't really know how to start.

Appreciate any advice or help.

  • i would just use ESP8266s to combine the receiver hardware and the MCU into one cheap unit, capable of hundreds of peers and easily portable w/o interference concerns. – dandavis May 15 '17 at 14:15
  • Also with the ESP8266 there is no "master" to send the data to first. Each one is its own master and just does the POST itself. – Majenko May 15 '17 at 14:24
  • So what you recommend me is just to use ESP8266 directly posting to my network? I have to check that with my customer because they dont have WIFI in the area where we have the arduinos. – VAAA May 15 '17 at 14:50
  • @dandavis ESP8266 allows you to have other ESP8266s as clients and have as the master? – VAAA May 15 '17 at 15:10
  • yes, you can have one ESP act as a "wifi router" (AP) and the others as "clients" (STATION). The AP one can even perform a dual-role and iteself talk to a wifi router while accepting input from all the clients. – dandavis May 15 '17 at 15:22
1

It really depends on the communication range and context required.

If your slaves are within 10-20 meters from the master device and the environment is not polluted (in terms of magnetic field) you can achieve good results with very inexpensive nRF24L01+ modules which operate in the 2.4GHz.

If you need to cover greater distances (in the order of 100 meters) or a polluted environment then you have to resort to shorter wavelengths or more powerful devices, but that brings in the question on how are you powering your slaves: on battery power those ranges get pretty power hungry.

Generally speaking I would say this question should be rejected as it's going to start a debate rather than provide a solution.

You can get some introductions on how to use nRF24L01+ modules simply searching online:

| improve this answer | |
  • nRF24L01+ with power amp and SMA antenna I achieve 300m+ reliable communication in quite a polluted area (many WiFi access points around - housing estate with lots of internet users). – Majenko May 15 '17 at 14:42
  • yup Majenko, in my tests I managed to achieve 900m, but I was in open space (no walls) even if pretty polluted (residential area with plenty of WiFi routers) using an SMA antenna, noise attenuation circuit and power amplification, but it was also drawing 400mA when transmitting (yes, just a short burst, but it's almost half an amp!). And anyway I wouldn't personally consider those reliable comm, but, as I said, it's a matter of context: IR could be better than radio depending on the context.... underwater you might want to go ultrasonic, as an example :-D – Roberto Lo Giacco May 15 '17 at 14:50
  • Really appreciate the feedback, i think thats the way I have to go, and also I will consider as the other people said using ESP8266 posting directly to server I guess. – VAAA May 15 '17 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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