蓝牙 Mesh 照明产品开发包

更新时间:2022-11-24 09:19:59下载pdf

本文介绍了适用于蓝牙 mesh 照明类产品的相关 Demo 说明,芯片平台基于Telink TLSR825x,介绍了如何搭建调试环境以及产品开发的相关注意事项。

下图为照明类产品的开发框架:

蓝牙 Mesh 照明产品开发包

注意事项

  • 不允许改变控制命令的原有含义。
  • 不允许增加本文没有提及的控制命令。如有更多控制命令需求,请与涂鸦联系。

DP 介绍

蓝牙 mesh 标准命令

对于蓝牙 mesh 标准命令,涂鸦会视为自定义命令。当应用和网关与设备进行通信时,会将自定义命令转换为蓝牙 mesh 标准命令。

说明:蓝牙 mesh 标准 DP 接口函数为 void tuya_mesh_data_recv_callback(uint16_t src_addr, uint16_t dst_addr, uint32_t opcode, uint8_t *data, uint16_t data_len, uint8_t ttl)。蓝牙 mesh 标准命令的使用,请参考 Mesh Model Specification

涂鸦定义 mesh 定义 名称
1 Generic OnOff(0x0282) 开关
3 Light Lightness Actual(0x4c82) 亮度值
4 Light CTL Temperature(0x6482) 冷暖值
5 Light HSL(0x7682) 彩光

涂鸦定义命令

  • 1~30 为基础功能通用 DP,适用于可以复用到其他大部分品类的基础功能 DP,通用 DPID 不可以重复。

  • 31~50 为新功能通用 DP,适用于可以复用到其他大部分品类的新功能 DP,通用 DPID 不可以重复。

  • 51~100 为品类特有功能 DP,适用于通用功能DP无法满足需求的情况下,各品类自主定义的品类特有的DP功能。

  • 101~200 为自定义 DP,适用于自定义方案,客户新增自定义功能。

  • 201~250 为系统 DP,适用于电工、传感等其他产品可复用的 DP 能力。

    说明:自定义 DP 接口函数为 void app_tuya_vendor_light_dp_data(u8 *par, int par_len),您可在此函数下添加自定义 DP 功能。

涂鸦定义 DP 名称 含义
2 模式 用于切换灯的工作模式,例如白光、彩光、场景、音乐律动等
6 场景 1. 涂鸦自定义场景
2. 可增加最多至8个场景
3. 每个场景至多8个单元
4. 模式:静态、渐变、跳变
7 倒计时 1. 仅支持本地倒计时开关
2. 断电或App操作开关后即失效
8 音乐律动 App依据音乐将HSV发送给设备端执行
33 断电记忆 1. 开启和关闭断电记忆
2. 开启后可选择以下三种模式
0x00 初始默认值
0x01 恢复记忆值
0x02 用户定制(HSVBT)
34 通电勿扰 1. 开启和关闭通电勿扰
2. 开启后,在关灯5s后,首次上电不会亮灯,5s内再次上电才会亮灯
3. 用于有经常断电风险的地区
100-200 自定义DP 用户自定义DP功能可在此范围内增加自己自定义功能

说明:特殊DP介绍,因为 6 场景和 8 音乐律动的原始协议过长,不适合蓝牙 mesh 使用,因此涂鸦在应用和网关层压缩了协议。当设备收到此DP后,需要进行解压协议才能使用,BLE 模组 SDK已全部实现。

场景DP

