Go Down

Topic: Using android mobile to control arduino (Read 103942 times) previous topic - next topic

kerimil

#15
Mar 10, 2013, 08:13 pm Last Edit: Mar 10, 2013, 09:31 pm by kerimil Reason: 1
I found out how to send data from the app to cosm website

here is a video showing an example app as well as a brief explanation of how to use app inventor

http://www.youtube.com/watch?v=Y-iDuUQCxQA

You can download the app here >>
<a href="http://speedy.sh/d4444/bluetoothAppCosmExampleTemperature1.apk">Download at SpeedyShare</a>

Here you can download the source >>
http://speedy.sh/Vwwww/bluetoothAppCosmExampleTemperature.zip


Here is arduino code I used (note that you need OneWire library for it to work)
Code: [Select]

#include <OneWire.h>
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2



void setup()
{
 // initialize the serial communication:
 Serial.begin(19200);
 // initialize the ledPin as an output:

}

void loop() {


  float temperature = getTemp();
Serial.println(temperature); delay (250);

}


float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -100;
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}

if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad


for (int i = 0; i < 9; i++) {
data[i] = ds.read();
}

ds.reset_search();

byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB);
float TemperatureSum = tempRead / 16;

return TemperatureSum;}
 
 



And here is the feed I created for the app -> The feed is available here - https://cosm.com/feeds/118188


In order to send data from or to your own COSM feed you have to modify the URL as follows (parts that you have to fill in are in capital letters):

http://api.cosm.com/v2/feeds/YOUR FEED ID/datastreams/YOUR DATASTREAM ID.csv?key=YOUR API KEY&_method=put

Then copy and paste the URL into a QR code generator, generate a QR code and scan it using the app. You might as well use the feed I created for the app - it's the default URL set in the app so you don't have to enter it - it's already there



If you have any questions feel free to ask them



maad

When is necessary to use a level-shifter? some people use the 74HC4050N level shifter in conjunction with the btm222 module!

kerimil

The module I got has a proper level shifter on it, but AFAIK one could improvise with zener diodes to achieve the same effect (not that level shifters are very expensive)

sisyph

Tanks a lot Kerimil for your project vert helpfull.
I tried to do the same without Voice recognising. The connection From my phone and Bluetooth device    is ok, the wiring sure ok ( rx to dx and dx to rx). But nô serial data is send. On your sketch, you initialise serial communication with 19200 bauds. I think the Bluetooth deviçe should send is data at same speed. Where did you initialise serial data speed on Bluetooth device? Perhaps the problème comes From there.
Tanks for your answer

cyclegadget

Quote
Where did you initialise serial data speed on Bluetooth device?


Between the Bluetooth device and the phone, the serial data speed is solved during "pairing" of the device to the phone. At least this is my belief.
Good links: Eagle tutorial= http://www.youtube.com/playlist?list=PLDE1858BD83D19C70
General Arduion tutorials = http://tronixstuff.wordpress.com
http://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123

kerimil

Quote
Where did you initialise serial data speed on Bluetooth device?
Cyclegadget is right - it's either when pairing or whenever connection is established

Even if baud rate was wrong you'd still receive something - if you don't then it has to be something else.


Verify if the module and the mobile works using a USB bluetooth dongle and a program like putty. Also check the datasheet of the module and the settings - is the module set as slave or master ? For apps I created it has to be set as master

sisyph

Thanks for sharing your  work. I tried it without voice detection. BT is paired with my phone but apperently no serial data is send. If I try to send "1" or "2" with my computer connected in bt, using putty the led switch on and off correctly so the hardware and arduino sketch is ok. my problem is coming from app inventor. what is button 1 set and number for? is the real value 1 and 2 are send or ascii value. I tried with mega 2560 with  external power and connect rx  and tx to serial 0

cyclegadget


@sisyph

I recommend you share your code that you are using, just to eliminate the possibility of the code being the problem.
Good links: Eagle tutorial= http://www.youtube.com/playlist?list=PLDE1858BD83D19C70
General Arduion tutorials = http://tronixstuff.wordpress.com
http://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123

kerimil

ohh I see now... the problem you are experiencing is caused by data types

The app sends bytes so it converts '1' into '49' and that's what's sent through bluetooth.


Ohh and you really should have connected the app to the bluetooth dongle - that would make everything clear for you.

sisyph

Yeah !! it works.
I used in my sketch : case '1' : instead of case 1:
So many hours for ''...
The strange things is that it worked before when I used my bt connection with my computer...
Thanks for your help

4ntoine


ahmjazly

hi kerimill,

i wanna buy a bluetooth for this project.so just went through ebay and found this link

http://www.ebay.com/itm/JY-MCU-HC-06-V1-03-Bluetooth-Transeiver-RF-Module-Wireless-Serial-4p-Port-line-/261053366958?pt=LH_DefaultDomain_0&hash=item3cc7fe42aehttp://www.ebay.com/itm/JY-MCU-HC-06-V1-03-Bluetooth-Transeiver-RF-Module-Wireless-Serial-4p-Port-line-/261053366958?pt=LH_DefaultDomain_0&hash=item3cc7fe42ae

this bluetooth module has a pairing code 1234. so to pair this module with ur app, should i modify ur project?? will it automatically ask for code??
plz tel me that can i use this module??

thnx
Jazly :)

kerimil

#27
Apr 02, 2013, 08:57 pm Last Edit: Apr 03, 2013, 06:38 pm by kerimil Reason: 1
The app doesn't have to pair with the module - just pair with it from the phone and then run the app

It should work just fine - just make sure you check the datasheet of the module & make sure the baud rate is the same (if so then the arduino code has to be modified or the setting of the module)

moeabok

hi , i am interested in such project .. i purchased arduino uno , bluetooth bee , and x bee sheild ..
i am having a problem in bluetoothfor arduino app.. i couldnt figure out on wat program it will run ...
thnk u for ur cooperation ..

kerimil

I don't really understand the question... could you be more specific ? I know English is probably not your native language but I can't really tell what's the problem

Go Up