How can I make an Arduino send SMS from my phone via Bluetooth module?

Hello everyone! I am trying to create a project where I can make the Arduino send SMS from my phone via a Bluetooth module with the click of a button. Does anyone have any ideas on how I can approach this?

Draw a logic block diagram.
How will the Arduino grab text from the phone and then send an SMS? Use the phone to send SMS.

How can I use the phone to send the SMS? Do you think I should create an app that receives the data from the Arduino and triggers to send the SMS?

If that is what you want to do, that is what you have to do. Not really an Arduino problem. You would probably find it simpler to put a phone shield onto Arduino and leave your current phone out of the game.

Alright, thank you!

But if you do want an Arduino to trigger your phone to send an SMS, it certainly seems possible.

One way: use the Android app Tasker to send an SMS when it detects a BT connection from your Arduino. Program the Arduino to poll a button and make a BT connection to the phone when the button is pushed. I think there are Tasker plugins that can send the Arduino a success/no success message via BT, so you could have the Arduino look for that and disconnect BT after success, a timeout, or whatever.

Another way: program the Arduino to connect to your phone via BT, poll a button, and when the button is pressed, send "something" to the phone. And, write an Android app for the phone to monitor BT serial and, when that special "something" is received from the Arduino, have the app send an SMS. I've never used it, but MIT App Inventor may be one way to write the Android app.

I actually tried the second way today lol. I had trouble creating the app, I am a beginner to the MIT app inventor platform so I was unable properly make it work. I had trouble receiving data from the Arduino in-app. I will look into the app Tasker and try it. Thank you so much!

I've done this using HC-05 bluetooth and an app built in MIT App Inventor (there are lots of examples to follow). But...

It only works up to a point. The app won't activate the send button on the phone. It has to be pressed by a person.

It sounds like an interesting project and I hope that you get somewhere with it.
One advantage of using a phone in this way is at least you can test if it is compatible with the available mobile networks. If you go to buy an Arduino/Pi shield it is difficult to get a clear statement in advance that it will work locally. I also , probably like many other people, have a number of old phones lying around where the android version is too old for some apps.
Even better if you can start from a powered off phone, automatically power it on, go through the initialization, send the SMS, then power it all off again.

1 Like

Oh, there are a lot of examples but there are fewer which I could find that are shown on receiving the data in the app and explained in depth.

I found the app examples and tutorials rarely did exactly what I wanted but they did show me how to achieve the different tasks and use the different components.

The communication between the Android and phone can be by serial using an OTG cable. The two devces have to be side by side while with Bluetooth they can be up to 10m apart.

Would you like me to make the app I built available to you? It worked but it had the drawback of needing a human to press the phone's Send button -- an app cannot do that for you. It can do everything else such as set up the message contents and the phone number to send it to. It can do different messages and different phone number. But it just cannot do that final step of activating Send. Pity.

Just out of curiosity, is that a restriction of Android that the SMS send interface must be "human initiated" ? I'm just studying this whole area now and have found this tutorial which sends an SMS. The "Send" button appears to be created by the App but there could be other restrictions in the back ground. SMS sending is, of course, very sensitive because these can generate high costs if a rogue App is sending to premium numbers.

Yes, it's a deliberate security feature of the Android OS. There were discussions in the MIT AI forum about this. Some people thought they could make it work by accessing the OS. There were warnings about the security risks of doing this.

I'll take a look at the example you mention.

That's a sophisticated tutorial compared to MIT AI apps. It looks like they have a way in Android Studio to gain permission but I can't see how that could be achieved in MIT AI. Beyond my skills.

I think their Send button must command the app to send the SMS. That command could just as easily come from an Arduino via BT or OTG serial cable.

Best of luck. You could pose the question in the MIT AI forum.

OK. Thanks. As I said, I'm just looking at the area now and have not done any Android development so far. However, I think I'll wait until someone pioneers as "zero intervention" method of going through the whole cycle of powering on an Android phone, sending an SMS and again shutting it down again.
I could imagine removing phone and SIM card passwords, plus giving permissions within Android plus some fine soldering around the power button, plus some App development in Android Studio plus some Arduino/Bluetooth sketch and maybe more.

But for all that effort, wouldn't it be easier to use a GPS shield (edit: GSM not GPS) That's what I'm exploring now as I want an Arduino to send data or a file to either phone or email address.

Oh, that's unfortunate. You truly really saved me a lot of time before I started advancing into the MIT App Inventor. Thank you, but I don't want the app because I can't get it to function anyhow. I saw you mentioned that the security feature could be bypassed in Android Studio. I am just getting into app development so I might try when I have the skill. Probably going to stick with the Tasker app for now.

You could do that with a GPS shield? I was thinking of a gsm module.

I don't think Tasker can do anything with BT but look for BT connection events (check me). So if you go that way, I doubt your Arduino can send your phone any data.

But Tasker does seem to have the ability to send an SMS without human intervention. https://tasker.joaoapps.com/userguide/en/help/ah_send_sms.html (I haven't tried it.)

Anyway, I discovered that the tasker app is paid, and I really don't want to pay for it. I tried to download the apk file online, assuming that it was going to be free lol, but it didn't work, it had a message popping up that the trial is over and that I need to pay. I suppose the only way really to make this work is the Android Studio without any flaws, but I really don't have the skill set for that yet. Does anyone have more suggestions?