原始数据(与 Wi-Fi 通信场景数据一致):

  • 类型:字符

  • Value:0011223344445555666677778888

    数值 含义
    00 情景号
    11 单元切换时间(0-100)
    22 单元变化时间(0-100)
    33 单元变化模式(0静态 1跳变 2渐变)
    4444 H(色度: 0-360,0x0000-0x0168)
    5555 S(饱和度: 0-1000,0x0000-0x03E8)
    6666 V(明度: 0-1000,0x0000-0x03E8)
    7777 白光亮度(0-1000,0x0000-0x03E8)
    8888 色温值(0-1000,0x0000-0x03E8)

    说明:数字1-8的标号对应有多少单元就有多少组,最多8个单元。

  • 蓝牙 mesh压缩协议如下:

    公共头 公共头 第一单元
    0000 11xx x222 2222 彩光模式 3xx4 5566 4444 4444 5555 5555 6666 6666
    白光模式 3xxx 4455 4444 4444 5555 5555 xxxx xxxx
    数值 含义
    0 情景号:占 4 bit 数值 1-8
    1 变化模式:占 2 bit 渐变、跳变、静态
    2 变化时间:占 7 bit 0-100 单元变化时间与切换时间相同,故此处采用一个7bit来表示
    3 色彩模式:占 1 bit 0 为白光模式 1 为彩光模式 模式不同,单元数据含义不同
    彩光模式 4 H:占 9 bit
    彩光模式 5 S:占 10 bit
    彩光模式 6 V:占 10 bit
    白光模式 4 lightness:占 10 bit
    白光模式 5 tempture:占 10 bit
    白光模式 6 null

音乐律动DP

原始数据(与 Wi-Fi 通信场景数据一致):

  • 类型:字符串

  • Value:011112222333344445555

    数值 含义
    0 变化方式 0表示直接输出,1表示渐变
    1111 H(色度: 0-360,0x0000-0x0168)
    2222 S(饱和度: 0-1000,0x0000-0x03E8)
    3333 V(明度: 0-1000,0x0000-0x03E8)
    4444 白光亮度(0-1000,0x0000-0x03E8)
    5555 色温值(0-1000,0x0000-0x03E8)
  • 蓝牙 mesh压缩协议如下:

    第一字节 第二字节 第三字节 第四字节
    01xx 2233 1111 1111 2222 2222 3333 3333
    数值 字段说明 长度(byte) 数据代表说明
    0 变化方式 1 8bit:0HxxSSVV
    最高位: 0 表示跳变,1 表示渐变
    1 H 1 0-360.360占9个bit,1Byte只有8bit,需要向"变化方式"借 1 bit,借来的值补充为最高位
    2 S 1 0-1000.1000占10个bit,1Byte只有 8 bit,需要向"变化方式"借 2 bit,借来的值补充为最高位
    3 V 1 0-1000.1000占10个bit,1Byte只有 8 bit,需要向"变化方式"借 2 bit,借来的值补充为最高位

遥控器命令

遥控器控制DP接口函数为 void ty_light_remote_dp_data(u8 * par, int par_len)

涂鸦命令 涂鸦名称 含义
0x81 订阅遥控器 1. 将设备添加入遥控器的群组
2. 订阅完成后,遥控器可以控制该灯
0x83 亮度 遥控器控制灯的亮度
0x87 喜好收藏 1. 喜好收藏:收到该命令时设备将当前的状态记录下来,形成一个喜好组并收藏
2. 喜好执行:收到该命令时设备取出之前收藏的喜好组,并将设备状态切换为收藏的状态

文件说明

从 GitHub 获取到 SDK 和 Demo 后,tuya_smesh_sdk_tlsr825x_light 开发包中的文件及相关介绍如下:

文件名 文件介绍 注意事项
app_common.c 常用功能,app初始化、运行,处理mesh网络DP数据 最主要的c文件
app_factory_test.c 产测相关程序 运行的是涂鸦标准的产测,如无特殊情况,不要改动
app_light_cmd.c 灯光功能命令设置和读取 设置(读取)灯的模式、亮度、色温等一系列功能
app_light_control.c 灯光控制及保存参数 根据模式控制灯,依据app_light_cmd.c里函数设置下来的参数控制灯的运行
app_light_prompt.c 应用程序指示灯提示 主要用于放置灯未配网的提示
app_light_uart.c 串口灯应用 对 app_uart.c 里面的数据内容进行进一步解析,主要是串口灯应用部分,具体协议参考 BLE Mesh 通用串口协议
app_rssi.c 产测相关,检测 dongle 的rssi 检测 dongle 的信号强度,确认是否需要进入产测
app_uart.c 通用串口协议和产测协议数据初始化、处理 用于烧录授权信息,客户也可以用于与MCU交互
tuya_node_init.c mesh 网络参数初始化,设置或读取 mesh 相关配置值,如能力值、pid等 运行的是涂鸦标准的初始化,如无特殊情况,不要改动
ty_fifo.h fifo输入输出组件 由上层UART调用
ty_gpio_base_test.h 模块gpio测试组件
ty_light_basis_hw_timer.h 硬件定时器组件 10ms 中断处理灯的渐变
ty_light_basis_sw_timer.h 事件回调组件 由 ty_light_basis_sw_timer_start 调用
ty_light_basis_soc_gpio.h IO口的初始化,读写组件 将平台上的1、2、3等映射到真正的 GPIO 上
ty_light_basis_tools.h 常用工具组件
ty_light_cfg.h 灯类 json 数据初始化组件
ty_light_driver_set.h 灯类驱动设置:PWM 或 I2C(两款驱动芯片)组件 对外是 ty_ty_light_driver_set_rgbcw,直接控制 rgbcw 的值(0-20000)
ty_light_gradual.h 灯光渐变组件
ty_light_json.h json文件读取组件
ty_light_mdev.h 整灯产测(含老化等)组件
ty_light_remote.h 遥控器控制组件
ty_light_save.h 灯功能数据存储组件
ty_nv.h 底层flash存储组件
ty_light_sence.h 场景灯光控制组件
ty_rssi_base_test.h 底层rssi测试程序组件
ty_string_op.h 字符串、十六进制等相互转换程序组件
ty_timer_event.h 定时器任务初始化、运行、添加、删除功能程序组件 对外接口是 ty_timer_event_add
return 0:循环执行
return -1:停止执行
return 正数:更新时间后继续执行
ty_uart_cmd_sever_for_factory_test.h 产测相关协议底层处理组件

重点函数介绍

