Advice on multiple Arduino project

Hi to all!

I am still a beginner with Arduino's but I am experienced enough in programming and electronics so learning fast. I am breaking up a project in pieces to create a system to be used in volleybal matches. It concerns buzzers, displays, button switches, etc. I am trying to figure out if I am able to built something like that.

Several parts like showing information, writing data to SD cards, I did manage to figure out already but my main request to get some advice on is how the communication would be arranged best between some Arduino's. The reason why I can't have just one Arduino Mega handle the whole is because of the distance between displays, button switches, etc. It is not a master and multiple slave project but more or less 3 masters and 3 slaves. I will explain the function of the 6 Arduino's below:

Arduino 1:
Has one button for the team on the left to press to request a time out. Upon pressing the button, this Arduino should give Arduino 3 a signal to handle the time out request.
It also has a small OLED display to show some practical information.
The distance between this Arduino and the score table (Arduino 3), is about 10 meters.

Arduino 2:
Identical to Arduino 1 but for the team on the right.

Arduino 3:
This one is located at the score table and should mainly react on the buttons pressed connected to the above mentioned Arduino's. It should 'listen' to Arduino's 1 and 2 and either accept the time out request by activating a buzzer or deny it (because the team has used the maximum number of time out's already or the other team pressed the button already). With this Arduino I would also like to handle the score, time out and substitute counting.

Arduino 4:
This one is also located at the score table and will handle displaying the score, controlling the buzzer and some lights to indicate which team is requesting a time out.

Arduino 5:
This one is the only one which will be powered using a 9V battery and has to communicate wireless with the 'main' Arduino 3. It will only show the lights indicating which team is substituting or requesting a time out as a help for the second referee. The distance between this Arduino and the score table is about 5 meters maximum.

Arduino 6:
This one is optional and will be used to display the score at the opposite site of the playing court. The distance to the score table will be about 20 meters.

I am still investigating what the best way of communicating between the different Arduino's is. I2C is not an option because of the distance. Other options are ethernet (wired or wireless), RS485, RF 433MHz, ??

I prefer wired ethernet to be able to use PoE for Arduino's 1, 2 and 3 with a power supply and PoE switch at Arduino 4.

But if I use ethernet, what is the best way to have Arduino 1 let Arduino 3 know that the button is pressed while Arduino 3 should be able to inform Arduino 1 what to show on it's display? Should I use the webserver, telnet or some other technique I am not aware of yet? Maybe I am overlooking some limitations which I am not aware of?

Any suggestion based on your rich experiences is welcome. I will be happy to figure out a lot myself but some directions or advice is very much appreciated.

How about using Esp8266 based nodes instead of using Arduinos, or for some of the Arduinos?
A NodeMCU or something like that?

Arduino/Ethernet/POE/ sounds expensive...

Why do you want to split the functionality of nodes 3 and 4?

I have done something similar with Arduino's for a cricket scoreboard. One Arduino has the button inputs for changing the score and a display to see the current score, and the other drives a large 7 segment LED display located elsewhere on the field.

I've used NRF24L01 breakout boards to communicate between them, and that works really well. With line of sight, I can get about 30 metres with the on board antenna. If you use them with a Mega 2560, you need to add a decoupling capacitor.

I think I picked them up on eBay for around $2 for a pair.

CAN bus is specifically designed as multi-master data bus optimised for reliably moving small chunks of data in a timely manner. All the nodes are linked by a single 4 wire cable.

For your application you could probably run at 10kbps which would allow you to use any kind of cable, no need for twisted pair or shielding. I'm using "alarm type" cable over 45 meters and it works great.

You can get interface boards on Ebay for $3.

Whandall:
How about using Esp8266 based nodes instead of using Arduinos, or for some of the Arduinos?
A NodeMCU or something like that?

Arduino/Ethernet/POE/ sounds expensive...

Why do you want to split the functionality of nodes 3 and 4?

Nodes 3 and 4 are not combined because the position of the scoreboard and the position of the scorekeeper. That might be a different position.

I will take a look at the NRF24L01 breakout boards and CAN bus because it looks like I need both options.

Thanks!