My project consists of the following:
An Android Tablet that is used as the Human Interface and 4 "banks" of 9 sensors each.
Each Bank of sensors has an Arduino UNO as a "Master" that receives and sends data to and from the sensors. Each sensor is a Arduino Pro-Mini with sensors attached.
Presently all communications between the 4 Arduino UNO "Master" devices and the 4 X 9 banks of sensors is via a single I2C bus.
The communications between the FIRST Arduino UNO "Master" and the Android Tablet Human Interface device is via the USB.
This all works great, but cables are a hassle.
Attached is a graphic of the current architecture.
What I would like to do is:
Create a wireless link between the 4 X Arduino UNO "Master" devices and the Android Tablet.
Please could someone steer me in the right direction regarding:
1). Should I use BlueTooth modems on the Arduino UNO devices?
2). OR, Should I use WiFi modules on the Arduino UNO devices?
Range is not a problem as the Android device is never more than 5 meters from the "Banks"
It is important that I should be able to add additional "Banks" of sensors to the system.
Bluetooth is probably the simplest wireless communication between an Android device and an Arduino. Bluetooth is just serial-over-wireless.
NRF24 transceivers are probably the simplest way to communicate wirelessly between Arduinos.
I suggest you identify one the masters as the BigDaddy and route all comms from the Android to that.
Then BigDaddy can use NRF24 comms with any or all of the other Arduinos.
The simplicity of the NRF24s is that all of them can hear every message and you can arrange for BigDaddy to include an ID number in a message so one of the other "listeners" (slaves) knows that the message is intended for it.
@Robin2
Many thanks for your advice.
I am looking at the Bluetooth HC06 module.
I was thinking that maybe I could either use one of the Masters as a Big-Daddy, as you suggest
OR
I could have one BT module on each of the Masters.
This would do away with having all the Maters and Sensors connected to the common I2C bus. (Also gets rid of some cables).
I would then have a scenario where each Master has 9 sensors hanging off its own I2C bus.
All Masters would then connect (Pair) with the Android device and the Ardroid device would then communicate with all the Masters.
Addressing is not a problem as I have a DIP switch array on each Master that allows me to select an address for the Mater.
One question:
Would the Android device be able to handle multiple connections simultaneously?
The reason I suggested a single Bluetooth link is that the normal arrangement with Bluetooth involves pairing. I think it may be possible to communicate more widely, but I don't know how to do that.
A system where your Android device communicates with several Bluetoothd devices may also require specialist software on the Android device.
If you had Bluetooth plus an NRF24 on the "BigDaddy" and an NRF24 on each of the other masters it will eliminate wiring between the masters.
I've used both these modules to communicate with an Android device.
When an Android pairs with a Bluetooth device, it can do so either within a program which is using the Bluetooth or the pairing can be done from the Android's settings menu.
Once the device as been paired, as long as the device is turned on and ready for communication the program communicating with the module will open the connection. I'm not sure, but I think an Android can have open Bluetooth lines with more than one Bluetooth module. I haven't tested this myself.
While a HC-05 module can only communicate with one other Bluetooth device at a time, I'm pretty sure a HC-05 can close communication with one device and open communication with another device. I'm not positive about this but each Bluetooth device as a hard coded address which can't be changed by the user. I believe this address can be used by the HC-05 to identify the target module.
I also like the inexpensive nRF24L01+ modules for microcontroller to microcontroller communication but I believe Bluetooth modules could be nearly as easy to use (possibly easier).
I realize most of my reply is speculation. Sorry about that. I'll try to test some of these things out in the next few days so I can state with more certainty what can and can't be done with Bluetooth modules, Androids and Arduinos.
Robin2:
Good advice. I missed that. I bought a HC06 myself without realizing the difference.
...R
I think the HC-05 has several advantages over the HC-06.
I discussed some of the reasons why I prefer the HC-05 in this thread in the Parallax forum. There are some links to comparisons between the modules in the thread.
The ElectroDragon module I linked to earlier has an interrupt pin. I believe it is to allow the module to trigger an interrupt on the microcontroller when new data is received.
I wrote a blog about using App Inventor 2 on Let's Make Robots but the new owners of the site deleted all the posts of users who wouldn't agree to the new terms of service (I think they deleted my stuff before they introduced the new TOS). The blog post is gone but as part of the post, I made three videos talking about App Inventor 2. I recall the videos being painfully boring but if any of you are curious about AI2 you might want to watch some of the videos. I don't recommend AI2 if you already know how to make Android apps some other way.