照明产品开发包

更新时间:2023-12-25 03:07:58下载pdf

本文描述一款基于 TuyaOS 平台开发的 Zigbee 协议照明灯具 Demo,支持开关、亮度调节、色温调节、彩光调节等功能。

概述

功能特点

  • 支持涂鸦特色开关、亮度、色温、彩光 HSV、情景和音乐灯的远程控制,接入涂鸦网关即可使用涂鸦 App 控制。
  • 支持 Zigbee 3.0 标准指令控制,产品开发包中已经提供绝大部分的标准指令处理方式,接入标准 Zigbee 3.0 网关即可使用。
  • 支持 Zigbee Touchlink 组网及控制。

操作及现象

  • 进行网络配对:

    • light_app_config.h 文件中的 POWER_ON_AUTO_JOIN 宏定义配置为 1 时,设备在无网络状态下上电,会自动进行网络配对。

    • light_app_config.h 文件中的 POWER_ON_AUTO_JOIN 宏定义配置为 0 时,需要手动重置配网,此时您需要对灯进行上下电重置操作,上下电次数需要大于等于 SCAN_NETWORK_RESET_COUNT 宏定义的值,并且重置过程中上电时间不能超过 5s,否则需要重新计算次数。

    • 网络配对窗口期时长由宏定义 ZIGBEE_JOIN_TIMEOUT_MS 决定,超出窗口期时长则本次配网超时。

    • 当灯开启网络配对时,灯会进入灯闪提示。宏定义 SCAN_NETWORK_PROMPT_METHOD0 时为闪烁提示,SCAN_NETWORK_PROMPT_METHOD1 时为呼吸提示。网络配对灯闪提示时长由宏定义 SCAN_NETWORK_PROMPT_TIME_S 决定,通常 SCAN_NETWORK_PROMPT_TIME_SZIGBEE_JOIN_TIMEOUT_MS

    • 网络配对期间灯闪提示的模式和 HSVBT 数据以及网络配对完成后常亮的模式和 HSVBT 数据可由您在 app_light_prompt.c 文件的 app_light_prompt_ctrl_start 函数中编辑。

           //prompt start data
           prompt_start_data.on_off = TRUE;
        #if (APP_LIGHT_CHANNELS == 3)
           prompt_start_data.mode = COLOR_MODE;
        #else
           prompt_start_data.mode = WHITE_MODE;
        #endif
           prompt_start_data.b_data = 1000;    //range: 0-1000
           prompt_start_data.t_data = 1000;    //range: 0-1000
           prompt_start_data.h_data = 0;       //range: 0-360
           prompt_start_data.s_data = 1000;    //range: 0-1000
           prompt_start_data.v_data = 1000;    //range: 0-1000
      
           //prompt stop data
           prompt_stop_data.on_off = TRUE;
        #if (APP_LIGHT_CHANNELS == 3)
           prompt_stop_data.mode = COLOR_MODE;
        #else
           prompt_stop_data.mode = WHITE_MODE;
        #endif
           prompt_stop_data.b_data = 1000;     //range: 0-1000
           prompt_stop_data.t_data = 1000;     //range: 0-1000
           prompt_stop_data.h_data = 0;        //range: 0-360
           prompt_stop_data.s_data = 1000;     //range: 0-1000
           prompt_stop_data.v_data = 1000;     //range: 0-1000
      
    • 此时可将灯与网关进行配对,步骤参考 配网步骤

    • 配对成功时,灯会恢复到常亮状态,此时可在 App 页面看到此设备。

    • 配对超时(时间默认 180 秒)后,灯会恢复到常亮状态。

产品创建

关于产品创建流程,参考产品创建

设备协议介绍

Zigbee 基本信息

参数 数值
Profile ID 0x0104
Device ID
  • 0x0101:一路灯 C
  • 0x010C:二路灯 CW
  • 0x0102:三路灯 RGB
  • 0x010D:四路灯 RGBC,五路灯 RGBCW

Endpoint 描述

Endpoint 描述
0x01 当前灯具使用的端口号
0xF2 Green Power 使用的端口号

支持的 cluster

Endpoint 0x01

