Introduction: Androino! Control an Arduino From Your Android Device Using a Cheap Bluetooth Module.

This instructable shows you how to read sensor values from an Arduino with your Android device using a cheap bluetooth serial device you can order for under $10 on dealextreme or ebay.
This example uses Python as the scripting language for the Android scripting layer (SL4A) but you can choose from other languages like Perl, Lua, JavaScript etc. see: http://code.google.com/p/android-scripting/

Step 1: You Need:

1. JY-MCU bluetooth wireless serial port module.
http://www.dealextreme.com/p/jy-mcu-arduino-bluetooth-wireless-serial-port-module-104299
or search for "bluetooth module" on ebay
I've bought mine for $8.20 on dealextreme.
2. An Android device with bluetooth.
3. An Arduino board.
4. Some sensor or potentiometer to read values from.

Step 2: Setup the Arduino Hardware

The BT module comes preprogrammed with the following settings:
Device name: linvor
Baud rate: 9600
PIN: 1234

You can leave the settings as they are or change them with a serial adapter.
For more info see: http://wiki.openpilot.org/display/Doc/Serial+Bluetooth+Telemetry

Connect the bluetooth module to your Arduino.
BT module Rx-> Arduino Tx
BT module Tx-> Arduino Rx
VCC to 5v
GND to GND

Connect a sensor or potentiometer to analog pin A0.

Upload this sketch to your Arduino: http://pastebin.com/raw.php?i=xmyr840j
The onboard LED at D13 is toggled everytime a sensor value is requested from the Arduino.

Step 3: Setup the Android Device

Install Android Scripting Layer and Python for Android:
http://code.google.com/p/android-scripting/
http://code.google.com/p/python-for-android/
(This instructable is based on SL4A r4)

Copy the code from http://pastebin.com/raw.php?i=FVxKzf1g
and name it androino.html
Copy the code from http://pastebin.com/raw.php?i=XEmEsATU
and name it androino.py
Change the BT_DEVICE_ID in androino.py to the address of your BT module.
If set to None, Android will ask you at program start which bluetooth device to use.
Upload both files to the /sdcard/sl4a/scripts/ directory on your phone.


Step 4: Have Fun

Turn on Bluetooth on your Android and pair the device using the pin 1234.
Start SL4A on your Android device.
Select androino.py and then the gear symbol to start the application.
The SMD LED on your BT module should stop blinking at this point.
A WebView is started and when you click on the button, the sensor value gets read and displayed.

It's really that easy :)


SL4E API reference:
http://www.mithril.com.au/android/doc/

edit:
I've added this script which simply dumps anything that is send via serial out from your arduino.
dump.py http://pastebin.com/raw.php?i=uVxaD829
Select dump.py and then the console icon in SL4A to start.

Arduino Challenge

Participated in the
Arduino Challenge