文件名 函数名 函数作用 备注
app_common.c void mesh_app_init(void) 用于应用层逻辑的初始化
app_common.c void mesh_main_run(void) 用于应用层逻辑的周期性执行
app_common.c void mesh_factory_reset(void) 设备被重置前会调用该函数,用于应用层在设备重置时清空一些应用层级别的 flash 数据
app_common.c void app_tuya_mdev_test(uint8_t is_Authorized, uint8_t rssi) 烧录授权时的产测回调函数,一般不要改,不要动
app_common.c void mesh_state_callback(mesh_state_t stat) 各种mesh状态发生变化时,会调用该函数,通知给应用层(看 mesh_state_t 可知道有哪些信息会上报)
app_common.c void tuya_mesh_data_recv_callback(uint16_t src_addr, uint16_t dst_addr, uint32_t opcode, uint8_t *data, uint16_t data_len, uint8_t ttl) 手机 -> 设备的数据回调函数(非常重要)
src_addr[in]:数据源地址
dst_addr[in]:数据目的地址
opcode[in]:命令字
data[in]:数据指针
data_len[in]:数据长度
ttl[in]:数据剩余转发次数
app_common.c void mesh_oem_config_init(void) 读取flash或json配置文件
app_light_control.c OPERATE_LIGHT app_light_ctrl_proc(void) 灯控制函数
app_light_control.c void app_light_ctrl_loop(void) 在void mesh_main_run(void)中运行,定时调度灯控任务
app_light_control.c OPERATE_LIGHT app_light_real_time_ctrl_proc(void) 实时控灯,用于音乐律动
app_light_prompt.c void app_light_ctrl_prompt_start(void) 配网时指示灯开启
app_light_prompt.c void app_light_ctrl_prompt_stop(void) 配网时指示灯关闭
app_uart.c void app_uart_init(void) 除了串口初始化,还有 FIFO 初始化、存储初始化、产测初始化、与mcu通信初始化
app_uart.c void app_uart_run(void) 是一个 loop 函数,不断执行从串口读取数据,放入 fifo 中 此外还有两个 loop 函数在这个总的 loop 中执行:
app_factory_test_run();
uart_server_run();//解析FIFO中的数据,并调用相应的处理函数
app_uart.c static void app_uart_server_run(void) 按照串口协议解析 FIFO 中的串口数据,获取有效的数据帧,根据数据帧类别,分别送到:
产测数据处理接口app_factory_test_cmd(cmd,&buf[F_DATA],len)
与MCU通信的串口对接数据处理接口ty_uart_cmd_server.receive_cmd(u8 cmd, u8 fur, u8 *para, u8 len)
HEAD中是A5 5A表示是 MCU发来的数据。是66 AA表示是产测上位机发来的数据。
app_uart.c int app_mesh_uart_write(u8 fur, u8 *params, u8 len) 将mesh网络中灯的命令或信息发送给MCU 是否发送取决于
ty_uart_cmd_server_get_txtomcu_flag()
MCU发送命令给BT设置
ty_uart_cmd_server_set_txtomcu_flag(bool flag)
app_uart.c void app_mesh_uart_upload(u8 *params, u8 len, u8 is_group) MCU透传DP数据
app_uart.c void app_mesh_uart_read(u8 fur, u8 *params, u8 len) MCU读取灯功能信息、场景ID、完整场景、倒计时、mesh状态
app_uart.c void app_mesh_uart_ctl(u8 fur, u8 *params, u8 len) MCU控制灯功能、场景ID、完整场景、倒计时,BT重置
tuya_sigmesh_hal.c void tuya_mesh_node_init(node_info_t *node_info) mesh 节点初始化,相关能力的配置,node_info[in]:节点能力设置 设备初始化流程,必须调用
tuya_sigmesh_hal.c void tuya_mesh_data_send(uint16_t src_addr, uint16_t dst_addr, uint32_t opcode, uint8_t *data, uint16_t data_len, uint16_t appkey_idx, uint8_t is_rsp) mesh 数据发送 API
src_addr[in]:数据源地址
dst_addr[in]:数据目的地址
opcode[in]:命令字
data[in]:数据指针
data_len[in]:数据长度
appkey_idx[in]:使用的app_key
is_rsp[in]:是否status回复
tuya_sigmesh_hal.c void tuya_primary_ele_addr_set(uint16_t addr, int save) 设置设备的 unicast addr
addr[in]:设备地址
save[in]:是否flash记忆
tuya_sigmesh_hal.c uint16_t get_primary_ele_addr(void) 获取设备的 unicast addr
tuya_sigmesh_hal.c void tuya_mesh_devkey_set(uint8_t *key) 主动更新设备的devkey
tuya_sigmesh_hal.c void tuya_mesh_network_reset_with_restore(uint16_t restore_time_s) 将设备移除网络并恢复到配网状态,且配置超时时间,超时后恢复到移除前的网络
tuya_sigmesh_hal.c void tuya_mesh_rf_power_set(TUYA_RF_Power level) 设置发射功率
tuya_sigmesh_hal.c void tuya_mesh_uuid_set(uint8_t *uuid) uuid 更新接口
tuya_sigmesh_hal.c void tuya_gatt_adv_beacon_enable(uint8_t enable) 广播 beacon 使能
tuya_sigmesh_hal.c uint8_t get_if_prov_success(void) 获取设备配网状态
fast_provision_model.c int mesh_reset_network(u8 provision_enable, u16 recover_time_s) 将设备移除网络并恢复到配网状态
tuya_node_init.c void tuya_pid_set(uint8_t *pid) PID 更新接口,不调用则默认用授权的PID 8字节长度的PID字符串
tuya_node_init.c void app_tuya_mesh_category_set(uint16_t mesh_category) mesh 设备能力值配置
hal_hw_timer.c OPERATE_LIGHT ty_light_basis_hw_timer_start(IN u32 uiCycleUs, IN void* pCallback) 硬件定时任务,用于灯光渐变任务
hal_hw_timer.c OPERATE_LIGHT ty_light_basis_hw_timer_stop(void) 关闭硬件定时任务,用于灯光渐变任务
ty_light_basis_sw_timer.c OPERATE_LIGHT ty_light_basis_sw_timer_start(IN u8 ucTimerID, IN u32 uiCycleMs, IN void* pCallback); 软件定时任务,用于灯光控制任务
ty_light_basis_sw_timer.c OPERATE_LIGHT ty_light_basis_sw_timer_stop(IN u8 ucTimerID); 关闭软件定时任务,用于灯光控制任务
ty_light_basis_sw_timer.c void ty_light_basis_sw_timer_handler(void); 处理定时任务
ty_light_driver_set.c OPERATE_LIGHT ty_light_driver_set_init(IN DRIVER_CONFIG_T *pLightConfig); 灯驱动初始化,有三种模式:
PwmInit
Sm2135Init
tSm16726bInit
ty_light_gradual.c void ty_light_gradual_hw_timer_handler(void); 灯光渐变定时任务
ty_light_remote.c void ty_light_remote_dp_data(u8 * par, int par_len); 遥控器DP控制处理
ty_light_scene.c void ty_light_scene_cmd_sync(u8 uint_num) 场景同步
ty_light_scene.c void ty_light_scene_ctrl_change_start(IN u32 uiChangeTimeMs) 定时时间后开始场景改变
ty_light_scene.c OPERATE_LIGHT ty_light_scene_ctrl_change(OUT bool *pCycleEnable, OUT u32 *pCycleTimeMs) 将场景控制信息转变为RGBCW所需的值