Input clusters (Server) Output clusters (Client)
Basic (0x0000) OTA Upgrade (0x0019)
Identify (0x0003) Time (0x000A)
Groups (0x0004) /
Scenes (0x0005) /
On/Off (0x0006) /
Level Control (0x0008) /
Color Control (0x0300) /
Touchlink Commissioning (0x1000) /

Endpoint 0xF2

Input clusters (Server) Output clusters (Client)
/ Green Power (0x0021)

支持的属性和命令

Basic cluster

Attributes

ID Name Data type Range Default
0x0000 ZCL Version uint8-0x20 0x00-0xff 0x03。
0x0001 Application Version uint8 -0x20 0x00-0xff 例如,0b 01 00 0001 = 1.0.1,即 0x411.0.1。OTA 功能会用到该版本号,在 OTA 开始阶段,网关会读取 OTA 包的版本号推送给设备。在 OTA 成功重启后,网关会读取版本号来确定是否升级成功。只能往更高的版本升级。
0x0002 Stack Version uint8-0x20 0x00-0xff 0x02。
0x0003 Hardware Version uint8-0x20 0x00-0xff 0x01。
0x0004 Manufacturer Name string-0x42 0-32 bytes XXX…XXX(长度为 16 个字节,由 8 字节前缀和 8 字节的 PID 组成),0-7 bytes:_TZ3000_,8-16 bytes:PID(由产品经理在平台或者自助创建和提供)。该字段决定了手机 App 界面的 UI 和功能展现,如果对 PID 没有特殊要求,可采用默认 PID。
0x0005 Model Identifier string-0x42 0-32 bytes TS0505B。
0x0007 Power Source enum8-0x30 0x00-0xff 0x01。
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0001。

Identify cluster

Attributes

ID Name Data type Range Default
0x0000 Identify Time uint16-0x21 0x0000-0xffff 0x0000
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0001

Commands

ID Name Direction
0x00 Identify C->S
0x01 Identify Query C->S

Groups cluster

Attributes

ID Name Data type Range Default
0x0000 Name Support map8-0x18 desc 0x00
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0002

Commands

ID Name Direction
0x00 Add Group C->S
0x01 View Group C->S
0x02 Get Group Membership C->S
0x03 Remove Group C->S
0x04 Remove All Groups C->S
0x05 Add Ggroup If Identifying C->S

Scenes cluster

Attributes

ID Name Data type Range Default
0x0000 Scene Count uint8-0x20 0x00-0xff 0x00
0x0001 Current Scene uint8-0x20 0x00-0xff 0x00
0x0002 Current Group uint16-0x21 0x0000-0xfff7 0x0000
0x0003 Scene Valid bool-0x10 0 or 1 0x00
0x0004 Name Support map8-0x18 desc 0x00
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0002

Commands

ID Name Direction
0x00 Add Group C->S
0x01 View Group C->S
0x02 Get Group Membership C->S
0x03 Remove Group C->S
0x04 Remove All Groups C->S
0x05 Add Ggroup If Identifying C->S

On off cluster

Attributes

ID Name Data type Range Default
0x0000 On Off bool-0x10
  • 0:Off
  • 1:On
0x00
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0002

Commands

ID Name Direction
0x00 Off C->S
0x01 On C->S
0x02 Toggle C->S

Level control cluster

Attributes

ID Name Data type Range Default
0x0000 Current Level uint8-0x20 0x01-0xfe 0xfe
0x000F Options map8-0x18 desc 0x00
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0002
Commands
ID Name Direction
0x00 Move to Level C->S
0x01 Move C->S
0x02 Step C->S
0x03 Stop C->S
0x04 Move to Level (with On/Off) C->S
0x05 Move (with On/Off) C->S
0x06 Step (with On/Off) C->S
0x07 Stop (with On/Off) C->S

Color control cluster

Attributes

ID Name Data type Range Default
0x0000 Current Hue uint8-0x20 0x00-0xfe 0x00
0x0001 Current Saturation uint8-0x20 0x00-0xfe 0xfe
0x0003 Current X uint16-0x21 0x0000-0xfeff 0x0000
0x0004 Current Y uint16-0x21 0x0000-0xfeff 0x0000
0x0007 Color Temperature Mireds uint16-0x21 0x0000-0xfeff 0x0000
0x0008 Color Mode enum8-0x30 0x00-0x02 0x02
0x000F Options map8-0x18 / 0x00
0x0010 Number Of Primaries uint8-0x20 0x00-0x06 0xff
0x4001 Enhanced Color Mode enum8-0x30 0x00-0xff 0x02
0x400A Color Capabilities map16-0x19 0x0000-0x001f 0x0019
0x400B Color Temp Physical Min Mireds uint16-0x21 0x0000-0xfeff 0x0099
0x400C Color Temp Physical Max Mireds uint16-0x21 0x0000-0xfeff 0x01F4
0x400D Couple Color Temp To Level Min Mireds uint16-0x21 Color Temp Physical Min Mireds-Color Temp Physical Max Mireds 0x0099
0x4010 Start Up Color Temperature Mireds uint16-0x21 0x0000-0xfeff 0x0099
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0002

Commands

ID Name Direction
0x00 Move to Hue C->S
0x01 Move Hue C->S
0x02 Step Hue C->S
0x03 Move to Saturation C->S
0x04 Move Saturation C->S
0x05 Step Saturation C->S
0x06 Move to Hue and Saturation C->S
0x07 Move to Color C->S
0x08 Move Color C->S
0x09 Step Color C->S
0x0a Move to Color Temperature C->S
0x47 Stop Move Step C->S
0x4b Move Color Temperature C->S
0x4c Step Color Temperature C->S

Touchlink commissioning cluster

Attributes

ID Name Data type Range Default
0xFFFD Cluster Revision uint16-0x21 0x0000-0xffff 0x0001

Commands

ID Name Direction
0x00 Scan request C->S
0x02 Device information request C->S
0x06 Identify request C->S
0x07 Reset to factory new request C->S
0x10 Network start request C->S
0x12 Network join router request C->S
0x14 Network join end device request C->S
0x16 Network update request C->S

Over the air upgrade

Attributes

ID Name Data type Range Default
0x0000 UpgradeServerID EUI64 - 0xF0 / 0xffffffffffffffff
0x0001 FileOffset uint32 - 0x23 / 0x00000000
0x0002 CurrentFileVersion uint32 - 0x23 / 0x00000040
0x0006 ImageUpgradeStatus enum8 - 0x30 / 0x00
0x0007 Manufacturer ID uint16 - 0x21 / 0x1002
0x0008 Image Type ID uint16 - 0x21 / 0x1602
0x0009 MinimumBlockPeriod uint16 - 0x21 / 0x0000
0xfffd ClusterRevision uint16 - 0x21 0x0000 -0xffff 0x0001

Commands

ID Name Direction
0x00 Image Notify S->C
0x01 Query Next Image Request C->S
0x02 Query Next Image Response S->C
0x03 Image Block Request C->S
0x05 Image Block Response S->C
0x06 Upgrade End Request C->S
0x07 Upgrade End Response S->C

常用 DP 与 cluster 对应关系

DPID DP 含义
1 开关
2 模式
3 白光亮度
4 白光色温
5 彩光颜色
6 情景
8 音乐律动
9 实时调节

DP1 开关

指令方向 Cluster ID ATTR ID Type Value
下发 0x0006
  • 0x00:off
  • 0x01:on
- -
上报 0x0006 0x0000 bool
  • 0:Off
  • 1:On

DP2 模式

指令方向 Cluster ID ATTR ID Type Value
下发 0x0300 0xF0:私有指令 -
  • 0:白光模式
  • 1:彩光模式
  • 2:场景模式
  • 3:音乐模式
上报 0x0300 0xF000:私有属性 uint8
  • 0:白光模式
  • 1:彩光模式
  • 2:场景模式
  • 3:音乐模式

DP3 白光亮度

指令方向 Cluster ID ATTR ID Type Value
下发 0x0008 0xF0:私有指令 - 2 Byte,范围 0x0000-0x03E8
上报 0x0008 0xF000:私有属性 uint16 2 Byte,范围 0x0000-0x03E8

DP4 白光色温

指令方向 Cluster ID ATTR ID Type Value
下发 0x0300 0xE0:私有指令 - 2 Byte,范围 0x0000-0x03E8
上报 0x0300 0xE000:私有属性 uint16 2 Byte,范围 0x0000-0x03E8

DP5 彩光颜色

