Control your Arduino from your phone

Here we'll show you how to use your phone as a remote control for your Arduino. The video below shows a similar Arduino Yún sketch in action.

Your Arduino can use text-to-voice to construct phone menus that can be used by you or anyone else to control your board from afar. With this power, your Arduino can work as a remote monitor and call you when it wants your input, opening up a wide range of possibilities for applications that react based on remote user input.

This sketch uses a choreo from our Nexmo bundle.

Get Set Up

1Make sure you have a Temboo account. If you don't already have one, you can register for a free account here.

2Next, make sure that you've got the latest version the Arduino IDE installed.

3You'll also need a Nexmo account, which you can create here. Note that Nexmo does not support some shared email service domains like "" and may ask for a corporate email address. However, Nexmo now allows "".

4After you've created your Nexmo account, retrieve your Nexmo API Key and API Secret - you'll need them to run the Choreo. You can find your Nexmo API Key and Secret in the API Settings menu on the top right of the Nexmo dashboard, as shown in the screenshot below.

Nexmo Dashboard

The API Settings menu on the Nexmo dashboard

Auto-Generate the Sketch

5Go to the Nexmo > Voice > CaptureTextToSpeechPrompt in our Library.

6Turn on IoT Mode and make sure that you've added details about the shield that your Arduino board is using to connect to the internet.

7Test out the Choreo from our website and confirm that your Phone gets a call and that when you enter a number of the keypad, that number is returned as part of the Nexmo response in the Output section of the page.

Nexmo Inputs

Testing the Nexmo Choreo from our website

8Create a Profile from your Choreo inputs, so that you can refer to this profile in your sketch - this will help save RAM on your Arduino board, and also lets you change the behavior of your sketch by editing the Profile on our website as opposed to editing your code.

Save Profile

9Next, set an Output Condition to indicate that you want to set digital pin 6 to high if the user presses 1 on their keypad after receiving the phone call.

Output Condition

10When you've confirmed that the Choreo runs successfully and you've saved a Profile, you can copy the auto-generated Arduino code from the Code section and paste it into your Arduino IDE.

11The auto-generated sketch references the TembooAccount.h header file, which contains your Temboo account information and internet shield details. You'll find the code for this file beneath your generated sketch. Create a new tab in the Arduino IDE called TembooAccount.h and copy in the header file information.

12Run the sketch, generate a phone call from your Arduino and use it to control your board!

What Next?

When you've got this sketch working, you're in a position to build any number of applications that involve sensing information on the Arduino and delegating control to a human when it's time to make a choice about what to do next. Your own personal army of robot servants is one step closer to reality!

Need Help?

If you've got questions about Nexmo, it's best to start by learning more about the Choreo that we use in this example. You might also find what you need by searching Nexmo's Knowledgebase.

For anything to do with Temboo and how it works with your Arduino, we're always happy to help. Just email us at, and we'll answer you as quickly as possible.