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 free.

2Next, make sure that you've got the latest version the Arduino IDE installed. Be sure you have the latest version of the Arduino Temboo library as well, by checking the Arduino Library Manager.

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.

6Select Arduino from the drop down menu. Choose your device and make sure that you've added details about how your Arduino is connecting to the internet.

Selecting your Device

7Click Generate Code to test out the Choreo from our website. 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.

Testing the 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

9Using the visual pin board, click one of the Arduino's pins to configure a digital actuator. Next, set an Actuator Trigger Condition for your digital actuator. Indicate that you want to set your actuator's digital pin to high if the user presses 1 on their keypad after receiving the phone call.

Setting an Actuator Trigger 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.