指令方向 Cluster ID ATTR ID Type Value
下发 0x0300 0xE1:私有指令 - H:2 Byte,范围 0x0000-0x0168S:2 Byte,范围 0x0000-0x03E8V:2 Byte,范围 0x0000-0x03E8
上报 0x0300 0xE100:私有属性 uint4 H:2 Byte,范围 0x0000-0x0168S:2 Byte,范围 0x0000-0x03E8V:2 Byte,范围 0x0000-0x03E8

DP6 情景

指令方向 Cluster ID ATTR ID Type Value
下发 0x0300 0xF1:私有指令 - 数据长度:2 + 8 × n,n 是场景的单元个数,n ≤ 8
上报 0x0300 0xF003:私有属性 uint16 2 Byte,范围 0x0000-0x03E8

情景 DP 的数据域详细解析,参考 情景 DP

DP8 音乐/DP9 实时调节

指令方向 Cluster ID ATTR ID Type Value
下发 0x0300 0xF2:私有指令 - 11 Byte

音乐 DP 和实时调节 DP 的 Zigbee 协议相同。数据域详细解析,参考 音乐 DP

默认心跳

150s-180s 随机上报,上报内容为 App Version。

设备编译与烧录

固件编译

  1. 在 Visual Studio Code 软件页面上,打开产品开发包,展开左侧 software/TuyaOS/apps,可以看到本产品 Demo 的 project 文件夹。

    照明产品开发包
  2. 右键产品文件夹,选择 Build Project,在跳出的文本框内输入编译固件的版本号(格式为 x.x.x)后,按回车键确认。

    照明产品开发包 照明产品开发包
  3. 编译成功后,控制台打印内容如下:

    照明产品开发包

    编译产物可在工程路径下的 apps/*产品名称*/output 文件夹查看,其中 QIO 标识的是烧录固件,UG 标识的是 OTA 升级文件,具体如下:

    照明产品开发包
  4. 清除编译内容,Telink 平台编译前建议先清除上次编译内容,可右键产品文件夹,选择 Clean Project,输入版本号,按回车键确认对产品编译内容进行清除。

    照明产品开发包 照明产品开发包

固件烧录

  • Telink 平台使用原厂烧录工具烧录,可在 TLSR8258_3.8.1\software\TuyaOS\docs\ 查看。
  • 涂鸦烧录授权工具烧录及芯科平台原厂工具烧录,可参考 涂鸦烧录授权及芯科原厂工具烧录说明烧录授权章节

例程开发说明

基础信息配置

设备注册配置

在产品工程的 src 文件夹中的 app_dev_register.c 文件,可修改注册的 device ID、cluster、attribute 等设备信息。

可在文件如下所示处,修改注册的 server cluster,您可根据需要进行增删:

// server cluster list
CONST TAL_CLUSTER_T app_server_cluster_list[] = {
    DEF_CLUSTER_IDENTIFY_CLUSTER_ID(identify_attr_list)
    DEF_CLUSTER_GROUPS_CLUSTER_ID(group_attr_list)
    DEF_CLUSTER_SCENES_CLUSTER_ID(scene_attr_list)
    DEF_CLUSTER_ON_OFF_CLUSTER_ID(onoff_attr_list)
    DEF_CLUSTER_ZLL_COMMISSIONING_CLUSTER_ID(zll_commissioning_attr_list)
    DEF_CLUSTER_LEVEL_CONTROL_CLUSTER_ID(level_control_attr_list)
    DEF_CLUSTER_COLOR_CONTROL_CLUSTER_ID(color_control_attr_list)
};

可在文件如下所示处,修改设备注册的 endpoint 及其的 device ID 等信息。

//endpoint descriptor
TAL_ENDPOINT_T dev_endpoint_desc[] = {
    {0x01, ZHA_PROFILE_ID, ZG_DEVICE_ID_EXTENDED_COLOR_LIGHT, SERVER_CLUSTER_NUM, (TAL_CLUSTER_T *)&app_server_cluster_list[0], 0, NULL},
    {0xF2, ZGP_PROFILE_ID, ZG_DEVICE_ID_GP_PROXY_MINIMUM, 0, NULL, CLIENT_CLUSTER_NUM, (TAL_CLUSTER_T *)&app_client_cluster_list[0]},
};

固件信息修改

在产品工程文件夹下的 app_config.yml,可配置该产品的 PID、model ID、设备类型等信息。文件支持两种配置方式,您根据需求任选其一即可。文件内容及作用如下:

#######################################################################
# COMPATIBILITY of [Tuya mode]
# For the use of Tuya redefined attributes:
# [cluster:0x0000,attribute:0x0004] Tuya manufacturer name
# [cluster:0x0000,attribute:0x0005] Tuya model ID
########################################################################
Firmware_Information:
  description: "this is a demo project"
  device_role: "router"   # router/sleep_end_dev
  image_type: 0x1602
  manufacture_id: 0x1002
  model_id: "TS0505B"
  manufacture_name: "_TZ3210_hxyvqfuz" # capacity+pid
  module_name: "ZSU"
  chip_id: "efr32mg21a020f1024im32" # efr32mg21a020f1024im32/efr32mg21a020f768im32


########################################################################
# COMPATIBILITY of [Zigbee standard mode]
# For the use of ZCL standard attributes:
# [cluster:0x0000,attribute:0x0004] ManufacturerName
# [cluster:0x0000,attribute:0x0005] ModelIdentifier
########################################################################
# Firmware_Information:
#   description: "this is a demo project"
#   device_role: "router"   # router/sleep_end_dev
#   image_type: 0x1602
#   manufacture_id: 0x1002
#   model_id: "custom"
#   manufacture_name: "custom"
#   product_id: "bhzkbugw"
#   capacity: "_TZ3210_"
#   product_type: "TS0502B"  
#   module_name: "ZSU"
#   chip_id: "efr32mg21a020f1024im32" # efr32mg21a020f1024im32/efr32mg21a020f768im32

如果您想要自定义 model_idmanufacture_name 属性,则必须使用第二种配置方式,并填写 capacityproduct_typeproduct_id 字段。

名称 功能
description 产品描述字段
device_role 设备角色类型,router代表正常功耗路由设备,sleep_end_dev 代表休眠低功耗设备,请谨慎更改
image_type 固件信息,用于 OTA 时验证使用
manufacture_id 厂商 ID,用于 OTA 时验证使用
model_id 设备型号,用于加入涂鸦网关后确定设备功能,请谨慎更改
manufacture_name 产品能力值和涂鸦 PID 拼接,用下划线(_)连接,例如 _TZ3210_hxyvqfuz
module_name 模组型号,指示产品使用的模组
chip_id 芯片型号,指示产品使用的芯片,请勿更改
capacity 涂鸦产品能力值,该字段请勿更改。如需更改,请咨询涂鸦产品经理
product_type 设备型号,用于加入涂鸦网关后确定设备功能,请谨慎更改
product_id 涂鸦产品 ID,此处填写的是默认 PID,烧录授权时会写入新 PID

产品开发包配置

