跳到主要内容

环境搭建

概述

首先,完成在不同系统(Linux、Windows、macOS)中的必要工具准备。

然后,使用 tos.py 工具对项目进行配置、编译、烧录等操作。

最后,对设备授权并使用 涂鸦 App 进行配网。

环境准备

信息

推荐使用 Ubuntu24/22/20 的 LTS 版本。

安装必要的工具:

sudo apt-get install lcov cmake-curses-gui build-essential ninja-build wget git python3 python3-pip python3-venv libc6-i386 libsystemd-dev

下载并激活 TuyaOpen

下载 TuyaOpen 仓库:

# 使用 github
git clone https://github.com/tuya/TuyaOpen.git

# 或者使用 gitee
git clone https://gitee.com/tuya-open/TuyaOpen.git

cd TuyaOpen

激活 tos.py

. ./export.sh

验证,使用命令 tos.py version 以及 tos.py check,会出现如下信息:

❯ tos.py version
[INFO]: Running tos.py ...
[INFO]: v1.3.0

❯ tos.py check
[INFO]: Running tos.py ...
[INFO]: [git] (2.43.0 >= 2.0.0) is ok.
[INFO]: [cmake] (4.0.2 >= 3.28.0) is ok.
[INFO]: [make] (4.3 >= 3.0.0) is ok.
[INFO]: [ninja] (1.11.1 >= 1.6.0) is ok.
[INFO]: Downloading submoudules ...
[INFO]: [do subprocess]: cd /home/huatuo/work/open/TuyaOpen && git submodule update --init
[INFO]: Download submoudules successfully.
若 check 命令失败:
# 工具校验不合格,请安装或升级对应工具

# submodules 下载失败,手动执行 git 命令
git submodule update --init

使用如下命令退出激活 tos.py

deactivate

关于 tos.py 更详细的说明方法,可使用命令 tos.py --help 进行查看,或参考 tos.py工具使用

项目操作

选择项目

TuyaOpen 中,可编译项目可在 appsexample 中进行选择。

这里以switch_demo为例。首先,进入项目目录。

cd apps/tuya_cloud/switch_demo

配置项目

使用命令 tos.py config choice,对项目进行配置。

该命令会提供已经验证过的配置选项,用户可根据自己的硬件设备进行选择。

❯ tos.py config choice
[INFO]: Running tos.py ...
[INFO]: Fullclean success.
--------------------
1. LN882H.config
2. EWT103-W15.config
3. Ubuntu.config
4. ESP32-C3.config
5. ESP32-S3.config
6. ESP32.config
7. T3.config
8. T5AI.config
9. T2.config
10. BK7231X.config
--------------------
Input "q" to exit.
Choice config file:

这里以涂鸦 T5 系列开发板为例,需要选择 T5AI.config

编译产物

编译项目,使用命令 tos.py build

❯ tos.py build
...
[INFO]: ******************************
[INFO]: /xxx/TuyaOpen/apps/tuya_cloud/switch_demo/.build/bin/switch_demo_QIO_1.0.0.bin
[INFO]: ******************************
[INFO]: ******* Build Success ********
[INFO]: ******************************

清理产物

清理编译缓存,使用命令 tos.py cleantos.py clean -f(深度清理)。

❯ tos.py clean -f
[INFO]: Running tos.py ...
[INFO]: Fullclean success.

烧录、日志和授权

烧录

将设备与 PC 连接,若使用虚拟机,请将串口映射到虚拟机中。

提示

对于 Linux/Mac 用户,需要开启串口使用权限,执行命令 sudo usermod -aG dialout $USER,并重启系统。

烧录固件,使用命令 tos.py flash,并选择烧录口。若有多个串口可以依次尝试。

❯ tos.py flash
[INFO]: Run Tuya Uart Tool.
[INFO]: Use default baudrate: [921600]
[INFO]: Use default start address: [0x00]
--------------------
1. /dev/ttyACM1
2. /dev/ttyACM0
--------------------
Select serial port: 2
[INFO]: Waiting Reset ...
[INFO]: unprotect flash OK.
[INFO]: sync baudrate 921600 success
Erasing: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 5 bytes/s 0:00:07 / 0:00:00
[INFO]: Erase flash success
Writing: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 100% 12 bytes/s ⠸ 0:00:38 / 0:00:01
[INFO]: Write flash success
[INFO]: CRC check success
[INFO]: Reboot done
[INFO]: Flash write success.
若出现Port [xxx] may be busy提示:

可等待 1 分钟左右,再次尝试。对于不同的虚拟机和串口芯片,映射过程所需时间不同。

日志

查看日志,使用命令 tos.py monitor,并选择日志口。

若想查看完整日志,可在命令后,手动复位设备。

❯ tos.py monitor
[INFO]: Run Tuya Uart Tool.
--------------------
1. /dev/ttyACM1
2. /dev/ttyACM0
--------------------
Select serial port: 1
[INFO]: Open Monitor. (Quit: Ctrl+c)
[01-01 00:03:25 ty D][tuya_health.c:75] feed watchdog
[01-01 00:03:35 ty D][tuya_health.c:75] feed watchdog
[01-01 00:03:45 ty D][tuya_health.c:75] feed watchdog
[01-01 00:03:55 ty D][tuya_health.c:75] feed watchdog

退出日志查看,按键 Ctrl+c 并回车。

^C[INFO]: Press "Entry" ...

[INFO]: Monitor exit.

授权

关于授权码的概念,请查看 授权码说明

您可以使用以下两种授权方式:

  • 授权命令

    使用命令 tos.py monitor -b 115200

    提示

    这里选择烧录时使用的串口号。

    输入交互命令,使用 auth,回车,得到如下信息:

    [INFO]: Run Tuya Uart Tool.
    --------------------
    1. /dev/ttyACM1
    2. /dev/ttyACM0
    --------------------
    Select serial port: 2
    [INFO]: Open Monitor. (Quit: Ctrl+c)
    auth
    auth
    Use like: auth uuidxxxxxxxxxxxxxxxx keyxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    tuya>

    根据提示使用 auth,写入 uuid authkey

    tuya>
    auth uuid9f6a6xxxxxxxxxxx cGuDnU2YxjHJldjxxxxxxxxxxxxxxxxx
    auth uuid9f6a6xxxxxxxxxxx cGuDnU2YxjHJldjxxxxxxxxxxxxxxxxx
    Authorization write succeeds.

    若设备不支持授权命令,请使用下文的方式,通过修改头文件来配置授权信息。

  • 修改头文件

    在项目路径中找到 tuya_config.h 文件。所选的项目不同,文件所在目录可能有差异(srcinclude)。

    修改文件中授权信息的配置,如下:

    #define TUYA_OPENSDK_UUID      "uuidxxxxxxxxxxxxxxxx"                    // Please change the correct uuid
    #define TUYA_OPENSDK_AUTHKEY "keyxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" // Please change the correct authkey

    重新编译、烧录,然后启动设备。

设备配网

请参考 设备配网指导

常见问题

  1. 烧录失败

    参考安装对应驱动

  2. tos.py激活失败

    若激活失败,可能是因为没有安装python3-venv,请安装后重试

    sudo apt-get install python3-venv

    删除./.venv目录,重新激活