CONTROLLING A RASPBERRY PI FROM A SMARTPHONE ANDROID APPLICATION
- Layout for this exercise:
* This exercise is based in the previous one
1 - Introduction
- The goal of this exercise is to control remotely a red LED connected to a Raspberry Pi device that has been added to the open source IoT platform thinger.io.
- A device token will be generated to control the red LED from a smartphone using the Android thinger.io application.
2 - Installig WiringPi at the Raspberry Pi
- WiringPi is a PIN based GPIO access library written in C for the BCM2835 used in the Raspberry Pi. It’s released under the GNU LGPLv3 license and is usable from C, C++ and RTB (BASIC) as well as many other languages with suitable wrappers.
- Let's install WiringPi at the Raspberry Pi. First of all, to work with the git-core repository:
- Downloading WiringPi:
- Fetching an updated version:
- All the folders and files have been installed:
- Building the application:
- It is important to notice the NOTE warning that to compile programs it is necessary to add -lwiringPi
- Moving the library wiringPi.h to the folder thinger_client/src:
3 - Writing the program
- The main.cpp program used in this exercise:
- Let's analyze the program.
- Including the libraries:
- Providing parameters to connect to the platform thinger.io:
- According with WiringPi pin numbering scheme the pin GPIO 17 corresponds to 0:
- Starting the connection of the device, passing the already defined parameters:
- The pin GPIO 17 is set as OUTPUT mode:
- The device will take 2 possible input modes: HIGH (LED on) and LOW(LED off):
- Starting the application:
4 - Running the application
- Before running the application, and in order to perform a correct compilation two lines must be modified at the configuration file CMakeLists.txt, indicating that the -lwringPi option is called:
- Running the application, finally the connection is achieved between the Raspberry Pi device and the IoT platform thinger.io:
5 - Controlling the Raspberry Pi device from the IoT platform website
- Signing in the thinger.io website (see previous exercise), a new device is found.
- The Boolean input can take two values: 0 (LOW = LED off) and 1 (HIGH = LED on):
- By default the red LED is off, with a value "in":false
- Switching the Boolean button the red LED turns on and the "in":true
- At the last point (7) a video will show the final testing of this exercise.
6 - Controlling the Raspberry Pi device from a smartphone Android application
- This Android application allows controlling IoT devices connected to the thinger.io platform, and can be easily installed in an smartphone from Google Play:
- In order to use the application a device token is required. Going back again to the web dashboard of the thinger.io platform, clicking OK:
- A device token is automatically generated.
- Clicking ShowQRCode:
- Now, the QR code is scanned from the smartphone using the thinger.io application. Once scanned, the application can be used for controlling the Raspberry Pi remotely.
7 - Testing the exercise
- This video shows the successful operation of the exercise: