更新时间:2024-08-06 02:51:49下载pdf
本文描述一款基于 TuyaOS 平台开发的 Zigbee 协议照明灯具 Demo,支持开关、亮度调节、色温调节、彩光调节等功能。
进行网络配对:
当 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_METHOD
为 0
时为闪烁提示,SCAN_NETWORK_PROMPT_METHOD
为 1
时为呼吸提示。网络配对灯闪提示时长由宏定义 SCAN_NETWORK_PROMPT_TIME_S
决定,通常 SCAN_NETWORK_PROMPT_TIME_S
≤ ZIGBEE_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 秒)后,灯会恢复到常亮状态。
关于产品创建流程,参考产品创建。
参数 | 数值 |
---|---|
Profile ID | 0x0104 |
Device ID |
|
Endpoint | 描述 |
---|---|
0x01 | 当前灯具使用的端口号 |
0xF2 | Green Power 使用的端口号 |
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) | / |
Input clusters (Server) | Output clusters (Client) |
---|---|
/ | Green Power (0x0021) |
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 ,即 0x41 为 1.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。 |
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 |
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 Group If Identifying | C->S |
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 Group If Identifying | C->S |
Attributes
ID | Name | Data type | Range | Default |
---|---|---|---|---|
0x0000 | On Off | bool-0x10 |
|
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 |
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 |
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 |
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 |
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 |
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 |
DPID | DP 含义 |
---|---|
1 | 开关 |
2 | 模式 |
3 | 白光亮度 |
4 | 白光色温 |
5 | 彩光颜色 |
6 | 情景 |
8 | 音乐律动 |
9 | 实时调节 |
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0006 |
|
- | - |
上报 | 0x0006 | 0x0000 | bool |
|
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0300 | 0xF0:私有指令 | - |
|
上报 | 0x0300 | 0xF000:私有属性 | uint8 |
|
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0008 | 0xF0:私有指令 | - | 2 Bytes,范围 0x0000-0x03E8 |
上报 | 0x0008 | 0xF000:私有属性 | uint16 | 2 Bytes,范围 0x0000-0x03E8 |
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0300 | 0xE0:私有指令 | - | 2 Bytes,范围 0x0000-0x03E8 |
上报 | 0x0300 | 0xE000:私有属性 | uint16 | 2 Bytes,范围 0x0000-0x03E8 |
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0300 | 0xE1:私有指令 | - |
|
上报 | 0x0300 | 0xE100:私有属性 | uint4 |
|
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0300 | 0xF1:私有指令 | - | 数据长度:2 + 8 × n,n 是场景的单元个数,n ≤ 8 |
上报 | 0x0300 | 0xF003:私有属性 | uint16 | 2 Bytes,范围 0x0000-0x03E8 |
情景 DP 的数据域详细解析,参考 情景 DP。
指令方向 | Cluster ID | ATTR ID | Type | Value |
---|---|---|---|---|
下发 | 0x0300 | 0xF2:私有指令 | - | 11 Bytes |
音乐 DP 和实时调节 DP 的 Zigbee 协议相同。数据域详细解析,参考 音乐 DP。
150s-180s 随机上报,上报内容为 App Version。
在 Visual Studio Code 软件页面上,打开产品开发包,展开左侧 software/TuyaOS/apps
,可以看到本产品 Demo 的 project
文件夹。
右键产品文件夹,选择 Build Project,在跳出的文本框内输入编译固件的版本号(格式为 x.x.x
)后,按回车键确认。
编译成功后,控制台打印内容如下:
编译产物可在工程路径下的 apps/*产品名称*/output
文件夹查看,其中 QIO 标识的是烧录固件,UG 标识的是 OTA 升级文件,具体如下:
清除编译内容,Telink 平台编译前建议先清除上次编译内容,可右键产品文件夹,选择 Clean Project,输入版本号,按回车键确认对产品编译内容进行清除。
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_id
和 manufacture_name
属性,则必须使用第二种配置方式,并填写 capacity
、product_type
和 product_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 | 灯具路数。
|
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 为开启 |
在产品工程目录的 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 平台管脚对应关系如下,其中 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 管脚对应关系如下:
#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_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 开发者论坛 子设备开发版块 进行沟通咨询。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