例程开发需要开发者在产品工程目录的 include 文件夹的 light_app_config.h 文件进行一系列配置:

  • 产品基础相关配置,可配置项如下:

    配置项 功能
    APP_LIGHT_CHANNELS 灯具路数。
    • 1 为一路灯(C)
    • 2 为二路灯(CW)
    • 3 为三路灯(RGB)
    • 4 为四路灯(RGBC)
    • 5 为五路灯(RGBCW)
    DEFAULT_TX_POWER 设备发射功率,可根据需求修改,受限制于硬件性能。
    LIGHT_ON_GRADUAL_TIME_MS 开灯渐变时间,涂鸦特色功能。
    LIGHT_OFF_GRADUAL_TIME_MS 关灯渐变时间,涂鸦特色功能。
  • 产品配网相关配置,可配置项如下:

    配置项 功能
    ZIGBEE_JOIN_TIMEOUT_MS 网络配对超时时间,单位 ms
    POWER_ON_AUTO_JOIN 上电没有网络时是否自动配网
    SCAN_NETWORK_RESET_COUNT 触发重置配网的上下电次数
    SCAN_NETWORK_PROMPT_TIME_S 配网提醒灯闪时长,单位 s
    SCAN_NETWORK_PROMPT_METHOD 配网提醒灯闪方式,0 为闪烁,1 为呼吸
  • 产品硬件参数配置,可配置项如下:

    配置项 功能
    PWM_MODE_ENABLE 1 为使能输出方式为 PWM,0 为关闭
    APP_PWM_FREQUENCY PWM 频率
    APP_PWM_POLARITY PWM 输出有效电平
    APP_PWM_RED_PIN_NUM 红光输出 IO 口
    APP_PWM_GREEN_PIN_NUM 绿光输出 IO 口
    APP_PWM_BLUE_PIN_NUM 蓝光输出 IO 口
    APP_PWM_COLD_PIN_NUM 冷光输出 IO 口
    APP_PWM_WARM_PIN_NUM 暖光输出 IO 口
    BRIGHT_MODE_CCT 色温调节方式。0 为 CW 模式,1 为 CCT 模式
    CTRL_PIN_ENABLE 1 为使能控制引脚,0 为关闭
    CTRL_PIN_NUM 控制引脚输出 IO 口
    CTRL_PIN_LEVEL 控制引脚输出有效电平
    POWER_CONFIG_ENABLE 1 为使能功率转换,0 为关闭
    CW_POWER_CONFIG 白光功率参数百分比,范围 100-200
    RGB_POWER_CONFIG 彩光功率参数百分比,范围 100-200
    LIGHT_CONFIG_CW_MIN 白光引脚输出的最小占空比百分比,范围 1-100
    LIGHT_CONFIG_CW_MAX 白光引脚输出的最大占空比百分比,范围 1-100
    LIGHT_CONFIG_COLOR_MIN 彩光引脚输出的最小占空比百分比,范围 10-100
    LIGHT_CONFIG_COLOR_MAX 彩光引脚输出的最大占空比百分比,范围 10-100
    COLOR_TEMPERATURE_KEV_MAX 最大色温开尔文值
    COLOR_TEMPERATURE_KEV_MIN 最小色温开尔文值
  • 彩光伽马参数配置,可配置项如下:

    配置项 功能
    GAMMA_ENABLE 1 为使能伽马转换,0 为关闭
    RED_GAMMA 红光伽马参数,范围 0-100
    RED_WHITE_BALANCE 红光白平衡参数,范围 0-100
    GREEN_GAMMA 绿光伽马参数,范围 0-100
    GREEN_WHITE_BALANCE 绿光白平衡参数,范围 0-100
    BLUE_GAMMA 蓝光伽马参数,范围 0-100
    BLUE_WHITE_BALANCE 蓝光白平衡参数,范围 0-100
  • 产品产测参数配置,可配置项如下:

    配置项 功能
    LIGHT_BEACON_MF_TEST_ENABLE 1 为使能 Beacon 产测,0 为关闭
    PRODUCT_STEP1_REPEAT 产测一是否重复进入
    PRODUCT_COLD_AGING_MINS 冷白光(C)老化时间
    PRODUCT_WARM_AGING_MINS 暖白光(W)老化时间
    PRODUCT_COLOR_AGING_MINS 彩光(RGB)老化时间
  • Zigbee 标准及涂鸦私有功能配置,可配置项如下:

    配置项 功能
    ZIGBEE_START_UP_ON_OFF_ENABLE 是否开启 startup on off 功能,0 为关闭,1 为开启
    TUYA_PRIVATE_CAMMAND_ENABLE 是否开启涂鸦私有功能,0 为关闭,1 为开启

管脚配置

PWM 输出引脚配置

在产品工程目录的 include 文件下的 light_app_config.h,可配置 PWM 输出的 IO 口,可在文件如下所示处,修改 IO 配置:

//pwm io config
#define APP_PWM_RED_PIN_NUM     APP_GPIO_PA3
#define APP_PWM_GREEN_PIN_NUM   APP_GPIO_PD2
#define APP_PWM_BLUE_PIN_NUM    APP_GPIO_PC5
#define APP_PWM_COLD_PIN_NUM    APP_GPIO_PA4
#define APP_PWM_WARM_PIN_NUM    APP_GPIO_PA0

Telink 平台管脚对应关系

Telink 平台管脚对应关系如下,其中 TUYA_GPIO_NUM_0 对应的是 0,以此类推。

