智能照明产品开发包(二)

设备编译与烧录

固件编译

  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

名称功能
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_ENABLE1 为使能输出方式为 PWM,0 为关闭
    APP_PWM_FREQUENCYPWM 频率
    APP_PWM_POLARITYPWM 输出有效电平
    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_ENABLE1 为使能控制引脚,0 为关闭
    CTRL_PIN_NUM控制引脚输出 IO 口
    CTRL_PIN_LEVEL控制引脚输出有效电平
    POWER_CONFIG_ENABLE1 为使能功率转换,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_ENABLE1 为使能伽马转换,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_ENABLE1 为使能 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 相关的标准命令处理文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值