Communication over radio

Hello,

I'm looking for a way to have multiple Arduino's talking to each other. At the moment I'm using a RS485 module, but it can only handle 1 communication at a time, so I can't have 3 devices sending data.

I have read about mesh and it sounds really interesting in the way, that you somehow can make it self healing.

The thing I'll be using it for will be for access control and I have a large area where there will be doors and etc.

I'll then have an Arduino at every door where you'll scan the card and the device will have a list with all accepting cards.
It'll then send to the master that the card is used, so that I can log it in the system.
The master will update the slaves once in a while with a fresh list of cards.

Do you maybe have any recommendations on modules that I should look for to achieve this setup?

The whole setup can in the end be having up to 30+ devices and I can't live with the module I have now with only 1 message at a time.

Radio modules vary in how far (distance) they can communicate.

So you need to describe the location in lot more detail.

All you have said is that it seems to involve doors and is a 'large' area ?

I don't think any system will allow more than one device to "talk" at any one time if any one (or all) of the other devices is to receive all messages.

But Arduinos can do things so quickly that they appear simultaneous to a human.

Before offering solutions you need to tell us the distances involved and the amounts of data that need to be transferred. What size (in bytes) is a message and how many messages need to be sent every second.

...R

There is a probkem in meshing data: reading errors are very probably and you can't devide messages, unless the Arduino reciver can listen only his Arduino speacker.

The distance at max will be maybe 1km, but that's also over the norm. In that case, there will be repeaters.
I'm fine if it can't handle multiple messages at a time, but the one I have now can only do 1 message at a time and if it happens 2 devices are sending, one will be lost.

How can I protect the system against that? It's okay it'll send 1 message, but can the other messages then queue up or?

ReneDyhr:
I'm fine if it can't handle multiple messages at a time, but the one I have now can only do 1 message at a time and if it happens 2 devices are sending, one will be lost.

How can I protect the system against that? It's okay it'll send 1 message, but can the other messages then queue up or?

That is a well established problem that has been solved in many ways. For example read about CSMA/CD

Can you appoint one device as a Master which controls when the other Slave devices can talk. A simple way is for the Master to send a message that includes a Slave ID code. All the Slaves can hear the message but only the Slave that has thesame ID will respond, and it must do so immediately. The Master can call each slave in turn.

By the way the Master does not have to be the most important device in the system - just the one that is best suited to controlling communication.

...R

I think you can do a thing;
If you use radio comunication you can mix comunications, NOT like recive two different messages, but like read a non-sence message if there are twoo messages. If so all messages are lost.
To solv the problem you can add a feed back from the reciver. Every Arduino, ehen he is a speacker, wait for the feed back for different time. If the feed back don't arrive the speacker repeat its message.
By this way if twoo arduinos speack in the same area at the same time nothing appends. But at the following time the messages are separated

Silente:
I think you can do a thing;
If you use radio comunication you can mix comunications, NOT like recive two different messages, but like read a non-sence message if there are twoo messages. If so all messages are lost.
To solv the problem you can add a feed back from the reciver. Every Arduino, ehen he is a speacker, wait for the feed back for different time. If the feed back don't arrive the speacker repeat its message.
By this way if twoo arduinos speack in the same area at the same time nothing appends. But at the following time the messages are separated

I don't quite understand what you mean on doing this. I'm interested in what you mean, if there's an option to try out :slight_smile:

Robin2:
That is a well established problem that has been solved in many ways. For example read about CSMA/CD

Can you appoint one device as a Master which controls when the other Slave devices can talk. A simple way is for the Master to send a message that includes a Slave ID code. All the Slaves can hear the message but only the Slave that has thesame ID will respond, and it must do so immediately. The Master can call each slave in turn.

By the way the Master does not have to be the most important device in the system - just the one that is best suited to controlling communication.

...R

That's actually what I thought after the last message, that the master will be the one to control everything. The Master will ask the different devices. The slaves will never send out data without the masters "permission".

ReneDyhr:
I don't quite understand what you mean on doing this. I'm interested in what you mean, if there's an option to try out :slight_smile:

That's actually what I thought after the last message, that the master will be the one to control everything. The Master will ask the different devices. The slaves will never send out data without the masters "permission".

That is called "polling/selecting".

You "poll" the slave to see if it has something to send. If it does, it sends it. If it doesn't have something, it must respond with a "nothing to send" message, so the master knows the slave is still working. The master must acknowledge to the slave that the message was received, so the slave can go about it's other business.

If the polled slave does not respond at any time, then the master has a choice to either try to recover the slave by polling again, or drop the slave address from active status.

As you gather, this becomes quite involves. And we have not covered how the master sends a message to a slave.

Paul

But so there isn't any overose problem, because if the master control all the master can also not transmit a command whuke anotger is not completed

Silente:
But so there isn't any overose problem, because if the master control all the master can also not transmit a command whuke anotger is not completed

If I understand that correctly, that is true. If the master is communicating with one slave, it cannot communicate with another at the same time.

Paul