JSON 使用介绍

涂鸦已提供基础 JSON 模板参考:

  • 1c_bt3l_pwm_V1.0.json
  • 2cw_bt3l_pwm_V1.0.json
  • 3rgb_bt3l_pwm_V1.0.json
  • 3rgb_bt3l_sm726eb_V1.0.json
  • 3rgb_bt3l_sm2135e_V1.0.json
  • 4rgbc_bt3l_pwm_V1.0.json
  • 4rgbc_bt3l_sm726eb_V1.0.json
  • 4rgbc_bt3l_sm2135e_V1.0.json
  • 5rgbcw_bt3l_pwm_V1.0.json
  • 5rgbcw_bt3l_sm726eb_V1.0.json
  • 5rgbcw_bt3l_sm2135e_V1.0.json
类别 JSON 名 名称 客户需改动 含义
json head name 固件标识名 1.首先在涂鸦平台创建固件标识名
2.上传的固件名称与涂鸦平台一致
json head description 配置功能 仅用于描述该固件
json head version 固件版本 形式x.x
json head ic 芯片型号 tlsr825x
json head hardware 硬件模块 TYBT3L
json head log 打印调试信息 1.调试是可以为1,将log信息输出
2.成品固件必须设置为0
json head oem 固件形式 必须为0
json head json_config JSON 可配 必须为0
json head kind 设备能力 默认即可
json head pid pid名称 填写产品pid
json head vendorid 品类信息 1.一路灯:1011
2.两路灯:1012
3.三路灯:1013
4.四路灯:1014
5.五路灯:1015
power_reset_cnt 复位次数 默认即可,因为灯不采用此位置的值,而是采用rstnum
power_reset_time 重置时间 上电后N久断电,判断为一次通断电,默认设置为5s
power_reset_recover_time 网络恢复时间 通断电重置之后,在不重新配网或不通断电的情况下,多久恢复网络,默认为600s
local_control 本地控制 默认即可
功能宏 light_cfg_init_param_check 初始化参数检验 默认即可,默认为0
功能宏 light_cfg_prod_driver_need_init 产测参数重新初始化 默认即可,默认为0
功能宏 light_cfg_3in1_save 保存方式 默认即可,默认为0
功能宏 light_cfg_remote_enable 是否支持mesh遥控器 0:不支持
1:支持
功能宏 light_cfg_uart_enable 是否支持灯型串口 0:不支持
1:支持
具体协议参考 BLE Mesh 通用串口协议
Jsonver JSON 配置版本 默认即可
category 设备类型 与vendorid保持一致
module 模块选型 1,BT8C
2.非BT8C模块填BT3L
cmod 方案选型 1.一路灯:c
2.两路灯:cw
3.三路灯:rgb
4.四路灯:rgbc
5.五路灯:rgbcw
dmod 产品驱动方式 0:PWM驱动
1:SM16726B
2:SM2135E
cwtype 色温调节驱动方式 0:CW - 冷光、暖光
1:CCT - 亮度、色温
onoffmode 开关渐变 0:开关时有渐变
1:开关时无渐变
pmemory 断电记忆 0:无断电记忆
1:有断电记忆
defcolor 常亮默认颜色 彩光可选:r、g、b
白光可选:c
defbright 常亮默认亮度 范围:10~100
deftemp 常亮默认色温 defcolor为c时有效
范围:0~100
cwmaxp 冷暖混色最大功率 默认为100
范围:100~200,间距:10
brightmin 白光亮度最小值 范围:1~100,间距:1
brightmax 白光亮度最大值 范围:1~100,间距:1
colormin 彩光亮度最小值 范围:1~100,间距:1
colormax 彩光亮度最大值 范围:1~100,间距:1
wfcfg 首次配网触发方式 spcl:手动切换后闪烁
spcl_auto:上电闪烁后常亮
remdmode 配网提醒方式 0:呼吸提醒
1:闪烁提醒
rstmode 触发配网方式 默认为0
rstnum 通断电复位次数 范围:3~10,间距:1
rstcor 配网时提醒颜色 彩光可选:r、g、b
白光可选:c
rstbr 配网时提醒亮度 范围:10~100
rsttemp 配网时提醒色温 rstcor为c时有效
范围:0~100
pairt 配网提醒的时间 范围:6~600
注:呼吸提醒时,时间建议为6
注:呼吸提醒时,时间建议为6,呼吸期间会暂停配网
prodagain 重复进入产测1 0:不支持
1:支持
cagt 产测1白光老化时间 单位分钟
wt 产测1暖光老化时间 单位分钟
rgbt 产测1彩光老化时间 单位分钟
colorpfun 彩光混光功率限制 0:不限制
1:限制
colormaxp 彩光混光最大功率 范围:100-200
notdisturb 勿扰模式 0:关闭
1:开启
PWM pmwhz PWM 频率 范围:500~20000;间距:100
PWM r_pin/g_pin/
b_pin/c_pin/
w_pin
rgbcw引脚 填写0~14,引脚对应关系如下
0:GPIO_PB1
1:GPIO_PB7
2:GPIO_PB5
3:GPIO_PB4
4:GPIO_PA0
6:GPIO_PC0
7:GPIO_PC2
8:GPIO_PC3
9:GPIO_PD2
10:GPIO_PD7
11:GPIO_PC4
12:GPIO_PB0
13:GPIO_PC5
14:GPIO_PC1
PWM r_lv/g_lv/
b_lv/c_lv/
w_lv
有效电平 默认为1
所有引脚必须保持一致
1:高电平点亮
0:低电平点亮
IIC芯片驱动 iicr/iicg/iicb
/iicc/iicw
rgbcw通道 配置为01234
IIC芯片驱动 iicscl I2C SCL 管脚号 IIC驱动必填
IIC芯片驱动 iicsda I2C SDA 管脚号 IIC驱动必填
IIC芯片驱动 ctrl_pin 控制引脚 SM16726B必填
IIC芯片驱动 ctrl_lv 电平控制配置 SM16726B必填
1:高电平有效
0:低电平有效
IIC芯片驱动 campere SM2135彩光输出最大电流 sm2135E驱动必填
范围:10~45,间距:5,默认值:20
IIC芯片驱动 wampere SM2135白光输出最大电流 sm2135E驱动必填
范围:10~80,间距:5,默认值:30
crc 校验 无需改动,不校验

