Going wireless, best reliability at short distances?

In your opinion what would be the most reliable and does this sound feasible?

What I'm trying to accomplish is an all in one aquarium controller. I'm close to finished but now I'm trying to figure out how to have this thing presentable. I've spent countless hours making a really sharp looking GUI on a 5" screen so I don't want it hidden.

I plan to use 3 micro usb connectors for temp probes, usb for fish feeder, bnc for ph, 2.1mm for power, vga for 8 ch power bar and from there cat5 for dosing pumps. Then there's 8 channels for LED's so that's another 9 wires and possibly more in the future. That's a mess of wire even if the cables are neat.

So I'm thinking it would be cool if the power bar had all the connectors on it which can be behind the aquarium and then have the display controller communicate with it wireless.

All the main code would be in the box with the connectors and hardwired so I would never have issues with schedules not running ect... the important stuff would always work. The display controller only needs to send signals to update the eeprom and to start a couple features of little importance.

The furthest the 2 would be apart is 10ft however there would be an aquarium between the two which has a metal frame and wood.

I guess I'm wondering what the most reliable wireless device is, I wouldn't want it to completely lose connectivity and have to reboot the controllers. The two units staying connected is the most important to me.

I assume you need two-way communication.

If it is only 10ft, why not use a cable for an extended serial connection?

Any of the wireless options should work over that distance. I have no experience of the 433MHz devices which are probably cheapest - but I think you need a pair of devices (Tx and Rx) at each end. I think I would use either Bluetooth or NRF24 devices - whichever is cheapest. Remember that one of the bluetooth devices must be a host, and they are a bit more expensive.

…R

robsworld78:
I guess I'm wondering what the most reliable wireless device is, I wouldn't want it to completely lose connectivity and have to reboot the controllers. The two units staying connected is the most important to me.

This is quite a different version of "reliability" to what we would usually consider!

I would suggest using IR (Infrared). It only requires the IR receiver device to be visible from the controller.

"Wireless" - including IR - has a reliability problem in regard to the potential for interference from spurious sources of the carrier whether "radio" or light/ IR. This is improved by measures such as shading an IR sensor from room lights, and of course, the closer transmitter and receiver are, the more reliable it gets. So if you lose connection at a certain distance (and at some distance, you must) then moving closer will restore it.

If you speak of "requiring a reboot", you are talking of something entirely different. This will occur if the program (sketch) "crashes". Causes for this include power glitches, program errors and faulty hardware. Obviously the first two have little or nothing to do with the form of "wireless" and most communication modules - of whatever sort - are reasonably reliable.

I was thinking I could get away with one-way because I could have the schedule code in both arduinos so the display knows to update the images. However that might not work over long term, if the RTC's drift they won't be in sync.

I would do one cable to the power bar but that would need to be at least 27 conductor, hard to find and then its one really big connector in the display. Are there any small 28 pin connectors?

When I say rebooting, I was thinking that if the 2 units lost connection they would need to be powered back up to connect, but yeah that can probably be taken care of with some code.

robsworld78:
I would do one cable to the power bar but that would need to be at least 27 conductor,

That's the wrong idea.

With wireless (or Infra-red) you will be sending messages. You can send the same messages over a cable with just 3 conductors - Rx Tx and GND.

...R

Ok, that's actually better than wireless, since I need a cable for power it can run through it too.

So I assume I still have a mega in each unit, would they be able to share an RTC chip?

Could I get 2-way communication, power up to the display and share an RTC chip with a cat5 cable?

EDIT: Could I use a mega and nano ATmega328? Do the same libraries work with each other? I use the following.

Wire
adafruit PWMServoDriver
Eeprom
RTClib
Time
TimeAlarms
OneWire
DallasTemperature

I would be surprised if you need two Megas - but that really depends on how many I/O pins you need. They have the advantage of multiple serial ports so you can have one port for use with the PC (for debugging) and another for communication with the other board. You can use a Leonardo like that also.

By "share an RTC chip" do you mean to connect the same chip to both devices? I would not try that - even if they were close together.

My guess is that you want to use the RTC to keep things aligned with clock time but that millisecond synchronization is not important. If so just put the RTC on one device and occasionally send the time (as a message) to the other device so it can add (or subtract) a correction factor to allow for drift in millis().

Cables and cross-talk between wires is not my strong point. I think I would try the Cat5 (Cat6 might be better) cable and see what happens. I assume you need very little current for the power to the display.

...R

It looks like I can get away with a nano for the main controller but I have a few megas sitting around so I would like to start with them and I'm hoping the nano is compatible so I can upload what I've done to it when I get one. Is that possible or is the code different for them?

Yeah I was thinking hooking up the same RTC to both units. Of course one would be 10ft away from the RTC. The idea was so both units have the exact same time. If its not possible I'll do what you suggest.

robsworld78:
If its not possible

As far as I know the Arduino has to communicate with an RTC and I can't see how you could get two Arduinos to communicate with a single RTC.

...R

It sounds like you're overthinkng this with RTC's etc etc

You need to think about it like this, you have a main controller that controls everything. Then you have a simple controller that basically converts all your connections into a simple serial format that can be sent down a couple of wires to the main controller.

In your above description the Nano doesn't ever need to know the time, all the nano does is convert commands and signals from the main controller to send them to the rest of the devices, and translate the responses, and vice-versa.

This link could easily run as a simple serial port running at 9600 (or even much less)

Just a point to keep in mind.

Many, many years ago I worked on the technology for DoD communications to submarines. Radio waves don't penetrate water well at all, and we could talk to submarines only at ELF, about 15KHz and below. If you have an aquarium between the two transceivers, you may need to play a bit with antenna locations to get a reliable signal. Of course signals also bounce off of walls and other objects, so you might get a good data link from reflected signal as well.