Theory behind Android- Arduino communication via Bluetooth
Bluetooth profile is a wireless communication interface that connects Bluetooth devices. The profiles define requirements for implementing of Bluetooth for various applications, such as, file transfer, wireless headset usage, etc. The following figure depicts different Bluetooth profiles and their usage.
Serial Port Profile (SPP) is probably the most popular profile used in smart phone based ubiquitous and home automation systems. SPP emulates RS-232 based communication protocols including all the control signals. It is based on ETSI 07, 10 and the RFCOMM protocol (Read more).
RFCOMM is a simple set of transport protocol used for serial port emulation. It supports up to sixty emulated serial links on a single Bluetooth enable device. The emulated serial ports can again multiplexed through single point-to-point connection or point-to-multipoint connection piconet through several Asynchronous Connection-Oriented Logical transport (ACL) links. The flow control mechanism of Bluetooth is more complex than the physical serial port because it has to pass through several layers of Bluetooth stacks. Bluetooth link introduces a delays as compared to wired serial port, thus it degrades the flow control mechanism.
VT-100 Terminal Emulator: A VT-100 terminal emulator is a program that emulates a video terminal on an external and separate display unit. Many smart phone platforms support VT-100/ANSI terminal emulator which can be used for connecting serial Bluetooth devices working with Serial Port Profile (SPP). Bluetooth terminal emulator works with a Bluetooth serial adapter and it can display serial data flowing in and out of smart phone. In a smart phone operated electronic system, Bluetooth emulator can be used to see the data processed by a microcontroller. It can also be used as an input unit for giving commands to the microcontroller.
Bluetooth serial port profile (SPP), RFCOMM protocol and terminal emulator program work at the core of Bluetooth based smart phone applications that are used for operating electronic systems. The same logic also works for computer operated systems. A system made for smart phone can also be operated using a computer.
For Android- Arduino communication, you can use a general Bluetooth adapter or a BlueSMiRF module from Sparkfun.
Experiments:
a. Basic experiment- Android- Arduino communication via Bluetooth.