调试指南

第一步:环境搭建

本小节以泰凌(Telink)蓝牙芯片为例,介绍如何在 Windows 系统上搭建调试环境。

  1. 访问 Telink 官方文档 IDE for TLSR8 Chips,根据教程安装 Telink IDE。

  2. doc\tools\jq-win64.exe 放入 C:\TelinkSDK\bin\

  3. 将以下路径加入系统环境变量中:

    • C:\TelinkSDK\opt\Vim\vim73\
    • C:\TelinkSDK\opt\tc32\bin\
    • C:\TelinkSDK\bin\
    • C:\TelinkSDK\opt\tc32\tools\
  4. 访问 Telink 官方文档 烧录工具,下载和安装 BDT 烧录工具。

  5. (可选)安装 git-for-win

    注意:如果您不熟悉 Git 的版本控制流程,建议您全部采用默认安装,如果电脑上已经有 git-bash 等可以运行 Shell 脚本的软件,则可以不用安装。

build

  1. (可选)如无 _build 文件,您可以在 common/tools 路径中运行 bash cmake.sh mesh_light tlsr825x_smesh 生成 _build 文件,其中您需要自定义文件名称。

  2. 利用 app/mesh_common/_build 中的 run.sh 脚本,可以实现编译、烧录。

    bash run.sh build/flash [demo.json]
    

    该脚本会依据 [demo.json] 转变为 _build/base_oem_config.h,其中有大量的宏定义,用于让同一个应用代码,能生成不同的应用程序。例如,您只需要改动生成固件的名字、版本号、PID等信息时,不需要改动代码,只需要改动该 json 配置文件。

  • 如果能通过修改 [demo.json] 来满足您的需求,则建议您尽量不要修改App代码,可以降低固件的风险性。
  • 如果不能通过修改 [demo.json] 来满足您的需求,建议复制一个相似的 app_name 进行修改。一般情况不建议产生大量做简单修改不同的 app,而推荐考虑加强 [demo.json] 能力。
  $ cd app/mesh_common/_build

  $ bash run.sh build 5rgbcw_bt3l_pwm_V1.0.json 

