Is there anyway that I can take a receiver (arduino) plugged into a phone and have it send data from the receiver through the audio jack to the phone to execute commands on the phone such as make a call or send a text? In the event that the audio jack doesn't work, possibly the microusb then. I want to use zigbee or some other long range communication method to talk to the receiver that is plugged into the phone if its possible to bypass the receiver and do this directly with the phone then that would be even better.
Android devices can't implement Zigbee communication directly, so if you can change communication device (like Wifi or bluetooth) it would be better.
But if you want to use zigbee (an arduino is required then) I suggest 2 ways:
You could use a bluetooth module on the arduino board and communicate to android phone with that
You could implement a communication with the phone mic like in this project:
Android, Arduino, and the Headphone Jack Slideshare
Good luck!
Related
My treadmill has a bluetooth chipset that it allows it to communicate with an app on my phone called iFit. In the communications, the phone receives information such as my distance traveled and speed, and the phone can set the treadmill's incline.
Instead of using iFit, I'd like to make my own script running on something like raspberry pi.
Is it possible to emulate the iFit bluetooth communications?
You can capture the bluetooth communication using bluetooth snoop logs. I think you will still need to write something to initiate the initial bluetooth connection. Once that is done you can possibly replay the traffic that captured in the bluetooth snoop logs. You can use Android Things on a raspberry pi if you are comfortable with working on the Android platform.
I am currently working on a project in MIT App Inventor, where I am connecting an Android device to an Arduino via Bluetooth.
Is it possible to connect multiple Android phones to this Arduino, and is there a procedure by which an Arduino could distinguish between them?
I assume, that you are using a serial bluetooth device, such as HC-06 or HC-05. As I know, even the master module HC-05 can only connect to one client at a time (which makes sense, since the serial connection on the other side is the same)(despite the fact, that bluetooth in principle allows handling multiple clients at a time, though it's a rather complex task). This means, that you would have to use one serial bluetooth module for each phone, you want to connect at the same time.
When using more than one bluetooth module, you have to connect them to the Arduino over serial, but only one device can use the serial connection at a time. Depending on the number of phones, you want to connect, you can use either the SoftwareSerial library to emulate more than one serial connection (so every connection can be identified by its own SoftwareSerial object), or you have to multiplex your data lines between the different serial bluetooth devices (so that you control the serial connection to the devices with for example setting digital pins). For the last mentioned possibilities, I'm not sure about the property limits in the serial connection. Maybe you can multiplex just only with a few transistors.
If you want not only distinguish between the different connections but directly between different phones (for example to remember special settings for only your phone, not the others) you would have to send an identification over bluetooth to the Arduino (for example the MAC adress of the phone).
For more help, you should state you question in a better way and telling more details
I am working on a project that including an android phone that sends simple serial messages to a picaxe microcontroller(14m2) like '1','2','a' etc.
I searched alot on the web, and I only found a way that the android smartphone first "connecting" to the device and "discover" it, the problem is that PICAXE microcontroller is NOT a 'USB' device, and it can't be discoverd by the android, that means the android will not be able to send serial messages to the PICAXE.
if theres any way to send simple pulses from android to PICAXE, please let me know about it.
EDIT: There's any way to do that by connecting the AXE027 download cable with OTG?
I do some project with communicating over serial port. You can use chineese bluetooth adapters (see on ebay arduino bluetooth), those communicate with controllers via Usart and connect to phone by bluetooth. There is sample project Bluetooth chat from google about how to use bluetooth on android. On hardware iside, you can use arduino for receiving data by bluetooth and converting it in format of your controller. You wont have to use any wires
I was wondering if it is possible to be able to upload data through the usb or audiojack of a phone so that it can then make a call.
Yes, however you would need to create a custom application on the phone that has access to the cellular module. The application would scan the audio jack for commands sent by the arduino and then a built in interpretor would convert the input into data that the phone can understand.
Arduino <--> Custom Application <--> Phone <--> Network
(although I would recommend using an arduino compatible cellular module to keep things simple)
Alternatively you could use a BLE shield and just have a Bluetooth interface (which would free up the usb/headphone ports on the phone at the expense of purchasing a BLE shield)
I want RPi to be hinted when an android phone receive a phone call, and be able to view the calling number, Also, to be able to make calls to other phone numbers on certain events.
How to connect the phone and RPi, and what type of data they should exchange to accomplish this?
One option would be Bluetooth: Put a Bluetooth stick into your RPi, pair it with the Android device, and possibly emulate a hands-free device, e.g. using HFP for Linux.
Otherwise, you could use TCP/IP if your Raspberry Pi and your Android device are connected to the same network (e.g. your home network with your Android phone being connected via WiFi and your RPi connected via Ethernet, or if your RPi acts as a WiFi AP and your Android is connected to it). For this, you would need to write a custom Android app (or check if someone else already did) that reacts to incoming calls and sends information to the RPi, and receives requests to dial a number and makes the call (requires the CALL_PHONE permission and cannot dial emergency numbers like 911).
If you want a wired connection, ADB via USB would likely be the easiest way to do it. You can use it to send intents (to make the phone dial a number) and read debug output from the phone (to give the RPi the incoming call numbers).