Control your Samsung ARTIK from your mobile phone

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

Your ARTIK 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 ARTIK 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.

2If this is the first time using Temboo, you'll need to set up your ARTIK board to find the Temboo libraries. To do so, you'll need to create the file temboo.conf in /etc/ld.so.conf.d. Inside of temboo.conf, you'll want to copy the line below and paste it into the file:


After saving temboo.conf, run ldconfig from the command line to add the Temboo library directory to the system library search path.

You’ll also need to get the IP address of your ARTIK board using ifconfig. The example below shows the results when the ARTIK board is connected to the internet through an ethernet cable. The IP address you'll want to use is listed next to inet.

[root@localhost ~]$ ifconfig
eth0: flags=4163  mtu 1500
        inet  netmask  broadcast

3You'll also need a Nexmo account, which you can create here.

4After you've created your Nexmo account, retrieve your Nexmo API Key and API Secret to use later when you 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 your ARTIK Code

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

6Turn IoT Mode ON, select your board from the drop down menu and make sure that you've added details about how your ARTIK is connected to the internet.

Samsung ARTIK 10 IoT Mode

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 code - this will help save memory on your ARTIK board, and also lets you change the behavior of your application 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 a digital pin 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 download the auto-generated ARTIK code from the Code section and move it to your device.

11The auto-generated sketch references the TembooAccount.h header file, which contains your Temboo account information. You'll find the code for this file beneath the main auto-generated C code. Make sure to keep both files together on your ARTIK.

12Copy the downloaded zip file to your ARTIK board using scp. From your computer, go to the directory where the zip file is located and type the command below. Make sure you use the IP address for your board you found using ifconfig.

[root@localhost ~]$ scp capturetexttospeechprompt.zip root@xxx.xxx.xxx.xxx:/home

13Now go to the capturetexttospeechprompt directory and compile your code and trigger a phone call from your ARTIK! Run the first command below to compile your code. After compiling has finished and no errors have been reported, run your program using the second command.

[root@localhost ~]$ gcc -L/opt/iothub/artik/temboo/temboo_artik_library/lib -ltemboo -I/opt/iothub/artik/temboo/temboo_artik_library/include capturetexttospeech.c -o capturetexttospeech
[root@localhost ~]$ ./capturetexttospeechprompt

Note: If you get an error about cdefs.h not being found, this could mean your ARTIK board was not shipped with glibc-headers. This can be solved by reinstalling glibc-headers using the command below. After reinstalling glibc-headers, run the two commands above to compile and run your code.

[root@localhost ~]$ yum reinstall glibc-headers

What Next?

When you've got this example working, you're in a position to build any number of applications that involve sensing information on the ARTIK and delegating control to a human when its time to make a choice about what to do next. Your IoT projects just got a whole lot smarter.

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 ARTIK, we're always happy to help. Just email us at support@temboo.com, and we'll answer you as quickly as possible.