Last Updated on : 2022-11-24 09:20:02download
This topic describes the overall development process of the Tuya gateway extension SDK solution. For more information about the Tuya gateway solutions, see Smart Gateway.
This topic uses the desktop operating system of Linux distribution Ubuntu18.04 LTS to describe how to configure an embedded development environment and implement a wired gateway device running on an Ubuntu virtual machine.
You can install Ubuntu18.04 LTS on a physical machine or virtual machine. VMware and VirtualBox are the popular virtualization software. For more information about software installation, see their official guide.
The following lists dependency library and tools.
$ sudo apt-get install lib32ncurses5 lib32z1 $ sudo apt-get install make-guile gcc g++ gawk vim git
When virtualization software is installed, set the Connection mode to Bridge mode.
See Create Products and create a gateway product on the Tuya IoT Platform. This section takes a Zigbee gateway as an example to describe product creation.
Note: Currently, Tuya IoT Platform does not distinguish gateways with the different networking methods. You can also create gateway products of wired networking through the above methods.
When you add functions, the standard functions displayed on the Tuya IoT Platform are based on the Tuya security gateway. If you are developing a common gateway, you can choose functions according to your specific needs.
During the Hardware Development phase, select a connection mode and module, download embedded system SDK, and get licenses.
Connection mode: Support Tuya Standard Module + MCU and Gateway SDK. For more information, see Smart Gateway.
Gateway SDK: Select a toolchain and operating system according to the chipset platform. An SDK download link will be automatically generated. If you cannot find the required chipset platform, you can submit a technical ticket, providing the required SDK type, chip model, and operating system, and upload the toolchain package. Tuya operation personnel will handle the uploaded SDK.
Module: You can select a network module based on the communication protocol. Multiple specification options are available. See the Module Details to get more information.
The gateway firmware follows the module type. For example, the serial parameters for the Zigbee module are
115200, 8, N, 1, RTS, CTS.
PID: The unique Product ID (PID) is automatically generated on the Tuya IoT Platform after a product is created.
PRODUCT_KEY macro is the identifier of a gateway product.
License: After the gateway is created, you will get 10 device licenses. The license acts as the credential of the gateway’s connection to the Tuya IoT Platform and is used for development and debugging. It is represented by
AUTHKEY macros in the SDK.
This section describes how to run the gateway SDK on the Ubuntu system.
The extracted SDK directory is as follows:
tuya_zigbee_gw_ext_sdk ├── build_app.sh # Compile script ├── CHANGE_LOG.md # SDK version ├── demos │ ├── demo_gw # The sample program of the Zigbee gateway │ ├── demo_misc # The sample program demonstrates that the Zigbee gateway connects to non-Zigbee sub-devices │ └── demo_z3 # The sample program demonstrates that the Zigbee gateway connects to Zigbee sub-devices ├── Makefile # Compile all makefiles └── sdk ├── include # The header file of the SDK └── lib # The library file of the SDK
Configure the cross-compilation toolchain. Modify the
makefile and configure the path of the cross-compilation toolchain to the
COMPILE_PREX variable. In the Ubuntu system,
COMPILE_PREX defaults to the system’s
gcc compiler, so you don’t need to modify the
sh build_app.sh demo_gw. The compiled application is stored in
tuya_zigbee_gw_ext_sdk$ sh build_app.sh demo_gw ...... compile done
Set up a dynamic library path
As described in the overview of extension SDK solution, the Ubuntu system connects to the Tuya Zigbee module through a USB to UART converter. The following figure shows the TYZS4 module connection. For the connection of other modules, see their datasheet.
|TYZS4 module silk screen||USB to UART converter pin|
Connect your PC to the Ubuntu virtual machine in the VMware.
Check the serial device ID. As shown in the following commands,
/dev/ttyUSB0 can be accessed by normal users. You add the user to the
dialout user group.
$ ls /dev/ttyUSB* -l $ sudo usermod -aG dialout user_name $ cat /etc/group |grep 'dialout'
Modify the three macro definitions of
Get the network interface name and serial device ID and modify the following code.
Compile and run dome code.
tuya_zigbee_gw_ext_sdk$ sh build_app.sh demo_gw ...... compile done tuya_zigbee_gw_ext_sdk$ ./output/demo_gw/user_iot [01-01 18:12:15 TUYA Info][kv_storge.c:43] Init Kvs With File:./ [01-01 18:12:15 TUYA Err][online_log_serv.c:280] log stats ufread fail. [01-01 18:12:15 TUYA Debug][gw_internal_api.c:273] BASE SDK INFO: < TUYA IoT SDK V:4.1.5 BS:30.05_PT:2.2_LAN:3.3_CAD:1.0.2_CD:1.0.0 > < BUILD AT:2020_03_06_10_25_02 BY luowl FOR zigbee_gw_ext_sdk_prj AT linux-ubuntu-6.2.0_64Bit > IoT DEFS < WIFI_GW:0 DEBUG:0 KV_FILE:1 SHUTDOWN_MODE:1 LITTLE_END:1 TLS_MODE:4 ENABLE_LOCAL_LINKAGE:1 ENABLE_CLOUD_OPERATION:1 ENABLE_SUBDEVICE:1 ENABLE_ENGINEER_TO_NORMAL:0 OPERATING_SYSTEM:100 ENABLE_SYS_RPC:0 TY_SECURITY_CHIP:0 RELIABLE_TRANSFER:1 ENABLE_LAN_ENCRYPTION:1 ENABLE_SIGMESH:0 > <TUYA GW SDK V:2.0.0 > GW SDK DEFS < WIFI_CONTROL_SUPPORT:0 > , GW SDK VERSION: 1.0.0 ......
Download the Tuya Smart app to your mobile phone.
Make sure that your mobile phone and the Ubuntu virtual machine connect to the same local area network. Register and log in to the Tuya Smart app.
Open the Tuya Smart app, click + icon in the top right corner to add a device. Switch to the Auto Scan to search for the gateway.
Tap Next to pair the gateway.
Document reference related to debugging is as follows:
Log query: You can query the device background log according to its device ID.
Technical ticket: Tuya provides online technical supports.
Is this page helpful?YesFeedback
Is this page helpful?YesFeedback