快速入门

更新时间:2023-05-18 07:45:26下载pdf

本章节将会通过对 Demo 进行修改,带您快速体验如何通过涂鸦模组固件实现对产品的开发。

Demo 功能介绍:长按 CBU Nano 板上的 S2(TY_GPIOA_9) 按键,重置设备,使设备进入配网模式。短按S2键控制板载 LED 灯D2(TY_GPIOA_16) 。

准备工作

  • 硬件:

    • CBU Nano 主控板(也可使用涂鸦 Wi-Fi 模组和其它型号的三明治 Wi-Fi 主控板)。

    • 一根 Micro USB 线。

      如果使用的是模组或没有串口芯片的三明治开发板,至少需要准备1个 USB 转 TTL 串口工具。建议准备2个 USB 转 TTL 串口工具,一个打印 log,一个用来烧录使用。

      实验中用到的引脚介绍如下,点击查看 CBU Nano板的详细介绍

      丝印名称 芯片引脚 备注
      S2 GPIO_9 按键引脚,按下为低电平。涂鸦封装的引脚名称为TY_GPIOA_9
      D2 GPIO_16 LED引脚,低电平点亮。涂鸦封装的引脚名称为TY_GPIOA_16
  • 软件:

    • 代码编辑器

      由于编译是在 Ubuntu 下进行的,代码编辑软件可以使用 VScode 或其它代码编辑软件。Windows 下也推荐 VScode ,只是使用时代码跳转会不方便。

    • 模组 SDK

      模组 SDK 获取详细请参考01.环境搭建中的5.编译验证

  • 涂鸦 IoT 平台:
    在对产品进行开发前,需要在涂鸦 IoT 平台创建产品,获取产品 ID(PID)。产品创建流程可以参考02.涂鸦 IoT 平台中的产品创建进行创建。

  • 申请 PMS 账号,下载「生产解决方案」。

    • 注册 PMS 账号

      注册流程:进入涂鸦 PMS 系统,选择个人开发者,按照系统注册指引填写相关信息。注册成功后会收到涂鸦智能发送的注册成功邮件。

      快速入门

    • 下载安装「生产解决方案」

      1. 审核通过后,输入账密,即可成功登录涂鸦 PMS 系统。登录成功后,依次点击知识库管理->软件下载->生产解决方案开始下载「生产解决方案」。

        快速入门

      2. 下载完成后,安装「生产解决方案」。

        双击「生产解决方案」安装包,出现下面的警告,点击更多信息。

        快速入门

        点击仍要运行。

        快速入门

      3. 安装过程中,程序安装的位置可以根据自身需求进行设置,不建议使用中文路径。

        安装完成后,启动「生产解决方案」,登录账密同涂鸦 PMS 系统(涂鸦智造)账密。

        快速入门

        点击云模组打开[云模组烧录授权工具]。
        快速入门

      4. 如果安装完成后如出现下图情况:红色框内全为白色,就需要对软件进行设置使它恢复正常。红色框内为黄色则说明安装成功,可跳到1.3进行阅读。

        快速入门

      5. 点击文件 >设置

        快速入门

      6. 将箭头①指向的“多路选择”的1*1选项改为1*2,点击“确认”。

        快速入门

      7. “多路选择”改变后如下图所示。

        快速入门

      8. 将多路选择的1*2,改回到1*1,「云模组烧录授权工具」的设置就完成了。

        快速入门

1.获取应用代码

在 Ubuntu 中通过cd命令进入到 SDK 中的 apps 目录,可执行下列命令从 GitHub 中拉取写好的示例代码。

例:执行该命令时,正处于/home/share/samba/ty_iot_sdk_bk7231n_2.3.1/apps 路径下。请先进入到 SDK 的 apps ,再执行下列命令,或者 git 拉去后,将文件夹复制到 apps 文件夹中。

git clone https://github.com/Tuya-Community/bk7231n_light1_io_xx.git