#define APP_GPIO_PA0    TUYA_GPIO_NUM_0
#define APP_GPIO_PA1    TUYA_GPIO_NUM_1
#define APP_GPIO_PA2    TUYA_GPIO_NUM_2
#define APP_GPIO_PA3    TUYA_GPIO_NUM_3
#define APP_GPIO_PA4    TUYA_GPIO_NUM_4
#define APP_GPIO_PA5    TUYA_GPIO_NUM_5
#define APP_GPIO_PA6    TUYA_GPIO_NUM_6
#define APP_GPIO_PA7    TUYA_GPIO_NUM_7
#define APP_GPIO_PB0    TUYA_GPIO_NUM_8
#define APP_GPIO_PB1    TUYA_GPIO_NUM_9
#define APP_GPIO_PB2    TUYA_GPIO_NUM_10
#define APP_GPIO_PB3    TUYA_GPIO_NUM_11
#define APP_GPIO_PB4    TUYA_GPIO_NUM_12
#define APP_GPIO_PB5    TUYA_GPIO_NUM_13
#define APP_GPIO_PB6    TUYA_GPIO_NUM_14
#define APP_GPIO_PB7    TUYA_GPIO_NUM_15
#define APP_GPIO_PC0    TUYA_GPIO_NUM_16
#define APP_GPIO_PC1    TUYA_GPIO_NUM_17
#define APP_GPIO_PC2    TUYA_GPIO_NUM_18
#define APP_GPIO_PC3    TUYA_GPIO_NUM_19
#define APP_GPIO_PC4    TUYA_GPIO_NUM_20
#define APP_GPIO_PC5    TUYA_GPIO_NUM_21
#define APP_GPIO_PC6    TUYA_GPIO_NUM_22
#define APP_GPIO_PC7    TUYA_GPIO_NUM_23
#define APP_GPIO_PD0    TUYA_GPIO_NUM_24
#define APP_GPIO_PD1    TUYA_GPIO_NUM_25
#define APP_GPIO_PD2    TUYA_GPIO_NUM_26
#define APP_GPIO_PD3    TUYA_GPIO_NUM_27
#define APP_GPIO_PD4    TUYA_GPIO_NUM_28
#define APP_GPIO_PD5    TUYA_GPIO_NUM_29
#define APP_GPIO_PD6    TUYA_GPIO_NUM_30
#define APP_GPIO_PD7    TUYA_GPIO_NUM_31

芯科 MG21 管脚对应关系

芯科 MG21 管脚对应关系如下:

#define APP_GPIO_PA0    0
#define APP_GPIO_PA1    1
#define APP_GPIO_PA2    2
#define APP_GPIO_PA3    3
#define APP_GPIO_PA4    4
#define APP_GPIO_PA5    5
#define APP_GPIO_PA6    6
#define APP_GPIO_PB0    7
#define APP_GPIO_PB1    8
#define APP_GPIO_PC0    9
#define APP_GPIO_PC1    10
#define APP_GPIO_PC2    11
#define APP_GPIO_PC3    12
#define APP_GPIO_PC4    13
#define APP_GPIO_PC5    14
#define APP_GPIO_PD0    15
#define APP_GPIO_PD1    16
#define APP_GPIO_PD2    17
#define APP_GPIO_PD3    18
#define APP_GPIO_PD4    19

App 层文件说明

  • app_main.c:该文件是主函数文件,包含程序初始化函数、网络状态回调函数、ZCL 数据接收回调函数、写属性回调函数、应用层 Flash 读写函数和产测回调函数等,是产品开发最主要的文件之一。

  • app_dev_register.c:该文件是设备注册文件,列举了设备注册的 device ID,cluster ID,attribute ID 等,您可以通过修改该文件,来改变设备的注册信息。

  • app_light_prod.c:该文件是设备产测文件,当设备接收到 Beacon 广播的进入 Beacon 产测数据帧时,会进入 tal_beacon_mf_test_callback 回调,该回调调用了 prod_test_callback 函数,此时设备会进入自动化产测灯闪。自动化产测灯闪由该文件实现,尽量不要修改该文件。

  • app_light_prompt.c:该文件是设备灯闪提示文件,该文件包含闪烁、呼吸等灯闪相关函数。

  • app_cluster_onoff.c:该文件是 Zigbee 3.0 onoff cluster 相关的标准命令处理文件。

  • app_cluster_level_control.c:该文件是 Zigbee 3.0 level control cluster 相关的标准命令处理文件。

  • app_cluster_color_control.c:该文件是 Zigbee 3.0 color control cluster 相关的标准命令处理文件。

支持与帮助

在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 子设备开发版块 进行沟通咨询。