Blink An Led On Esp32 Board With Tuya Link Sdk

About the project

Setup the Tuya platform with the Espressif’s ESP32 boards and further use it to control an LED through an Android device.

Project info

Difficulty: Moderate

Platforms: ArduinoPythonEspressifTuya

Estimated time: 1 hour

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Breadboard (generic) Breadboard (generic) A micro-USB cable, and connecting wires x 1
LED (generic) LED (generic) and a suitable ballast resistor x 1
Espressif ESP32 board Espressif ESP32 board x 1

Software apps and online services

Arduino IDE Arduino IDE
Python 3.x Python 3.x
Tuya Smart Application (Android) Tuya Smart Application (Android)
Tuya IoT Platform (Web) Tuya IoT Platform (Web)


Tuya is an all-in-one IoT Platform that enables the user to build smart IoT solutions by connecting devices efficiently, securely, and reliably.

This is a getting started article to set up the Tuya platform with the Espressif’s ESP32 boards via Tuya Link SDK. Further, we use it to control an LED through an Android device. When the switch in the Tuya Smart App is turned ON, the LED connected to the ESP32 board glows and vice versa.

GitHub Link:

Hardware Connections for Tuya Link SDK

The ESP32 board is placed on a breadboard. The positive terminal of the LED is connected to digital pin 5 of the ESP32 board and the negative terminal is connected to the ground pin via the ballast resistor as shown in the following circuit diagram.

Software Setup: Tuya IoT Platform

Login to your Tuya Account or if you don’t have an account then create one using the SignUp option.

Once Logged In, an overview of the platform is visible. Click the Create button to start a new Project.

To develop the application for ESP32 click on ‘Can’t find the category?’. The following custom creation menu should appear.

Fill the required fields as done above and click Create. A pop-up box will appear, just close it to get the following screen.

Here, we’ll add a custom function of the following settings.

Click OK. The function will now be visible.

Tuya Smart Application Graphical User Interface (GUI) now needs to be developed. For that, simply switch to the Device Panel tab and select ‘Create Blank Panel’.

Following are the steps to complete the UI Studio procedure.

You can always test and release the application before moving further.

Note: The testing procedure requires you to install and login to the Tuya Smart Application on your Android and enter the same login email id here.

Once back to the Tuya IoT platform, it’s now time to generate a license for Link SDK.

Select Link SDK Cloud Access Mode from the Hardware Development Tab. Click on the ‘Select’ button provided to place the License order. Click ’Get 2 Free Licenses’ and complete the steps to finally download a.xlsx file with uuid and key.

Now it’s time to install tuyaos-link-sdk to avail connectivity to Tuya Smart Application via Python 3.x. On your Windows PC run the following commands to clone the GitHub repository and install the tuyaos-link-sdk.

git clone -m pip install ./tuyaos-link-sdk-python

Open the file from the GitHub repo in the editor. Edit and change the productid, uuid, authkey and the COM port of your connected ESP32 device in the file. We’ll further use this file in the output section of this article.

Software Setup: Tuya Smart Application

Install the Tuya Smart App from the Google Play Store of your Android Device.

Login to your Account or if you don’t have one create one!

Now from the add device section click the scanner button to scan the QR code generated by the file.


Now the ESP Application will be added to the All Devices section of the Tuya Smart App.

Software Setup: Arduino IDE for Configuring Tuya Link SDK

The Arduino IDE here is used to process the serial message from the desktop Python on the ESP32 board similar to the PhysicalPixel Built-in Example.Add the ESP32 board in the Arduino IDE

Board Manager URL:

When the incoming Byte over serial is ‘H’, the program turns the LED on. The LED is turned off when the incoming Byte is ‘L’. Remember to set the proper GPIO Pin to which the LED is connected.


Run the file using the command

python ./

Project Credit: CNX-Software




Leave your feedback...