I am making a wearable device that is storing sensor data. However I eventually want to send that data to a smartphone to help display and do the heavy lifting for calculations.
I am wondering what bluetooth profile would suit best for my needs? From my research, it seems like the SPP profile is the simple solution.
Serial Port Profile is indeed quite simple to use with an arduino, it's "rs232 without wires" more or less.
The Ebay-module in your link is probably capable, but personally I would go for a different model.
A lot of Ebay-sellers don't mention it, by reading the text in the link I suspect
it's a HC-04 or HC-06 model.
Those are only capable of working in slave mode. You can't pair two of 'm in case you one day want a project with 2 arduinos talking to each other. A HC-05 or HC-03 can be configured to become master or slave. It's hard to find an 03 by the way.
These all are class Two devices although you can configure tx-power. Must say I haven't seen any 4.0 modules yet, but I also haven't been searching.
if you generate 100 bytes per second and you can send them at >10000 per second you only use 1% of the bandwidth.
so even at 9600 baud you only use about 10%
anjianwu:
I am generating around 100 bytes per second. So it will be in the order of megabytes after recording for multiple hours.
Thus even at 115200, that's is about 11 Kbytes/second right? Which would mean syncing data could take minutes....
Is there anyway to go around that?
If I only need to send data when requesting, a slave mode only is ok right?
It is probably an HC-05 or an HC-06. It would help if they told you what it is but not essential as a slave-only HC-06 will be fine for your needs. The HC-05 can be master or slave. I assume you mean send data when requested. The HC-06 identifies itself as linvor, while HC-05s merely report the COMport number.
My HC-06 talks to two Android phone apps. Blueterm is a VT100 emulator and seems to be all that is needed. The other is BlueTooth SPP which probably is all you need too, but it seems less friendly.
You can probably test the suitability for that quantity of data during debugging before you get bluetooth. I believe the 2.4 GHz transceivers NRF24 are a lot faster but I don't know how they could talk to a phone and you might be just moving the problem rather than fixing it.
Should have told you I'm still one of those old farts without mobile phone (yep, they still exist, even in the arduino community). Personally I decided to go for several nrf24l01+ non-bluetooth wireless-modules a while ago since you can use 'm in master/slave mode and can connect to several slaves at the same time. Should I want more distance as the standard ~30 ft I can simply replace 'm with long distance nrf24l01-modules.
I suspect a mobile phone can be either host/slave though since most can communicate with each other using bluetooth, which should make it possible to use a slave module for your project. You should be sure the phone isn't slave only though, if it is the arduino-bluetoothmodule needs to be master.