flash

  1. 将烧写器的SWM引脚与开发板的SWS引脚相连,烧写器通过 USB 连接到电脑上,开发板单独供电并保持共地。

    蓝牙 Mesh 照明产品开发包

  2. 打开 Telink 烧写调试助手 (BTD),选择 8258 芯片,单击 SWS 初始配置烧写器。

    让烧写器可以烧录 8258 型号芯片,往往只需要 SWS 一次即可。

    蓝牙 Mesh 照明产品开发包

  3. 上面准备工作做好后,可以直接利用 run.sh 将 bin 文件烧录到开发板。

    $ bash run.sh flash 5rgbcw_bt3l_pwm_V1.0.json 
    

    说明run.sh 提供多种能力:build(编译)、flash(烧录)、flash_all(全部擦除后烧录)、clean(清除编译信息)。

申请照明 PID 和授权码

授权码找对应的产品经理,所有设备必须授权才能配网使用。

按以下步骤在涂鸦 IoT 平台上创建产品并获得 PID。完成以下步骤后,PID 的功能才完全实现,否则会出现产品功能不完善的故障。

  1. 登录 涂鸦 IoT 平台,参考 选品类创建产品 创建一款照明产品。

    例如选择光源、蓝牙 Mesh(SIG) 、彩灯五路 (RGBCW)_SIG,输入产品名称,创建产品。

    蓝牙 Mesh 照明产品开发包

  2. 添加功能,确定,App面板配置,选择模板。

    蓝牙 Mesh 照明产品开发包

  3. 硬件调试,选择相应开发模组。

    蓝牙 Mesh 照明产品开发包

  4. 完成产品配置。