在 SDK 的 apps 目录下新建一个bk7231n_light1_io_xx的文件夹,该文件夹名称既是工程名,也是上传固件时使用的固件标识名。建议创建时就将文件夹名称应改成不同的名字,上传到云平台时因为重名导致固件上传失败。

固件命名可以按照:芯片平台+产品类型+产品特性+厂商标识名/个人姓名缩写进行命名。如:固件名称可以命名为bk7231n_light1_io_xxbk7231n表示使用的是bk7231n芯片进行开发的,light1表示一路灯,io表示通过IO口拉高拉低来控制灯的亮灭,xx为名字缩写。

2.修改代码

可以根据下面的提示填写产品的 PID 信息,也可以不对代码进行任何更改,跳过该步骤直接进入下一步编译生成固件。

/apps/bk7231n_light1_io_xx/include目录下的tuya_device.h中的PRODECT_ID修改为您创建得到的 PID。

#ifndef __TUYA_DEVICE_H__
#define __TUYA_DEVICE_H__

/* Includes ------------------------------------------------------------------*/
#include "tuya_cloud_types.h"
#include "tuya_cloud_com_defs.h"

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
#ifdef __cplusplus
    extern "C" {
#endif /* __cplusplus */

#ifdef _TUYA_DEVICE_GLOBAL
    #define _TUYA_DEVICE_EXT
#else
    #define _TUYA_DEVICE_EXT extern
#endif /* _TUYA_DEVICE_GLOBAL */

// device information define
#define DEV_SW_VERSION USER_SW_VER
#define PRODECT_ID "fnrwpglflmbhjvvh" /* 将这里双引号内的PID更改为您创建产品得到PID */

/* Exported functions ------------------------------------------------------- */

_TUYA_DEVICE_EXT \
OPERATE_RET device_init(VOID_T);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __TUYA_DEVICE_H__ */

配网按键引脚在 /apps/bk7231n_light1_io_xx/src 中的tuya_device.c 中,可通过修改第38行的 WIFI_KEY_PIN 进行修改配网按键的引脚。

控制的LED引脚,可以通过修改 /apps/bk7231n_light1_io_xx/include 中的 light_system.h 文件中的 LIGHT_PIN ,选择要控制的 LED 引脚。

3.编译和生成产物介绍

编译

在 Ubuntu 终端中将路径切换到有 build_app.sh 的路径下,输入下列命令进行编译。

例:我这里处于/home/share/samba/ty_iot_sdk_bk7231n_2.3.1/ 路径下,开始执行下列命令。

sh build_app.sh ./apps/bk7231n_light1_io_xx bk7231n_light1_io_xx 1.0.0
命令 含义
sh build_app.sh 使用 shell 命令执行 build_app.sh 脚本。
./apps/tuya_demo_light_pwm 编译的工程所在的路径。
tuya_demo_light_pwm 固件名称,固件标识名,必须要和工程文件夹名称一致。
1.0.0 软件版本号。

生成产物

编译完成后,将生成的固件按照不同版本放在所编译的工程目录 output 文件夹内。

例:如果我们编译的是 apps 文件夹中的 bk7231n_light1_io_xx 工程,编译版本为1.0.0,那么生成的固件将会放在 apps/bk7231n_light1_io_xx/output/1.0.0 中。

快速入门

编译后的产物如上图所示,这里主要关注的bk7231n_light1_io_xx_QIO_1.0.0.binbk7231n_light1_io_xx_UA_1.0.0.binbk7231n_light1_io_xx_UG_1.0.0.bin 这三个文件。

文件名 功能
bk7231n_light1_io_xx_QIO_1.0.0.bin 生产区固件:boot+用户区固件+检测固件。
bk7231n_light1_io_xx_UA_1.0.0.bin 用户区固件
bk7231n_light1_io_xx_UG_1.0.0.bin 升级固件

4.上传固件

自定义开发固件如果不上传到云平台,直接将 UA 文件烧录到已授权的模组中,会导致配网一直无法成功。

  1. 进入涂鸦 IoT 平台,在开发的产品中找到“硬件开发”,按照下图指示点击“新增自定义固件”,填写相关固件信息。

    “固件标识名”必须和您编译时的 apps 下的工程文件夹的名称一致。

    如果固件标识名填写为 wifi_one_light,上传的固件应为 SDK 包中 apps 目录下的 wifi_one_light 文件夹中编译所生成的固件。

    “Flash 大小”为 16Mbit 也就是 2M 大小。不同模组的 flash 大小可以在涂鸦文档中心 中查看相关模组的 flash 大小。

    1byte(字节) = 8bit(位)。 16Mbit / 8 = 2M。

    相关信息填写完成后(没有被②的框框圈到使用默认设置即可),点击“上传固件”,进入“上传固件“步骤。

    快速入门

  2. “固件版本”需要和编译时输入的版本号对应一致。“生产固件”上传包含 QIO 的 bin 文件,“用户区”上传包含 UA的bin 文件,“升级固件”上传包含 UG 的 bin 文件。运行模式选择 QIO。点击保存。

    注意:该顺序不一定固定,在后续固件管理中就不是按照“生产固件”,“用户区固件”和“升级固件”的顺序来排序,所以一定要看清楚是什么类型的固件在进行上传。

    快速入门

  3. 点击“进行固件上架”。

    快速入门

  4. 选择“不限范围”,点击“确认上架”。

    注意:这里选择不限范围是为了方便个人开发。如果是公司将要量产的产品,请严格限定固件的使用范围。

    快速入门

5.获取生产凭证

PMS 账号、云模组烧录授权工具的获取,烧录授权中常见问题都可以通过阅读 04.烧录授权 章节获取到答案。

将我们编译生成的固件上传到涂鸦 IoT 平台,成功上架后,可以免费领取激活码,通过「云模组烧录工具」进行烧录授权。

  1. 点击“免费领取激活码”。

    快速入门

  2. 交付方式选择“生产凭证”,点击“提交订单”。

    生产凭证”:产测授权工具“烧录授权”功能读取的凭证编码,可自动抓取指定数量的授权码,随固件一起逐个写入设备。需上传生产固件至涂鸦 IoT 平台。

    授权码清单”:写有每一个授权码 UUID 及相关信息的表单,需自行逐个写入设备。

    生产凭证-仅授权”:产测授权工具“独立授权”功能读取的凭证编码,无需固件,即可对设备进行逐个授权。

    快速入门

  3. 点击“去订单列表页看看”。

    快速入门

  4. 根据 PID 信息找到要烧录授权的设备,点击箭头②的“下载生产凭证”。

    快速入门

  5. 解压下载好的“生产凭证”,打开 Token_information.txt 文件,复制“生产凭证”。在「云模组烧录授权工具」中输入生产凭证,选择工位“烧录授权”。

    快速入门

  6. 这里可能会出现获取 token 失败,没有操作权限的错误,解决办法如下:

    快速入门

    出现该错误需要在 PMS 系统中,按照下图指示,依次点击“生产管理 >工单管理 >生产凭证确认”,然后输入刚刚没有操作权限的“生产凭证”点击“确认”。再回到「云模组烧录授权工具」中输入该生产凭证点击确认即可开始烧录授权操作。

    快速入门

  7. 生产凭证输入完成后,会如下图显示。在“基础信息”一栏中显示固件的相关信息。

    快速入门

6.烧录授权

注意:为了使 CBU Nano 板可以通过 Micro USB 进行烧录和打印日志,需要将板子上的四个拨码开关全部打开(拨码位置拨到 ON 一端,非数字一端)。

  1. 在「云模组烧录授权工具」中根据按照箭头的指引,输入生产凭证,选择工位为“烧录授权”,点击确认。

    快速入门

  2. 按照下表通过 USB 转 UART 工具把三明治开发板与电脑连接起来。

    USB 转 UART 引脚 三明治 SoC开 发板引脚
    VCC VCC
    GND GND
    TX RX
    RX TX

    选择烧录的串口,点击运行,然后马上给模组断电再上电或按下复位按键使模组重启。

    重启模组时不要直接把串口工具从电脑上拔掉,会导致烧录失败的。应拔掉再插上模组与串口工具连接的 VCC 和 GND 的杜邦线。

    CBU 的三明治 SoC 开发板自带了 CH 304 串口芯片。点击运行后,按下 CBU 的三明治 SoC 开发板上 USB 口的复位按键即可重启芯片,开始烧录授权。

    快速入门

  3. 如果在烧录授权过程中出现进入产测失败错误,原因可能是该开发板在进行烧录授权时已累计连接到网络超过了15分钟。设备此时关闭了产测功能,导致无法进入产测出现了授权失败的情况。解决办法参考 04.烧录授权章节中的 3.1 进入产测失败 的内容进行解决。

    快速入门

7.设备配网

将固件成功烧录到模组后,下载涂鸦智能 App 对设备进行配网,配网成功后就可以通过涂鸦智能 App 对设备进行控制。涂鸦智能 App 可以在手机的应用商城中搜索下载安装,也可以通过扫描下面的二维码进行下载安装。

快速入门

关于配网:

如果在进行烧录授权时使用的是「云模组烧录授权工具」,那么在烧录授权完成后,重启设备默认会进入配网模式。

如果设备之前已经配网成功,烧录授权时使用原厂工具只烧录了用户区的固件且没有更改 PID,设备在上电后仍会再次去连接上次成功连接的网络。想要对设备重新进行配网,需要重置设备,使设备进入配网模式。

使用的模组不同,配网的流程也有所不同。我们这里使用的是 CBU
模组,采用7.1 Wi-Fi&Bluetooth LE 双模模组产品配网进行配网。

设备配网时,应选择 2.4G 频段的 Wi-Fi 进行连接配网。

Wi-Fi&Bluetooth LE 双模模组产品配网

Wi-Fi&Bluetooth LE 双模模组目前有WB系列、WBR 系列、JWBE 系列、CB 系列、CR 系列和 HPWSMS1 模组。

  1. 配网时,确保设备处于配网模式,打开 涂鸦智能App。进入 App 后,点击右上角的加号,开始添加设备。

    快速入门

  2. Wi-Fi&Bluetooth LE 双模模组是通过蓝牙将要连接的 Wi-Fi 的相关信息发送给设备的。点击箭头指向的“自动发现”,就可以看到 App 搜索到可以连接的设备,然后点击“下一步”。

    快速入门

  3. 选中需要配网的设备,点击配网设备所在框中的右上角的加号进入下一步。

    快速入门

  4. 确认设备将要连接的 Wi-Fi 名称和密码是否正确(如果密码栏为空,请输入 Wi-Fi 密码)。

    快速入门

  5. 配网成功后如果显示下图,就可以退出到主界面,使用涂鸦智能 App 对设备进行控制了。

    快速入门

Wi-Fi 模组产品配网

Wi-Fi 模组没有蓝牙,通过 EZ 或AP 的方式进行配网。

  1. 进入涂鸦智能 App 主界面后,点击右上角的加号,开始添加设备。

    快速入门

  2. 按照产品品类在“手动添加”的栏目下找到有“(Wi-Fi)”的图标(下图箭头②指向的位置)。

    快速入门

  3. 确认连接的 Wi-Fi 是 2.4GHz 的,确认设备连接的 Wi-Fi 名称和密码是否正确,点击下一步。

    快速入门

  4. 按照 App 指示进行操作,重置设备,使设备进入到配网模式。

    快速入门

  5. 开始配网的界面如下图显示,等待一段时间,使设备配网成功。

    快速入门

  6. 设备配网成功,并成功连接到涂鸦云平台的界面如下。接下来就可以通过涂鸦智能 App 控制设备了。

    快速入门